Re: Oracle 7 to Oracle 8 migration problem

From: <info_at_revealnet.com>
Date: Wed, 27 Jan 1999 16:52:21 GMT
Message-ID: <78ng80$7cg$1_at_nnrp1.dejanews.com>


In article <36ACEA64.1DA72538_at_lucent.com>,   Ben Branch <benson.branch_at_lucent.com> wrote:
> Greetings,
>
> I recently tried to migrate a small development/test database
> from Oracle 7 to Oracle 8 (7.3.4 to 8.0.3, to be precise) on
> Solaris 2.5.1, using the Oracle 8 migration utility. After an
> hour or so I gave up; no matter what I tried, it always said
> 'attempt to start V8 server from V7 client.'
>
> Any ideas what's wrong? I tried to make sure that my PATH,
> ORACLE_HOME, LD_LIBRARY_PATH, etc. were all pointing to the
> newly installed 8.0.3 version ...
>
> Thanks in advance,
> Ben
>
> --
> Ben Branch
> bensonbranch_at_lucent.com
> 614-860-4790

From the Oracle Administration Knowledge Base (http://www.revealnet.com)

MIG80 is the migration utility that Oracle has provided to get your ORACLE7 database into an ORACLE8 database. Essentially there are two main paths and a rocky third to migrate from ORACLE7 to ORACLE8. These are:

  1. For small instances (not more that a gig or two) export the ORACLE7 database, build the ORACLE8 database and import.
  2. For large instances (many gig) use the MIG80 facility.
  3. For those who like pain, unload all ORACLE7 tables into flat files, build ORACLE8 database suing DDL scripts, use SQL loader to reload data.

The MIG80 path of course involves the use of the MIG80 utility. ORACLE8 has changes to virtually all database strucures:

w	Datafile file headers
w	Data dictionary
w	Controlfile structure
w	Rollback Segment structure

The MIG80 utility, properly used, makes sure that the existing ORACLE7 structures are altered to the new ORACLE8 structures. This is a one-way path and once started the only way to go back to the previous ORACLE7 instance is to recover from the backup or export you dutifully made prior to starting…right?

Let’s take a more detailed look at the actual procedure to use the MIG80 utility.

  1. You must start at 7.1.6, 7.2.3 or 7.3.3 (or higher) release level of Oracle. A version 6 database must be migrated to at least 7.1.6 before it can be converted to ORACLE8.
  2. Backup the source ORACLE7 database, or, perform a complete export.
  3. Drop any users or roles named "migrate".
  4. Resolve all pending transactions in a distributed environment.
  5. Bring all tablespaces online, or, make sure they are offline normal or temporary, not immediate. Resolve any save undo situations in tablespaces (see migration manual).
  6. Shutdown normal (not immediate or abort).
  7. Install the ORACLE8 software, do not do a "COMPLETE" install as this will attempt to build an ORACLE8 instance and may damage your existing instance beyond recovery. Do a partial, software only install.
  8. Install the MIG80 utility into the ORACLE7 ORACLE_HOME by using oracleinst on UNIX or its equivalent on your operating system.
  9. Unset the TWO_TASK environmental variable on UNIX or ORA_DFLT_HOLSTER on VMS.
  10. Set the following init.ora parameter:

        ORA_NLS33=$ORACLE_HOME/migrate (or its equivilent location on your system)

  1. Run the MIG80 utility on the ORACLE7 database according to the directions for your system. This creates an ORACLE8 data dictionary and a binary convert file. You will need 1.5 times the amount of space that your current dictionary occupies as free space in your SYSTEM tablespace area for the new dictionary. If you aren’t sure you have the space, run MIG80 in CHECK_ONLY mode first.You aren’t past the point of no return…yet. This step obliterates the ORACLE7 catalog views, but, you can recover them by doing the following if you need to abandon the migration at this point:
  2. Startup the ORACLE7 database in normal mode.
  3. Drop the user "migrate"
  4. Rerun CATALOG.SQL
  5. If using server manager rerun CATSVRMG.SQL
  6. If using parallel server, rerun CATPARR.SQL
  7. If using Symmetric Replication run CATREP.SQL

Note: This will be a 7.3 database if you abandon at this point.

  1. Remove any obsolete initialization parameters from the databases init<SID>.ora file.
  2. Set compatible to 8.0.0.0 or not at all.
  3. Change the locations specified by the control_files parameter to a new location.
  4. Remove the old control files, they will re recreated.
  5. From SVRMGR issue the commands: CONNECT INTERNAL and STARTUP NOMOUNT.
  6. From SVRMGR the DBA issues the ALTER DATABASE CONVERT command on the ORACLE8 side. This command creates a new controlfile, converts all online file headers to ORACLE8 format, and mounts the ORACLE8 instance. This is the point of no return.
  7. The DBA issues the ALTER DATABASE OPEN RESETLOGS command on the ORACLE8 side which automatically converts all objects and users defined in the new dictionary to ORACLE8 specifications. It also converts all rollback segments to ORACLE8 format.
  8. Finish converting the catalog to a full ORACLE8 catalog by running cat8000.sql, usually located in the $ORACLE_HOME/rdbms/admin subdirectory on UNIX. Then run catalog.sql located in the same place. Finally, run catproc.sql to rebuild the PL/SQL and utility packages. If needed, also run any other "cat".sql scripts to install any purchased options as required.
  9. Shutdown and backup your new ORACLE8 ready database.

Hope this Helps,

Cam White
RevealNet, Inc.

-----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own Received on Wed Jan 27 1999 - 17:52:21 CET

Original text of this message