Complete upgrade checklist for manual upgrades from 8.X to Oracle9i(incl. 9.2) [notes 159657.1]
----------------------------------------------------------------------------
1.PURPOSE

This document is created for use as a guideline and checklist when
manually upgrading Oracle 8, Oracle 8i or Oracle 9i to Oracle 9i.

This document does not approach the upgrade of specific components.
To upgrade specific database components please use the steps described in
the migration guide chapter 3 page 3-25 of the Oracle 9.2 Migration guide
for Oracle 9.2 and chapter 7 page 7-24 of the oracle 9.0.1 Migration guide.
There it is explained how to upgrade following components:
XDK for Java, Session Namespace, CORBA, OSE, JSP, Oracle Spatial,
InterMedia, Oracle Text, Oracle Label Security, Oracle9i RAC,
Materialized views, Advanced Queueing Option and the recovery catalog.

NOTE: The 9.2 Rel1 Migration Guide does not contain information about how
      to upgrade Intermedia (Image/Video/Audio). This has been corrected
      in 9.2 Rel2 Migration Guide. Please refer to this Guide when upgrading
      to 9.2 Rel1.


SCOPE & APPLICATION
-------------------
Database administrators

----------------------------------------------------------------------------
2. UPGRADING THE DATABASE
----------------------
2-1 升级路径
Oracle 8.0版本的升级方法:
8.0.5以下(含8.0.5)版本,不支持直接升级。
低版本首先要升级到8.0.6或更高的8i版本后再升级到9.
8.0.5手动升级到8.0.6或更高版本的操作,可参考metalink notes [133920.1]。

Oracle 8i版本的升级方法:
8.1.5或8.1.6版本,可直接升级到9.0.1,但不支持直接升级到9.2。
8.1.5或8.1.6版本,首先要升级到8.1.7版本后,可再升级到9.2版本。

查看数据库版本和安装选项的方法:
Select * from v$version;
Select * from v$option;

2-2 升级之前做冷备份,非常重要!

2-3 保证数据库可用空间:

 - system rollback segment:     
Alter rollback segment system storage (maxextents 121 next 1M);     

- system TS保证至少150Mb的可用空间:         
  Select max(bytes) from dba_free_space where tablespace_name='SYSTEM';

- 检查ROLLBACK TS可用空间,如果数据库对象的个数超过5000个,要保证至少一个会滚段的大小为70Mb:
Select count(*) from dba_objects;

2-4 Verify the certification of oracle 9i on the OS version you are using.
Verify all necessary OS patches are installed.
Example for Solaris:
$ showrev -p

You can also check the installation in Note 169706.1

2-5 升级之前记录哪些对象为INVALID.

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';         

编译方法: 
SQL> @$ORACLE_HOME/rdbms/admin utlrp.sql
Run the script and than rerun the query to get invalid objects.     

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     

2-6 Verify the kernel parameters according to the installation guide of the new version.
Example for Solaris:
$ cat /etc/system

2-7 Ensure ORACLE_SID is set to instance you want to upgrade.
Echo $ORACLE_SID
Echo $ORACLE_HOME

2-8 For all information regarding the national characterset,
please refer to Note 276914.1
Before proceeding please check the column names involved with Note 278725.1 As of Oracle 9i the National Characterset (NLS_NCHAR_CHARACTERSET) will be limited to UTF8 and AL16UTF16.
Note 276914.1 The National Character Set in Oracle 9i and 10g
Any other NLS_NCHAR_CHARACTERSET will no longer be supported.

When upgrading to 9i the value of NLS_NCHAR_CHARACTERSET is based on value currently used in the Oracle8 version.
If the NLS_NCHAR_CHARACTERSET is UTF8 then new it will stay UTF8.
In all other cases the NLS_NCHAR_CHARACTERSET is changed to AL16UTF16 and -if used- N-type data (= data in columns using NCHAR, NVARCHAR2 orNCLOB ) may need to be converted.
The change itself is done in step 31 by running the upgrade script.

If you are NOT using N-type colums *for user data* then simply go to step 9, No further action required.

( so if: select distinct OWNER, TABLE_NAME from DBA_TAB_COLUMNS where
DATA_TYPE in ('NCHAR','NVARCHAR2', 'NCLOB') and OWNER not in
('SYS','SYSTEM'); returns no rows, go to point 9.)

