Objective:
Migrating one 11.1.0.7 32-bit database that resides on an old Windows 2008 (32-bit) (4GB memory) to Windows 2008 64-bit (no upgrade) on a brand new server with 64GB memory.
{At 2017 and still there is 11.1.0.7 database ==> yes there is!}
Introduction and Background
I have a client with the following very old environment:
O.S.: Windows 2008 32-bit
Oracle: 11.1.0.7 32-bit
This environment was initially installed at 2002 (with Oracle 901) and then it went with a couple of upgrades until they reached 11.1.0.7, then they stopped upgrade, why?
This was actually because of the application vendor closed completely and disappeared !!
Since that date, client decided to stop any further database upgrades to avoid any issues with the application (as there is no application support going forward).
In parallel, he started to develop a new application with a new vendor with the latest technologies, but they didn’t finish yet.
Until the new application is completed, he wants to keep the old system running as it is!.
But, given the increased workload and data volumes and the 32-bit memory limitations ( < 4GB), he started to suffer heavily from the memory shortage.
So, to work around the memory issue, he decided to move the database from 32-bit platform to 64-bit platform without upgrade to minimize any impact on the old application.
So, it looks like a simple migration, let us see!
Which Windows Version?:
Ok, as we are going to move to another new powerful server, so, let us move to the latest Windows version available. Let us go with Windows 2012 R2. This is fine, but wait, as Oracle 11.1.0.7 is not certified with Windows 2012, actually there was no Windows 2012 at that time!.
Ok, no problem so let us go with Windows 2008 R2 64-bit.
- Unfortunately, Oracle 11.1.0.7 is not certified with this version, it is certified only with Windows 2008 64-bit (without R2)!.
Ok, go ahead and install Windows 2008 (without R2) on the new server and start the migration.
No, wait please, the new hardware is not compatible with the Windows 2008 , it is only compatible with Windows 2012 !!!!
Ok, no problem, let us install Windows 2012 R2 Enterprise Edition (64-bit) on the new server and then create a Virtual Machine on top of it with Windows 2008 64-bit , as a workaround.
So, I used the Windows Hyper-V virtualization technology to implement this and created a new Windows 2008 64-bit virtual machine.
So far so good, let us move on.!
Where is the Database Software?
Client has only 11.1.0.6 (+ 11.2.0.7 patchset) 32-bit, he doesn’t have the 64-bit version.
Ok, no problem, go ahead and download it from OTN or edelivery ==> unfortunately, Oracle already removed these old versions from its sites!.
The only way to get them, is to send Oracle a request and they will send you a physical DVD with the required software. The other option is to ask one of your Oracle friends to download it for you (on friendly basis) from Oracle Internal sites {ok thanks for my friend!]
For Windows 2008 64-bit, we are lucky, as we have 11.1.0.7 full version that can be installed directly. For any other Windows 64-bit platform, you have to install 11.1.0.6 first and then patch it to 11.1.0.7.
Install Hyper-V












Create new virtual Machine


















Disable Firewall.
Assign static IP
Oracle 11.1.0.7 64-bit Installation









Database Migration
Assumptions:
- Same data file directory structure
- Same characterset
- Physical – as it is – migration from 11.1.0.7 32-bit (Windows 2003 32-bit) to 11.1.0.7 64-bit (Windows 2008 Enterprise Edition 64-bit).
Note that the new server version OS version is Windows 2008 Enterprise Edition 64-bit, not Windows 2008 Enterprise Edition 64-bit R2 ( as Oracle 11.1.0.7 is not certified with R2)
Migration Procedure:
- Shutdown the source PIS database (take it offline in case of Fail Safe environment)
- Take Full database offline backup (Database size is small , about 20 GB)
- Copy the production database full backup to the new server ( it takes about 5 minutes over network).
- Copy initXXX.ora & Password file
- Optionally, copy the tnsnames.ora, listener.ora & sqlnet.ora
- Edit initXXX.ora file:
Remove all _ parameters
Create all the referenced directories
Enlarge the SGA and configure ASMM
- Copy the datafiles, redo files, control files to the same directories as that on the production
- Configure default listener using the “Net Configuration Assistant”
- Create the Oracle service on the 64bit system, using the ORADIM command
oradim -new -sid XXX -startmode auto -SRVCSTART SYSTEM -intpwd ****** – pfile M:\app\Administrator\product\11.1.0\db_1\database\initXXX.ora
You may need to write the above command manually, not copy/paste! Instance created and started
Set environment
set ORACLE_HOME=M:\app\Administrator\product\11.1.0\db_1
set PATH=%ORACLE_HOME%\bin;%PATH%
set ORACLE_SID=XXX
If the service started the database in the “READ WRITE” mode then:
Leave the Windows service running
From command window:
sqlplus / as sysdba
shutdown immediate
startup mount
To avoid the issue of FRA being 100% utilized:
rman target /
crosscheck archivelog all;
crosscheck backupset;
delete expired backupset;
shutdown immediate
OLAP:
If you have OLAP installed, then you may encounter many errors [ORA-07445/ORA-03113] later on. So, to avoid these errors, we will remove the OLAP and then add it again:
{Please refer to:
DB CONVERSION: 32 bit –>64 Bit Broke OLAP OPTION [ID 386990.1]
sqlplus / as sysdba
startup upgrade
Remove OLAP
@?/olap/admin/catnoamd.sql
@?/olap/admin/catnoaps.sql
@?/olap/admin/catnoxoq.sql
@?/olap/admin/olapidrp.plb
Add OLAP ( if it is required) or add it later after migration using : @?/olap/admin/olap.sql SYSAUX TEMP;
{{If the utlrp script hang, this is mainly due to OLAP being installed}}
Migrate:
@?\rdbms\admin\utlip.sql
@?\rdbms\admin\utlrp.sql ==> 5 minutes

All of the above 70 invalid objects are related to the OLAP, so , don’t worry!
select count(*) from dba_objects where status=’INVALID’;
shutdown immediate
startup
select name,platform_name,open_mode from v$database;
Congratulation , Migration completed !
If you want to add the OLAP option:
@?/olap/admin/olap.sql SYSAUX TEMP; ==> 3 minutes
@?\rdbms\admin\utlrp.sql è zero invalid object
{But note that adding OLAP will produce many core dumps and trace files, it is better to keep OLAP deleted unless you really need it}
Post Migration
Configure EM DB Control on the New Server
Ensure that the listener is up and running
emca -deconfig dbcontrol db -repos drop

emca -config dbcontrol db -repos create


Emctl status dbconsole


Windows Services:

Done!

Donate to support our blogging work
$1.00
Thanks
Ahmed
One thought on “Oracle Database 32-bit Funny Migration to 64-bit”