Overall Comments Have the documentation handy. Or keep browser window open for http://technet.oracle.com/doc/oracle8i_816/server.816/a76957/migbymig.htm Migration from 7.3.4 to 8.1.6 is not affected by 8i data block check. So no need to follow Metalink DOC 96117.1 (or OraUpgTo816Warning.txt in the folder AT DBA\Oracle 8i\) In the process of migration, the documentation recommends database cold backups 3 times and 1 old ORACLE_HOME software backup. For odvl migration, I only cold-backed up once as in the section "Preserve the Oracle7 Source Database" of documentation. This is done after running mig. I believe this cold backup is essential. Backing up 7.3.4 software tree is not necessary. Procedural Comments Before running migprep, make sure migus.ms[bg] are writable. If not, do this: chmod 644 migus.msb cp migus.msg migus.msb.bak chmod 644 migus.msg cp migus.msg migus.msg.bak If you do not do this, you get the error: $ migprep /oracle/home/product/8.1.6 /oracle/home/product/7.3.4.3 NEW_ORACLE_HOME=/oracle/home/product/8.1.6 OLD_ORACLE_HOME=/oracle/home/product/7.3.4.3 is this ok [y]/n? y cp: cannot create /oracle/home/product/7.3.4.3/rdbms/mesg/migus.msb: Permission denied cp: cannot create /oracle/home/product/7.3.4.3/rdbms/mesg/migus.msg: Permission denied ORA_NLS does not have to be set. But this has to be set after running migprep: export ORA_NLS33=$ORACLE_HOME/migrate/nls/admin/data Also do this: export NLS_LANG=AMERICAN_AMERICA.US7ASCII Do make sure there's no other non-background session running (possibly some jobs are running such as sys.dbms_ijob.remove(:job) in oprd). If not, shutdown and startup restrict. Do run mig CHECK_ONLY=TRUE! After running mig CHECK_ONLY=TRUE (and if there's no space problem), shut down V7 database, or you can't run mig. After running mig, setting env vars to 8i env vars should not be done with oraenv. Set them individually using the export command. Since PATH is longer than 256, do it like this: In another window: . oraenv? [an 8i database] vi /tmp/q.sh :r !print $PATH i export PATH= :wq chmod 744 /tmp/q.sh Back to current window: . /tmp/q.sh Also, set ORA_NLS export ORA_NLS=$ORACLE_HOME/migrate/nls/admin/data Comment out obsolete parameters: #checkpoint_process = true #db_block_checkpoint_batch = 32 #db_file_simultaneous_writes = 28 #log_simultaneous_copies = 2 #log_small_entry_max_size = 32 # force use of 28 copy latches #log_archive_buffer_size = 128 # larger archive buffers #log_archive_buffers = 5 #use_readv = true #SEQUENCE_CACHE_ENTRIE #SEQUENCE_CACHE_HASH_BUCKETS set db_domain as follows: db_domain = world After everything, startup the database and you get: SVRMGR> select * from v$version; BANNER ---------------------------------------------------------------- Oracle8i Enterprise Edition Release 8.1.6.2.0 - Production PL/SQL Release 8.1.6.2.0 - Production CORE 8.1.6.0.0 Production TNS for Solaris: Version 8.1.6.2.0 - Production NLSRTL Version 3.4.0.0.0 - Production This is normal. The CORE stays at 8.1.6.0.0. Change listener.ora as instructed. But remember to change oratab file too, even if documentation does not mention.