If you have N-type colums *for user data* then check:

SQL> select * from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';

If you are using N-type colums AND your National Characterset is UTF8 or is in the following list:

JA16SJISFIXED , JA16EUCFIXED , JA16DBCSFIXED , ZHT32TRISFIXED
KO16KSC5601FIXED , KO16DBCSFIXED , US16TSTFIXED , ZHS16CGB231280FIXED
ZHS16GBKFIXED , ZHS16DBCSFIXED , ZHT16DBCSFIXED , ZHT16BIG5FIXED
ZHT32EUCFIXED

then also simply go to point 9.
The conversion of the user data itself will then be done in step 36.

If you are using N-type colums AND your National Characterset is NOT UTF8 or NOT in the following list:

JA16SJISFIXED , JA16EUCFIXED , JA16DBCSFIXED , ZHT32TRISFIXED
KO16KSC5601FIXED , KO16DBCSFIXED , US16TSTFIXED , ZHS16CGB231280FIXED
ZHS16GBKFIXED , ZHS16DBCSFIXED , ZHT16DBCSFIXED , ZHT16BIG5FIXED
ZHT32EUCFIXED

(your current NLS_NCHAR_CHARACTERSET is for example  US7ASCII, WE8ISO8859P1, CL8MSWIN1251 ...)
then you have to:
* change the tables to use CHAR, VARCHAR2 or CLOB instead the N-type
or
* use export/import the table(s) containing N-type columns
 and truncate those tables before migrating to 9i.
 The recommended NLS_LANG during export is simply the NLS_CHARACTERSET,
 not the NLS_NCHAR_CHARACTERSET

2-9 如果源库版本为8.0.6,确保库中不存在名为MIGRATE或OUTLN的数据库用户,如有,改为其它名字。

Select * from dba_users where username in ('MIGRATE','OUTLN');
Select * from dba_roles where role in ('MIGRATE','OUTLN');

2-10 Check for corruption in the dictionary, use the following commands in sqlplus connected as sys:

Set verify off
Set space 0
Set heading off
Set feedback off     
Set pages 1000     
Spool analyze.sql     
Select 'Analyze '||object_type||' '||object_name ||' validate structure;'     
from dba_objects     
where owner='SYS'     
and object_type in ('INDEX','TABLE','CLUSTER');
spool off

This creates a script called analyze.sql.
Run the script.
This script (analyze.sql) should not return any errors.     

2-11 Ensure that all Snapshot refreshes are successfully completed.
And replication is stopped.     

SQL> Select distinct(trunc(last_refresh)) from dba_snapshot_refresh_times;

2-12 Stop the listener for the database
$ lsnrctl     
Lsnrctl> stop <listenername>      

2-13 Ensure no files need media recovery:
SQL> Select * from v$recover_file;     

This should return no rows     

2-14 Ensure no files are in backup mode:
Select * from v$backup where status!='NOT ACTIVE';
This should return no rows.     

2-15 Resolve any outstanding unresolved distributed transaction:
Select * from dba_2pc_pending;
If this returns rows you should do the following:     

Select local_tran_id from dba_2pc_pending;     
Execute dbms_transaction.purge_lost_db_entry('<LOCAL_TRAN_ID>');     
Commit;

2-16 Disable all batch and cron jobs.

2-17 Ensure the users sys and system have 'system' as their default tablespace.
Select username, default_tablespace from dba_users where username     
in ('SYS','SYSTEM');     

To modify use:
Alter user sys default tablespace SYSTEM;             
Alter user system default tablespace SYSTEM;                          

2-18 Optionally ensure the aud$ is in the system tablespace when auditing is enabled.
Select tablespace_name from dba_tables where table_name='AUD$';

2-19 Note down where all control files are located.
Select * from v$controlfile;
这里需要注意,不要把控制文件放在源库的ORACLE_HOME下,如有,升级完之后修改控制文件的路径。

2-20 Note down all sysdba users.
Select * from v$pwfile_users;
If a passwordfile is used copy it to the new location. On unix the default
is $ORACLE_HOME/dbs/orapw<SID>.
On windows NT this is %ORACLE_HOME%\database\orapw<SID>                           

2-21 Shutdown the database
SQL> Shutdown immediate

