Oracle Database 32-bit Funny Migration to 64-bit

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

123456789101112

 

Create new virtual Machine

131415161718192021222324252627282930

Disable Firewall.

Assign  static IP

Oracle 11.1.0.7 64-bit Installation

313233343536373839

 

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]

http://www.orafaq.com/forum/t/170415/

 

                                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

39a

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

40

emca -config dbcontrol db -repos create

4142

Emctl status dbconsole

42a

43

 

Windows Services:

44

Done!

Advertisements

One thought on “Oracle Database 32-bit Funny Migration to 64-bit

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s