Beruflich Dokumente
Kultur Dokumente
">
In this Document
Purpose
Scope and Application
Complete Checklist for Manual Upgrades to 10gR2
Steps for Upgrading the Database to 10g Release 2
Preparing to Upgrade
Upgrading to the New Oracle Database 10g Release 2
After Upgrading a Database
Useful Hints
Appendix A: Initialization Parameters Obsolete in 10g
Appendix B: Initialization Parameters Deprecated in 10g
Known issues
Revision History
References
Applies to:
Oracle Server - Enterprise Edition - Version: 8.1.7.4 to 10.2.0.5 - Release: 8.1.7 to 10.2
Oracle Server - Standard Edition - Version: 8.1.7.4 to 10.2.0.5 [Release: 8.1.7 to 10.2]
Information in this document applies to any platform.
Purpose
This document is created for use as a guideline and checklist when manually upgrading Oracle 8i, Oracle 9i or Oracle 10gR1 to O
If the database instance is being moved from one server to another as part of the upgrade process, additional steps for that move
Additional Note:
These instructions are incomplete for taking an 8i OPS cluster into a 10gR2 RAC cluster due to the differences in OPS vs RAC.
Database administrators
Note:293658.1 "10.1 or 10.2 Patchset Install Getting ORA-29558 JAccelerator (NCOMP) And ORA-06512"
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 2 of 23
Download and install the latest available 10.2.0.x patchset. Review the following note for a list of available patchsets and
Note:316900.1 "ALERT: Oracle 10g Release 2 (10.2) Support Status and Alerts"
If you are upgrading to 10.2.0.3, review the following alerts before performing the upgrade and apply any required patches:
Note 406472.1 "Mandatory Patch 5752399 for 10.2.0.3 on Solaris 64-bit and Filesystems Managed By Veritas or Solstice D
Note 412271.1 "ORA-600 [22635] and ORA-600 [KOKEIIX1] Reported While Upgrading or Patching Databases to 10.2.0.3
NOTE: If your database was originally created as 32-bit, even if it is 64-bit now, apply the patches recommended in Note
If you are upgrading to 10.2.0.4, review the following notes and alerts before performing the upgrade and apply any require
Note 553812.1 Actions for the DSTv4 update in the 10.2.0.4 patchset
Note 414590.1 Time Zone IDs for 7 Time Zones Changed in Time Zone Files Version 3 and Higher, Possible ORA-1882
If you are upgrading to any 10.2.0.x version, review the following alert before performing the upgrade and apply any require
Note:471479.1 "IOT Corruptions After Upgrade from COMPATIBLE <= 9.2 to COMPATIBLE >= 10.1"
If you are upgrading to any 10.2.0.x version on AIX5L, review the following note before upgrading:
Note:557242.1 "Upgrade Gives Ora-29558 Error Despite of JAccelerator Has Been Installed"
If you are upgrading to 10.2.0.4, review the following notes before upgrading:
If you are upgrading a 32-bit database to 10.2.0.x 64-bit, review the following note and remove the "use_indirect_data_buff
Note:465951.1 "ORA-600 [kcbvmap_1] or Ora-600 [Kcliarq_2] On Startup Upgrade Moving From a 32-Bit To 64-Bit Releas
/var/opt/oracle/oraInst.loc -- Solaris
/etc/oraInst.loc -- other operating systems
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\inst_loc -- On windows Platform.
Verify kernel parameters are set according to the 10gR2 Installation Guide.
Verify that all O/S packages and patches are installed as per the Installation Guide.
Please also note that Oracle have made an "Oracle10g Upgrade Companion" available. For further information, please review:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 3 of 23
Compatibility Matrix
Minimum Version of the database that can be directly upgraded to Oracle 10g Release 2
7.3.3 (or lower) -> 7.3.4 -> 8.1.7 -> 8.1.7.4 -> 10.2.X.X.X
7.3.4 -> 8.1.7 -> 8.1.7.4 -> 10.2.X.X.X
8.0.n -> 8.1.7 -> 8.1.7.4 -> 10.2.X.X.X
8.1.n -> 8.1.7 -> 8.1.7.4 -> 10.2.X.X.X
Preparing to Upgrade
In this section all the steps need to be performed to the previous version of Oracle. Please note that the database must be runnin
Step 1:
Log in to the system as the owner of the new 10gR2 ORACLE_HOME and copy the following files from the 10gR2 ORACLE_
system:
ORACLE_HOME/rdbms/admin/utlu102i.sql
ORACLE_HOME/rdbms/admin/utltzuv2.sql
Step 2:
Start SQL*Plus and connect to the database instance you are intending to upgrade (running from the original ORACLE_HOME) a
sqlplus '/as sysdba'
Please note: The instance can be running in normal mode and does not need to be running in a restricted (migrate / upgrade) mo
be created, if they do not already exist, and some rows may be inserted into existing Upgrade tables.
Then, check the spool file and examine the output of the upgrade information tool. The sections which follow, describe the output
NOTE: If you are upgrading from 8.1.7.4, the utlu102i.sql script will fail with an ORA-1403 error. Please follow the workaround in
Database:
This section displays global database information about the current database such as the database name, release number, a
before the database is upgraded.
Logfiles:
This section displays a list of redo log files in the current database whose size is less than 4 MB. For each log file, the file nam
be created in the current database. Any redo log files less than 4 MB must be dropped before the database is upgraded.
Tablespaces:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 4 of 23
This section displays a list of tablespaces in the current database. For each tablespace, the tablespace name and minimum requi
the tablespace does not have enough free space, then space must be added to the tablespace in the current database. Tablespa
Update Parameters:
This section displays a list of initialization parameters in the parameter file of the current database that must be adjusted befo
Oracle Database 10g release.
Deprecated Parameters:
This section displays a list of initialization parameters in the parameter file of the current database that are deprecated in the new
Obsolete Parameters:
This section displays a list of initialization parameters in the parameter file of the current database that are obsolete in the ne
before the database is upgraded.
Components:
This section displays a list of database components in the new Oracle Database 10g release that will be upgraded or installed wh
Miscellaneous Warnings:
This section provides warnings about specific situations that may require attention before and/or after the upgrade.
SYSAUX Tablespace:
This section displays the minimum required size for the SYSAUX tablespace, which is required in Oracle Database 10g. The SYS
upgrade scripts are invoked.
Step 3:
After upgrading to 10gR2, the CONNECT role will only have the CREATE SESSION privilege; the other privileges granted to the C
your database are granted the CONNECT role, use the following query:
If users or roles require privileges other than CREATE SESSION, then grant the specific required privileges prior to upgrading. Th
In Oracle 9.2.x and 10.1.x CONNECT role includes the following privileges:
GRANTEE PRIVILEGE
------------------------------ ---------------------------
CONNECT CREATE VIEW
CONNECT CREATE TABLE
CONNECT ALTER SESSION
CONNECT CREATE CLUSTER
CONNECT CREATE SESSION
CONNECT CREATE SYNONYM
CONNECT CREATE SEQUENCE
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 5 of 23
CONNECT CREATE DATABASE LINK
In Oracle 10.2 the CONNECT role only includes CREATE SESSION privilege.
Step 4:
During the upgrade to 10gR2, any passwords in database links will be encrypted. To downgrade back to the original release,
database links will not exist in the downgraded database. If you anticipate a requirement to be able to downgrade back to your or
you can recreate the database links after the downgrade.
SELECT
'create '||DECODE(U.NAME,'PUBLIC','public ')||'database link '||CHR(10)
||DECODE(U.NAME,'PUBLIC',Null, U.NAME||'.')|| L.NAME||chr(10)
||'connect to ' || L.USERID || ' identified by '''
||L.PASSWORD||''' using ''' || L.host || ''''
||chr(10)||';' TEXT
FROM sys.link$ L,
sys.user$ U
WHERE L.OWNER# = U.USER# ;
Step 5:
Please this step is only required for the 10gR1 as versions prior to 10.1 did not have this data type.
Please note that you must verify the time zone patch installed on the source home and instance is the same as installed
Please review the Prerequisites and recommendations section at the beginning of this note for additional information.
This may affect existing data of TIMESTAMP WITH TIME ZONE datatype.
For example, if users enter TIMESTAMP '2003-02-17 09:00:00 America/Sao_Paulo', we convert the data to UTC based on th
zone id for 'America/Sao_Paulo' is stored because the offset for this particular time is '-02:00'. Now the transition rules are modifie
'2003-02-17 08:00:00 America/Sao_Paulo'. There is one hour difference compared to the original value.
Start SQL*Plus and connect to the database instance as a user with SYSDBA privileges. Then run and spool the utltzuv2.sql file.
If the utltzuv2.sql script identifies columns with time zone data affected by a database upgrade, then use the solution to solve this
create tables with the time zone information in character format (for example, TO_CHAR(column, 'YYYY-MM-DD HH24.MI.SSXF
Before upgrade, you can create a table tztab_back, note column y here is defined as VARCHAR2 to preserve the original value.
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 6 of 23
to_char(y, 'YYYY-MM-DD HH24.MI.SSXFF TZR') from tztab;
After upgrade, you need update the data in the table tztab using the value in tztab_back.
update tztab t set t.y = (select to_timestamp_tz(t1.y,
'YYYY-MM-DD HH24.MI.SSXFF TZR') from tztab_back t1 where t.x=t1.x);
Step 6:
Starting in Oracle 9i the National Characterset (NLS_NCHAR_CHARACTERSET) will be limited to UTF8 and AL16UTF16. An
For more details, refer to Note:276914.1 "The National Character Set in Oracle 9i and 10g"
NOTE: This step only applies to version 8i upgrade to version 9i or higher. If you are not upgrading from Oracle8i, skip to step 7.
When upgrading from Oracle8i to 10g the value of NLS_NCHAR_CHARACTERSET is based on value currently used in the Oracl
If the NLS_NCHAR_CHARACTERSET is UTF8 then new it will stay UTF8. In all other cases the NLS_NCHAR_CHARACTERSET
NCLOB ) may need to be converted.
To check whether there are any N-type objects in a database, run the following query:
If no rows are returned it should mean that the database is not using N-type columns for user data, so simply go to the next step.
If you have N-type columns for user data then run the following query:
If you are using N-type columns AND your National Characterset is UTF8 or is in the following list:
then also simply go to point next step. The conversion of the user data itself will then be done in step 38
If you are using N-type columns AND your National Characterset is NOT UTF8 or NOT in the following list:
change the tables to use CHAR, VARCHAR2 or CLOB instead the N-type
or
use export/import the table(s) containing N-type column and truncate those tables before migrating to 10g
The recommended NLS_LANG during export is simply the NLS_CHARACTERSET, not the NLS_NCHAR_CHARACTERSET
Step 7:
When upgrading to Oracle Database 10g, optimizer statistics are collected for dictionary tables that lack statistics. This statis
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 7 of 23
gathering only occurs for those tables that lack statistics or are significantly changed during the upgrade.
To decrease the amount of downtime incurred when collecting statistics, you can collect statistics prior to performing the actual da
As of Oracle Database 10g Release 10.1, Oracle recommends that you use the DBMS_STATS.GATHER_DICTIONARY_STA
For Oracle8i and Oracle9i, use the DBMS_STATS.GATHER_SCHEMA_STATS procedure to gather statistics.
Current Statistics if desired, can be backed up prior to gathering current statistics and is useful if you want to revert back the statis
Process to backup the existing statistics as follows:
SQL>exec dbms_stats.create_stat_table('SYS','dictstattab');
SQL>spool off
exec dbms_stats.delete_schema_stats('SYS');
exec dbms_stats.import_schema_stats('SYS','dictstattab');
To gather statistics run this script, connect to the database AS SYSDBA using SQL*Plus.
SQL>spool gdict
SQL>exec dbms_stats.gather_schema_stats('WMSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('MDSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('CTXSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('XDB',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 8 of 23
SQL>exec dbms_stats.gather_schema_stats('WKSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('LBACSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('OLAPSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('DMSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('ODM',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('ORDSYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('ORDPLUGINS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('SI_INFORMTN_SCHEMA',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('OUTLN',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('DBSNMP',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('SYSTEM',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>exec dbms_stats.gather_schema_stats('SYS',options=>'GATHER',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
SQL>spool off
Step 8:
spool invalid_pre.lst
select substr(owner,1,12) owner,
substr(object_name,1,30) object,
substr(object_type,1,30) type, status from
dba_objects where status <> 'VALID';
spool off
Run the following script as a user with SYSDBA privs using SQL*Plus and then requery invalid objects:
This last query will return a list of all objects that cannot be recompiled before the upgrade in the file 'invalid_pre.lst'
If you are upgrading from Oracle9iR2 (9.2), verify that the view dba_registry contains data. If the view is empty, run the following s
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 9 of 23
and verify that the dba_registry view now contains data.
Step 9:
Check for corruption in the dictionary, use the following commands in sqlplus connected as sys:
spool off
Step 10:
Ensure that all Materialized views / Snapshot refreshes are successfully completed, and that replication must be stopped (ie: quie
SQL> select distinct owner, name mview, master_owner master_owner, last_refresh from dba_mview_refresh_times;
Step 11:
$ lsnrctl
LSNRCTL> stop
Step 12:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 10 of 23
Step 13:
Step 14:
Step 15:
Ensure the users sys and system have 'system' as their default tablespace.
To modify use:
Step 16:
Ensure that the aud$ is in the system tablespace when auditing is enabled.
If the AUD$ table exists, and is in use, upgrade performance can be effected depending on the number of records in the table.
Please refer to the following note for information on exporting and truncating the AUD$ table:
Step 17:
Step 18:
If table XDB.MIGR9202STATUS exists in the database, drop it before upgrading the database (to avoid the issue described in
Step 19:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 11 of 23
Step 20:
You can either do this by manually copying the files or sign on to RMAN:
RUN
{
ALLOCATE CHANNEL chan_name TYPE DISK;
BACKUP DATABASE FORMAT 'some_backup_directory%U' TAG before_upgrade;
BACKUP CURRENT CONTROLFILE TO 'save_controlfile_location';
}
Step 21:
- Copy it from the old (pre-10.2) ORACLE_HOME to the new (10.2) ORACLE_HOME
- If you have the parameter NLS_LENGTH_SEMANTICS currently set to CHAR, change the value
to BYTE during the upgrade (to avoid the issue described in Note:4638550.8)
- Ensure that the SHARED_POOL_SIZE and the LARGE_POOL_SIZE are at least 150Mb.
Please also the check the "KNOWN ISSUES" section
- Make sure the JAVA_POOL_SIZE initialization parameter is set to at least 150 MB.
- On Windows operating systems, change the BACKGROUND_DUMP_DEST and USER_DUMP_DEST initialization paramet
to point to the following directories instead:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 12 of 23
BACKGROUND_DUMP_DEST to ORACLE_BASE\oradata\DB_NAME
and
USER_DUMP_DEST to ORACLE_BASE\oradata\DB_NAME\archive
- Comment out any existing AQ_TM_PROCESSES and JOB_QUEUE_PROCESSES parameter settings, and add new lines i
duration of the upgrade. The "startup upgrade" command (see step 30) should ensure that these settings are used, but it's worth m
- If you have defined an UNDO tablespace, set the parameter UNDO_MANAGEMENT=AUTO (otherwise, either unset the par
Management feature.
- Make sure all path names in the parameter file are fully specified. You should not have relative path names in the parameter file.
- If you are using a cluster database, set the parameter CLUSTER_DATABASE=FALSE during the upgrade.
- If you are upgrading a cluster database, then modify the initdb_name.ora file in the same way that you modified the parameter f
- Verify the parameter FIXED_DATE is not set. If it set during the upgrade catalog and catproc will report as invalid even if there a
Step 22 :
Step 23 :
If needed in your environment, ensure the environment variable NLS_LANG variable is set correctly:
To verify the current setting:
$ env | grep $NLS_LANG
For additional information on NLS_LANG settings, please refer to the following notes:
Note 158577.1 NLS_LANG Explained (How does Client-Server Character Conversion Work?)
Note 179133.1 The correct NLS_LANG in a Windows Environment
Note 264157.1 The correct NLS_LANG setting in Unix Environments
Step 24:
If needed copy the SQL*Net files like (listener.ora,tnsnames.ora etc) to the new location (when no TNS_ADMIN env. Parameter i
$ cp $OLD_ORACLE_HOME/network/admin/*.ora /network/admin
Step 25:
If your Operating system is Windows (NT, 2000, XP or 2003) delete your services With the ORADIM of your old oracle version.
Stop the OracleServiceSID Oracle service of the database you are upgrading, where SID is the instance name. For example,
Also create the new Oracle Database 10gR2 service at a command prompt using the ORADIM command of the new Oracle Data
Step 26:
Copy configuration files from the ORACLE_HOME of the database being upgraded to the new Oracle Database 10g ORACLE_H
If your parameter file resides within the old environment's ORACLE_HOME, then copy it to the new ORACLE_HOME. By def
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 13 of 23
ORACLE_HOME\database on Windows operating systems. The parameter file can reside anywhere you wish, but it should n
If your parameter file is a text-based initialization parameter file with either an IFILE (include file) or a SPFILE (server parame
ORACLE_HOME, then copy the file specified by the IFILE or SPFILE entry to the new ORACLE_HOME. The file specified in
If you have a password file that resides within the old environments ORACLE_HOME, then move or copy the password file to
The name and location of the password file are operating system-specific.
On UNIX platforms, the default password file is ORACLE_HOME/dbs/orapwsid.
On Windows operating systems, the default password file is
ORACLE_HOME\database\pwdsid.ora. In both cases, sid is your Oracle instance ID.
If you are upgrading a cluster database and your initdb_name.ora file resides within the old environment's ORACLE_HOME,
Note:
If you are upgrading a cluster database, then perform this step on all nodes
in which this cluster database has instances configured.
Step 27:
Update the oratab entry, to set the new ORACLE_HOME and disable automatic startup:
SID:ORACLE_HOME:N
Step 28:
$. oraenv
Step 29:
Make sure the following environment variables point to the new release (10g) directories:
- ORACLE_HOME
- PATH
- ORA_NLS10
- ORACLE_BASE
- LD_LIBRARY_PATH
- LD_LIBRARY_PATH_64 (Solaris only)
- LIBPATH (AIX only)
- SHLIB_PATH (HPUX only)
- ORACLE_PATH
AIX:
$ env | grep LIBPATH
HP-UX:
$ env | grep SHLIB_PATH
Note that the ORA_NLS10 environment variable replaces the ORA_NLS33 environment variable, so you should unset ORA_NLS
Step 30:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 14 of 23
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus / as sysdba
Use Startup with the UPGRADE option:
SQL> startup upgrade
Step 31:
Create a SYSAUX tablespace. In Oracle Database 10g, the SYSAUX tablespace is used to consolidate data from a number of ta
The SYSAUX tablespace must be created with the following mandatory attributes:
- ONLINE
- PERMANENT
- READ WRITE
- EXTENT MANAGEMENT LOCAL
- SEGMENT SPACE MANAGEMENT AUTO
The Upgrade Information Tool(utlu102i.sql in step 4) provides an estimate of the minimum required size for the SYSAUX tablespa
The following SQL statement would create a 500 MB SYSAUX tablespace for the database:
Step 32:
NOTE: Before performing the next action, disable any third party procedures that check the complexity of schema passwords.
for a very short period of time, because the SQL script that creates the new schema will then immediately expire the password an
statement may fail and cause configuration of a component to fail.
Run the catupgrd.sql script, spooling the output so you can check whether any errors occured and investigate them:
The catupgrd.sql script determines which upgrade scripts need to be run and then runs each necessary script. You must run t
The upgrade script creates and alters certain data dictionary tables. It also upgrades and configures the following database co
upgrade).
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 15 of 23
Then, check the spool file and verify that the packages and procedures compiled successfully. You named the spool file earlie
appropriate upgrade script if necessary. You can rerun any of the scripts described in this note as many times as necessary.
Step 33:
This is the Post-upgrade Status Tool displays the status of the database components in the upgraded database. The Upgrad
NOTE: As per Note:456845.1, the output from the utlu102s.sql script may differ from the output from DBA_REGISTRY. To ch
Step 34:
Executing this clean shutdown flushes all caches, clears buffers and performs other database housekeeping tasks. Which is need
Step 35:
Run olstrig.sql to re-create DML triggers on tables with Oracle Label Security policies.
This step is only necessary if Oracle Label Security is in your database.
(Check from Step 33).
SQL> @olstrig.sql
Step 36:
Run utlrp.sql to recompile any remaining stored PL/SQL and Java code.
SQL> @utlrp.sql
If there are still objects which are not valid after running the script run the following:
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 16 of 23
spool invalid_post.lst
Select substr(owner,1,12) owner,
substr(object_name,1,30) object,
substr(object_type,1,30) type, status
from
dba_objects where status <>'VALID';
spool off
Now compare the invalid objects in the file 'invalid_post.lst' with the invalid objects in the file 'invalid_pre.lst' you create in step 9.
NOTE: If you have upgraded from version 9.2 to version 10.2 and find that the following views are invalid, the views can be safely
SYS.V_$KQRPD
SYS.V_$KQRSD
SYS.GV_$KQRPD
SYS.GV_$KQRSD
SYS.V_$KQRPD
SYS.V_$KQRSD
SYS.GV_$KQRPD
SYS.GV_$KQRSD
NOTE: If you have used OPatch to apply a CPU patch to the 10.2.0.x home, you now need to review and follow the post-insta
require running the catcpu.sql and other scripts and will vary depending on the version of the CPU installed.
NOTE: After the upgrade there may be invalid views with the prefix x_$. These views are created by third party applications and
particular not SYS owned views based on internal X$ tables. Since these are not Oracle created objects, they should be drop
Step 37:
Step 38:
Complete the Step 38 only if you upgraded your database from release 8.1.7
Otherwise skip to Step 40.
A) If you are not using N-type columns for user data, ie. the query
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 17 of 23
did not return rows in Step 6 of this note then:
then:
C) IF you are using N-type columns for *user* data *AND* your previous NLS_NCHAR_CHARACTERSET was in the following
To upgrade user tables with N-type columns to AL16UTF16 run the script utlnchar.sql:
go to step 40.
D) IF you are using N-type columns for *user* data *AND * your previous NLS_NCHAR_CHARACTERSET was *NOT* in the follo
then import the data exported in point 8 of this note. The recommended NLS_LANG during import is simply the NLS_CHARAC
go to step 40.
Step 39:
If your database has TIMESTAMP WITH TIMEZONE data, you must update the data so that it is converted and stored based
If you used the export utility to export a copy of the affected tables, you should now use the import utility to import your data f
If you used the manual script method, you will need to update the affected timestamp data based on your backed up table. Fo
to update your timestamp data.
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 18 of 23
FROM tztab_back t1
WHERE t.x=t1.x);
Step 40:
- If you changed the value for NLS_LENGTH_SEMANTICS from CHAR to BYTE prior to the upgrade (see step 21), set it bac
testing. Switching to CHAR semantics can break application code. See Note:144808.1 for further information about the usage of t
- If you changed the value for CLUSTER_DATABASE from TRUE to FALSE prior to the upgrade, set it back to TRUE
Step 41:
This will create a spfile as a copy of the init.ora file located in the
$ORACLE_HOME/dbs directory.
Step 42:
Step 43:
Step 44:
Step 45:
Step 46:
If the output from the $ORACLE_HOME/bin/ocrdump command references the pre-10g home, it may be necessary to do the follo
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 19 of 23
Step 47:
Use the DBMS_STATS package to gather new statistics for your user objects. Using statistics collected from a previous Oracle ve
References:
Step 48:
Enterprise Manager Grid Control (EMGC) will show that the upgraded database does not have an inventory. To re-discover the da
3. Click "Add", enter the name of the host and click "Continue" to allow EMGC to re-discover
the database in the correct home with the correct inventory
Useful Hints
** Upgrading With Read-Only and Offline Tablespaces (Database must be in archive log mode)
The Oracle database can read file headers created prior to Oracle 10g, so you do not need to do anything to them during the upg
another platform. In this case, the file headers must be made read-write at some point before the transport. However, there a
The file headers of offline datafiles are updated later when they are brought online, and the file headers of read-only tablespaces
read-only tablespaces never have to be made read-write.
To decrease the time needed for a recovery in case of issues with the migration, users can OFFLINE NORMAL all user or applica
tablespaces and rollback datafiles need to be restored rather than the entire database.
You can not OFFLINE any Oracle created tablespaces including those containing rollback/UNDO tablespace prior to migration.
Note: You must OFFLINE the TABLESPACE as migrate does not allow OFFLINE files in an ONLINE tablespace.
Note: If you are upgrading from Oracle9i, the CWMLITE tablespace (which contains OLAP objects) will need to be ONLINE during
If you are installing 64-bit Oracle Database 10g software but were previously using a 32-bit Oracle Database installation, then the
when upgrading from Release 1 (10.1) to Release 2 (10.2).
The process is not automatic for the release 1 to release 2 upgrade, but is automatic for all other upgrades. This is because the u
the utlip.sql script as the last step in the release 10.1 environment, before upgrading to release 10.2.
If an error occurs during the running of the catupgrd.sql script, once the problem is fixed you can simply rerun the catupgrd.sql scr
the upgrade process.
ENQUEUE_RESOURCES
DBLINK_ENCRYPT_LOGIN
HASH_JOIN_ENABLED
LOG_PARALLELISM
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 20 of 23
MAX_ROLLBACK_SEGMENTS
MTS_CIRCUITS
MTS_DISPATCHERS
MTS_LISTENER_ADDRESS
MTS_MAX_DISPATCHERS
MTS_MAX_SERVERS
MTS_MULTIPLE_LISTENERS
MTS_SERVERS
MTS_SERVICE
MTS_SESSIONS
OPTIMIZER_MAX_PERMUTATIONS
ORACLE_TRACE_COLLECTION_NAME
ORACLE_TRACE_COLLECTION_PATH
ORACLE_TRACE_COLLECTION_SIZE
ORACLE_TRACE_ENABLE
ORACLE_TRACE_FACILITY_NAME
ORACLE_TRACE_FACILITY_PATH
PARTITION_VIEW_ENABLED
PLSQL_NATIVE_C_COMPILER
PLSQL_NATIVE_LINKER
PLSQL_NATIVE_MAKE_FILE_NAME
PLSQL_NATIVE_MAKE_UTILITY
ROW_LOCKING
SERIALIZABLE
TRANSACTION_AUDITING
UNDO_SUPPRESS_ERRORS
LOGMNR_MAX_PERSISTENT_SESSIONS
MAX_COMMIT_PROPAGATION_DELAY
REMOTE_ARCHIVE_ENABLE
SERIAL_REUSE
SQL_TRACE
BUFFER_POOL_KEEP (replaced by DB_KEEP_CACHE_SIZE)
BUFFER_POOL_RECYCLE (replaced by DB_RECYCLE_CACHE_SIZE)
GLOBAL_CONTEXT_POOL_SIZE
LOCK_NAME_SPACE
LOG_ARCHIVE_START
MAX_ENABLED_ROLES
PARALLEL_AUTOMATIC_TUNING
PLSQL_COMPILER_FLAGS (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG)
Known issues
1) While doing a upgrade from 9iR2 to 10.2.0.X.X, on running the utlu102i.sql script as directed in step 2
Its output informs to add streams_pool_size=50331648 to the init.ora file. While adding the parameter Oracle gives streams_pool_
STREAMS_POOL_SIZE, was introduced in release 10gR1. This message may be ignored for database version 9iR2 or less
2) One of the customer has reported on keeping the shared_pool_size at 150 MB, catmeta.sql fails with insuffient shared memory
Please make sure to set the following init parameters as below in the spfile/init file or comment them out to their default values, at
PLSQL_V2_COMPATIBILITY = FALSE
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 21 of 23
PLSQL_CODE_TYPE = INTERPRETED # Only applicable to 10gR1
PLSQL_NATIVE_LIBRARY_DIR = ""
PLSQL_NATIVE_LIBRARY_SUBDIR_COUNT = 0
Refer to Note 170282.1 PLSQL_V2_COMPATIBLITY=TRUE causes STANDARD and DBMS_STANDARD to Error at Compile
Always disconnect from the session which issues the STARTUP and connect as a fresh session before doing any further SQL. eg
SQLPLUS session as SYSDBA and then run the upgrade scripts.
If this is not a RAC instance, but DBA_REGISTRY shows the RAC component and it is invalid the following bite can be used to re
5) Upgrade log shows process errors with ORA-28031 "maximum of 148 enabled roles" when creating queue table.
The number of DEFINED roles (enabled and disabled) that SYS has must not exceed the maximum number of roles defined for th
To correct, reduce the number of DEFINED roles to less then 148 then re-run the catupgrd.sql script.
Revision History
Support have been asked to include this new section in the note. It is not possible to provide a completely accurate revision h
section exists, Support will keep it up-to-date.
18-JUL-2005
Article created
31-JUL-2005
Article published
24-JAN-2007
29-JAN-2007
03-DEC-2007
05-FEB-2008
27-FEB-2008
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 22 of 23
- Skip step 6 if upgrading from 9.x to 10.2
- Keep CWMLITE tablespace online (useful hints)
- Check that DBA_REGISTRY contains data (step 8)
- Added reference to Note:465951.1 in the list of prerequisites
- Use GATHER_SCHEMA_STATS in 8i and 9i (step 7)
18-APR-2008
21-APR-2008
- Added a note suggesting that password complexity checking procedures are disabled (step 32)
- Added a warning about using NLS_LENGTH_SEMANTICS=CHAR (step 40)
29-SEP-2008
29-APR-2009
- Added reference to Note:312071.1 into known issues
- Added disclamer for movement of database instance form one system to another
- Processed remarks and corrections for changes due to new patch versions.
18-AUG-2009
- Expanded information about invalid x_$ views, and removed comments about Note 361757.1 being restricted since it has been
References
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011
Page 23 of 23
NOTE:557242.1 - Upgrade Gives Ora-29558 Error Despite of JAccelerator Has Been Installed
NOTE:565600.1 - ERROR IN CATUPGRD: ORA-00904 IN DBMS_SQLPA
NOTE:603714.1 - 10.2.0.4 Catupgrd.sql Fails With ORA-03113 Creating SYS.KU$_XMLSCHEMA_VIEW
NOTE:745183.1 - After upgrade CATPROC and CATALOG comps are INVALID even if only user invalid objects are found
NOTE:979942.1 - Database upgrade appears to have halted at SYS.AUD$ Table
Oracle Database Upgrade Guide 10g Release 2 (10.2) Part Number B14238-01
http://download.oracle.com/docs/cd/B19306_01/server.102/b14238/toc.htm
Related
Products
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Standard Edition
Keywords
NCOMP; 10GR2; UPGRADE FROM 8.1.7.4; UPGRADE FROM 8.1.7; UPGRADE FROM 9.2.0; UPGRADE TO 10.2.0; UPG
Back to top
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=KB&id=316889.1%20... 1/2/2011