2-22 Change the init.ora file:
- Make a backup of the init.ora file. 
- Verify that the parameter DB_DOMAIN is set properly.  
- Ensure there is a value for DB_BLOCK_SIZE     
- JOB_QUEUE_PROCESSES parameter, 记录旧值,升级期间改为0。
- AQ_TM_PROCESSES parameter, 记录旧值,升级期间改为0。
- If archiving is enabled set LOG_ARCHIVE_START=TRUE      
- Ensure that the USER_DUMP_DEST, BACKGROUND_DUMP_DEST and the CORE_DUMP_DEST
  are set to an explicit directory     
- 升级期间,显式设置 _SYSTEM_TRIG_ENABLED 为 FALSE
- Set the parameter OPTIMIZER_MODE to CHOOSE during the upgrade
- Comment out obsoleted parameters(list in appendix A).     
- Comment out SNAPSHOT_REFRESH_? parameters     
- Either leave COMPATIBLE unset in your initialization parameter file or
  set COMPATIBLE to 8.1.x.  Setting this parameter a lower or a higher value
  than 8.1.X results in an error during the upgrade.
- If you are using a passwordfile set the parameter
  REMOTE_LOGIN_PASSWORDFILE=NONE (If you are using windows also set the
  parameter SQLNET.AUTHENTICATION_SERVICES=(NTS) in the sqlnet.ora file.
- If you have set the parameter NLS_LENGTH_SEMANTICS to CHAR, change the value
  to BYTE during the upgrade.
- If you are using a cluster database, set the parameter CLUSTER_DATABASE=FALSE
  during the upgrade.
- If the parameter RESOURCE_MANAGER_PLAN is set, comment it out as a workaround
  for Bug 2610769
- check MAX_ENABLED_ROLES parameter value. Increase it if the number of roles
  in the Database is close to its value. When upgrading to higher versions,
  new roles might be added . If the Database already contains high number of
  roles, upgrade scripts can fail with error ORA-01925 as indicated in
  Note 261632.1
- Ensure that the shared_pool_size and the large_pool_size are at least 150Mb

2-23 Check for adequate freespace on archive log destination file systems.

2-24 Ensure the NLS_LANG variable is set correctly:
$ echo $NLS_LANG     

2-25 If needed copy the listener.ora and the tnsnames.ora to the new location
(when no TNS_ADMIN env. Parameter is used)     
cp $ORACLE_HOME/network/admin <NEW_ORACLE_HOME>/network/admin     

2-26 If your Operating system is Windows NT, delete your services
With the ORADIM of your old oracle version.     
For Oracle 8.0 this is:     
C:\ORADIM80 -DELETE -SID <SID>     

For Oracle 8i or higher this is:
C:\ORADIM -DELETE -SID <SID>
And create the new Oracle 9i service use ORADIM of the 9i ORACLE_HOME:     

C:\ORADIM -NEW -SID <SID> -INTPWD <internalpwd> -MAXUSERS n      
   -STARTMODE MANUAL -PFILE %ORACLE_HOME%\DATABASE\init<SID>.ora   

2-27 If needed copy the init.ora file to the new oracle_home or Create a link to the init.ora.
     
cp $OLD_ORACLE_HOME/dbs/init.ora $NEW_ORACLE_HOME/dbs/init.ora     
OR     
ln -s /init/ora/file/path/init.ora $ORACLE_HOME/dbs/init.ora   
Also check 'ifile' parameters in the init.ora, to be set to the correct file.
if an  IFILE is used, verify the above mentioned parameter for the init.ora
and copy this to the correct location. Change the IFILE entry in the init.ora
file when this file changes from location.
 
2-28 Update the oratab entry, to set the new ORACLE_HOME and disable automatic
startup:
<SID>:<new ORACLE_HOME>:N
 
2-29 Update the environment variables like ORACLE_HOME and PATH
     
$ . oraenv     
 
2-30 Make sure the following enviroment variables point to the new
     
Release directories:
     
- ORACLE_HOME      
- PATH      
- ORA_NLS33     
- ORACLE_BASE     
- LD_LIBRARY_PATH     
- ORACLE_PATH     
     
For HP-UX systems verify the SHLIB_PATH parameter points to the new release       
directories.     
     
$ env | grep ORACLE_HOME     
$ env | grep PATH     
$ env | grep ORA_NLS33     
$ env | grep ORACLE_BASE     
$ env | grep LD_LIBRARY_PATH     
$ env | grep ORACLE_PATH     
                                          
HP-UX:                                            
$ env | grep SHLIB_PATH                               
 
2-31 Run the upgrade script:
                         
$ cd $ORACLE_HOME/rdbms/admin     
Sqlplus /nolog
SQL> Connect sys/passwd_for_sys as sysdba
 
Use Startup RESTRICT when you are upgrading to Oracle 9.0.1:
SQL> Startup restrict     
 
Use Startup MIGRATE when you are upgrading to Oracle 9.2:
SQL> Startup Migrate
 
Spool the output so you can take a look at possible errors after the upgrade:
SQL> Spool Upgrade.log     
 
 Run the appropriate script for your version.     
     
From       To:         Only Script to Run     
====       ===         ==================     
8.0.6      9.0.1         u0800060.sql 
8.0.6      9.2           u0800060.sql 
8.1.5      9.0.1         u0801050.sql
8.1.5      9.2           Not Supported
8.1.6      9.0.1         u0801060.sql
8.1.6      9.2           Not Supported
8.1.7      9.0.1         u0801070.sql
8.1.7      9.2           u0801070.sql
9.0.1      9.2           u0900010.sql
 
Each of these scripts is a direct upgrade path from the version you are      
on to 9i. You do not need to run catalog.sql and catproc.sql as these      
two scripts are called from within the upgrade script.
 
The remainder of this step is only valid for upgrades towards Oracle 9.2:
 
Display the contents of the component registry to determine which components
need to be upgraded:
SQL> Select comp_name, version, status from dba_registry;
 
Run the script cmpdbmig.sql to upgrade the components which can be upgrade
with the SYSDBA privilege:
 
SQL> @cmpdbmig.sql
 
The components upgraded by this script are:
Jserver JAVAVM, oracle XDK for Java, Oracle 9i RAC, Oracle Data Mining,
OLAP analytical Workspace, Oracle 9i Java Packages, Messaging Gateway,
Oracle Workspace Manager, OLAP Catalog, Oracle Label Security.
 
Display the components which were upgraded:
SQL> Select comp_name, version, status from dba_registry;
 
End the spool of the upgrade:
SQL> Spool Off
 
2-32 Restart the database:
SQL> Shutdown Immediate (DO NOT USE SHUTDOWN ABORT!!!!!!!!!)     
SQL> Startup restrict
 
Executing this clean shutdown flushes all caches, clears buffers and performs
other database housekeeping tasks.  Which is needed if you want to upgrade
specific components.
 
2- 33 Run script to recompile invalid pl/sql modules:
SQL> @utlrp
If there are still objects which are not valid after running the script run
the following:
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 5.
 
There should be no dictionary objects invalid.
 
2-34 Edit init.ora file:
     
- Leave the parameter JOB_QUEUE_PROCESSES=0
- Leave the parameter AQ_TM_PROCESSES=0
- remove the parameter _system_trig_enabled from the init.ora file.  This
  parameter was explicitly set to false during the upgrade.
- modify the log_archive_dest parameter specify only the path, but make sure it     
  ends with a '/'. (remove the format)     
  e.g. log_archive_dest=/path/arch into log_archive_dest=/path/     
- Modify the parameter log_archive_format and add the format previously      
  removed from the log_archive_dest.     
  E.g log_archive_format=arch%t_SID_%s.log     
- If you are using a password file set the REMOTE_LOGIN_PASSWORDFILE parameter
  to the value used before migration.
 
2-35 Shutdown the database and startup the database.
$ sqlplus /nolog   
SQL> Connect sys/passwd_for_sys as sysdba      
SQL> Shutdown      
SQL> Startup restrict     
 
2-36 For all information regarding the national characterset,
please refer to Note 276914.1
 
A) IF you are NOT using N-type colums for *user* data:
 
 select distinct OWNER, TABLE_NAME from DBA_TAB_COLUMNS where
 DATA_TYPE in ('NCHAR','NVARCHAR2', 'NCLOB') and OWNER not in
  ('SYS','SYSTEM');
  did not return rows in point 8 of this note.
 
