Converting 32-bit Oracle Databases to 64-bit Oracle Database
If you are using 32-bit oracle database on any 32-bit / 64-bit plateform then you can convert or migrate 32-bit database to 64-bit database. Now i am describing you in two scenario.
First Scenario: Suppose you are using 32-bit database (9iR2) on any plateform and you want to convert your 32-bit database (9iR2) to 64-bit database.
Second Scenario: Suppose you are using 32-bit database (9iR2) and want to upgrade your current 32-bit database (9iR2) to 64-bit higher version database like 10g, 11g.
In the second scenario, database will automatically be converted to 64-bit during the upgrade to oracle database higher version.
Here I am describing only first scenario in this section.
Project
Convert / Migrate a 32-bit Oracle 8.0.x, Oracle 8i, Oracle 9i, Oracle 10g and oracle 11g Database to 64-bit.
Step 1
Startup SQL*PLUS, connect with 32-bit database instance AS SYSDBA and shutdown database by using SHUTDOWN IMMEDIATE command.
Step 2
Tack full cold backup of database.
Step 3
Install 64-bit version of the same oracle software realease in Different ORACLE_HOME.
Step 4
Copy initialization parameter file eg initSID.ora, spfileSID.ora from old ORACLE_HOME to new 64-bit ORACLE_HOME.
Step 5
Change your environment to point at the new 64Bit ORACLE_HOME.
Step 6
Add following parameter in new 64-bit initialization parameter file.
aq_tm_processes=0
job_queue_processes=0
_system_trig_enabled= false
Step 7
startup SQL*PLUS, connect with 64-bit database instance AS SYSDBA.
Step 8
If you are working with in Oracle 8.0.x, Oracle8i or Oracle9i 9.0.x database, run STARTUP RESTRICT:
SQL> STARTUP RESTRICT
If you are working with in Oracle9i 9.2.0.x database, run STARTUP MIGRATE:
SQL> STARTUP MIGRATE
If you are working with in Oracle10g database, run STARTUP UPGRADE:
SQL> STARTUP UPGRADE
If you are working with in Oracle11g database, run STARTUP UPGRADE:
SQL> STARTUP UPGRADE
Step 9
Set the system to spool results to a log file for later verification of success:
SQL> SPOOL catoutw.log
Step 10
Run utlirp.sql:
SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql
This script recompiles existing PL/SQL modules in the format required by the new database.
This script first alters certain dictionary tables. Then, it reloads package STANDARD and DBMS_STANDARD, which are necessary for using PL/SQL.
Optional Steps:
If the patchset level is not being changed (for example, you are migrating a 9.2.0.8 32-bit database to 9.2.0.8 64-bit) then there is no need of optional steps.
If the patchset level is change to run then need to optional steps.
If you are working with in Oracle 8.0, Oracle8i or Oracle 9i 9.0.x database, run the following script:
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
If you are working with in Oracle9i 9.2.0.x database, run the following
script:
SQL> @$ORACLE_HOME/rdbms/admin/catpatch.sql
If you are migrating an Oracle10g 10.1.0.x or 10.2.0.x database, run the following script:
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
Step 11
Run utlrp.sql:
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
This script recompiles all invalid objects
TIPS:
If you are using same machine for converting 32-bit to 64 bit. Only you will create new ORACLE_HOME for 64-bit oracle software and you will use same phiysical database structure.
If you are using different machine for convertion 32-bit to 64-bit . You will install Oracle 64 bit oracle software on differnet machine and you will clone your 32 bit database on new machine.
If you are using UNIX based OS and want to use different machine for converting 32 bit to 64 bit better you create same database file structure and restore from old box to new box.
HI Anup, your document is great. Did you document in the same way for second scenario.