then simply:
$ sqlplus /nolog
SQL> connect sys/passwd_for_sys as sysdba
SQL> shutdown immediate
and goto step 37.
 
B) IF your version 8 NLS_NCHAR_CHARACTERSET was UTF8:
 
 you can look up your previous NLS_NCHAR_CHARACTERSET using this select:
 select * from nls_database_parameters where parameter ='NLS_SAVED_NCHAR_CS';
 
then simply:
$ sqlplus /nolog
SQL> connect sys/passwd_for_sys as sysdba
SQL> shutdown immediate
go to step 37.
 
C) IF you are using N-type colums for *user* data  *AND*
your previous NLS_NCHAR_CHARACTERSET was in the following list:
 
JA16SJISFIXED , JA16EUCFIXED , JA16DBCSFIXED , ZHT32TRISFIXED
KO16KSC5601FIXED , KO16DBCSFIXED , US16TSTFIXED , ZHS16CGB231280FIXED
ZHS16GBKFIXED , ZHS16DBCSFIXED , ZHT16DBCSFIXED , ZHT16BIG5FIXED
ZHT32EUCFIXED
 
then the N-type colums *data* need to be converted to AL16UTF16:
 
To upgrade user tables with N-type colums to AL16UTF16 run the
script utlnchar.sql:
 
$ sqlplus /nolog
SQL> connect sys/passwd_for_sys as sysdba
SQL> @utlnchar.sql
SQL> shutdown immediate
 
go to step 37.
 
D)IF you are using N-type colums for *user* data  *AND *
your previous NLS_NCHAR_CHARACTERSET was *NOT* in the following list:
 
JA16SJISFIXED , JA16EUCFIXED , JA16DBCSFIXED , ZHT32TRISFIXED
KO16KSC5601FIXED , KO16DBCSFIXED , US16TSTFIXED , ZHS16CGB231280FIXED
ZHS16GBKFIXED , ZHS16DBCSFIXED , ZHT16DBCSFIXED , ZHT16BIG5FIXED
ZHT32EUCFIXED
 
then import the data exported in point 8 of this note.
The recommended NLS_LANG during import is simply the NLS_CHARACTERSET,
not the NLS_NCHAR_CHARACTERSET
 
After the import:
$ sqlplus /nolog
SQL> connect sys/passwd_for_sys as sysdba
SQL> shutdown immediate
 
go to step 37.
 
2-37 Now edit the init.ora:
- put back the old value for the JOB_QUEUE_PROCESSES parameter
- put back the old value for the AQ_TM_PROCESSES parameter
- If you change the value for NLS_LENGTH_SEMANTICS prior to the upgrade put the value back to CHAR.
- If you changed the CLUSTER_DATABASE parameter prior the upgrade set it back to TRUE

2-38 Startup the database:
SQL> Startup
 
Create a server parameter file with a  initialization parameter file
SQL> Create spfile from pfile;
 
This will create a spfile as a copy of the init.ora file located in the
$ORACLE_HOME/dbs directory.
 
2-39 Modify the listener.ora file:
For the upgraded intstance(s) modify the ORACLE_HOME parameter
to point to the new ORACLE_HOME.
 
2-40 Start the listener
     
$ lsnrctl
LSNRCTL> start <listenername>     
 
2-41 Enable cron and batch jobs
     
2-42 Change oratab entry to use automatic startup
     
SID:ORACLE_HOME:Y     
 
2-43 To use the new features in 9i change the compatible parameter to the new release.
When everything is well tested, update the compatible parameter in the init.ora     
and restart to the new release number.     
COMPATIBLE=9.0.X  where x is the release number     
 
----------------------------------------------------------------------------
3.UPGRADING THE JAVA ENGINE(Only for upgrades to 9.0.1)
-------------------------
3-1 Check java has previously been installed:
Run the following query:
select count(*) from dba_objects where object_type like 'JAVA%'and
owner = 'SYS';
 
If this is >0 then java has been installed.  If this value =0 java is not
installed and there is no reason to upgrade the java engine.
 
3-2 Restart the database:
 $ Sqlplus /nolog
 SQL> connect sys/passwd_for_sys as sysdba
 SQL> Shutdown immediate
 SQL> startup restrict
 
3-3 Run the appropriate script depending on what release you are coming from:
 $ cd $ORACLE_HOME/javavm/install
 Sqlplus /nolog
 SQL> Connect sys/passwd_for_sys as sysdba
 SQL> Spool catoutjava.log
 
From         Only Script to Run     
====         ==================     
8.1.5        jvmu815.sql     
8.1.6        jvmu816.sql     
8.1.7        jvmu817.sql
 
After you have run this script, all user classes are invalid.  These become
implicitly valid when you executed them.  You can explicitly revalidate them
when executing the following command:
 
SQL> Alter Java Class <ClassName> resolve;
 
3-4 Restart the database:
 $ Sqlplus /nolog
 SQL> connect sys/passwd_for_sys as sysdba
 SQL> Shutdown immediate
 SQL> startup restrict
 
----------------------------------------------------------------------------
Appendix A: Obsolete parameters in 9i:
--------------------------------------
 
_average_dirties_half_life  
_lm_statistics              
allow_partial_sn_results    
always_anti_join             
always_semi_join            
arch_io_slaves              
b_tree_bitmap_plans         
backup_disk_io_slaves       
cache_size_threshold        
cleanup_rollback_entries    
close_cached_open_cursors   
compatible_no_recovery       
complex_view_merging        
cpu_count                   
db_block_checkpoint_batch   
db_block_lru_extended_statisti
db_block_lru_latches        
db_block_lru_statistics     
db_block_max_dirty_target   
db_file_simultaneous_writes 
delayed_logging_block_cleanout
discrete_transactions_enabled
distributed_lock_timeout    
distributed_recovery_connectio
distributed_transactions
fast_full_scan_enabled      
freeze_DB_for_fast_instance_re
gc_defer_time               
gc_latches                   
gc_lck_procs                
gc_releasable_locks         
gc_rollback_locks           
hash_multiblock_io_count    
instance_nodeset            
job_queue_interval          
job_queue_keep_connections  
large_pool_min_alloc         
lgwr_io_slaves              
lm_locks                    
lm_procs                    
lm_procs                    
lm_ress                     
lock_sga_areas              
log_block_checksum          
log_files                   
log_simultaneous_copies     
log_small_entry_max_size    
ogms_home                   
ops_admin_group             
ops_interconnects           
optimizer_percent_parallel  
optimizer_search_limit      
parallel_default_max_instances
parallel_min_message_pool   
parallel_server_idle_time   
parallel_transaction_resource_
push_join_predicate         
row_cache_cursors           
sequence_cache_entries      
sequence_cache_hash_buckets 
shared_pool_reserved_min_alloc
snapshot_refresh_interval   
snapshot_refresh_keep_connecti
snapshot_refresh_processes  
sort_direct_writes          
sort_multiblock_read_count  
sort_read_fac               
sort_spacemap_size          
sort_write_buffer_size      
sort_write_buffers           
spin_count                  
temporary_table_locks       
text_enable                 
use_ism
dblink_encrypt_login
log_archive_buffers
log_archive_buffer_size
 
 
Deprecated parameters:
----------------------
DRS_START  replaced by DG_BROKER_START
MTS_CIRCUITS replaced by CIRCUITS
MTS_DISPATCHERS replaced by DISPATCHERS
MTS_MAX_DISPATCHERS replaced by MAX_DISPATCHERS
MTS_MAX_SERVERS replaced by MAX_SHARED_SERVERS
MTS_SERVERS replaced by SHARED_SERVERS
MTS_SESSIONS replaced by SHARED_SERVER_SESSIONS
PARALLEL_SERVER replaced by CLUSTER_DATABASE
PARALLEL_SERVER_INSTANCES replaced by CLUSTER_DATABASE_INSTANCES
 
RELATED NOTES(本帖附件):
-------------------------
Note 197737.1 Corruption / Internal Errors Possible after Upgrading a
              Database to Oracle 9.2.0.1
Note
169706.1 Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,
              Solaris,Tru64 Unix Operating Systems Installation and
              Configuration Requirements Quick Reference (8.0.5 to 11.2)
Note
276914.1 The National Character Set ( NLS_NCHAR_CHARACTERSET ) in
              Oracle 9i, 10g and 11g
Note 278725.1 utlnchar.sql and n_switch.sql fail with ORA-01735 on
              'non-standard' Note
object names
Note
261632.1 ORA-24166 reported during Upgrade of a Database

Keywords:
---------
Upgrade migration migrate move convert 9i 9.2 9.0.1 8.1.7 8.0.6 8.1.5 8.1.6
Upgrade migration migrate move convert 9i 9.2 9.0.1 8.1.7 8.0.6 8.1.5 8.1.6
Upgrade migration migrate move convert 9i 9.2 9.0.1 8.1.7 8.0.6 8.1.5 8.1.6