Friday

R12 Migration: 32bit–> 64bit Overview

I’ve had a few enquiries as to the steps I used to migrate our R12 environment from 32bit to 64bit.   Fortunately we were moving to new hardware at the same time, which made the process easier.  Instead of having to backup the server, wipe it and install 64bit Linux, I could just migrate the data.
  1. We use Red Hat Linux, so the first step was to install the 64bit version on the new server and make sure all the setup steps were performed.   

    Oracle E-Business Suite Installation and Upgrade Notes Release 12 (12.1.1) for Linux x86-64 [ID 761566.1]

    The above note details all of the operating system requirements and is very easy to follow.
  2. Shutdown the application tier.
  3. Export OLAP Analytic Workspaces.

    OLAP, as far as I know, is only used for the EPB (Enterprise, Planning & Budgeting) and ODP (Oracle Demand Planning) modules.  I asked Oracle Support if I needed to migrate OLAP if we aren’t or didn’t plan on using these modules.    They stated no, so I didn’t export them.   If you are using OLAP be aware of this note:

    EPB AW's Cannot Be Attached Or Do Not Exist [ID 795247.1]
  4. Execute preclone on the appsTier.        ($ADMIN_SCRIPTS_HOME/adpreclone.pl appsTier)
  5. Backup the controlfile to trace.
    alter database backup control file to trace;
  6. Move necessary files to the new servers:
    * Application software.
    * Database datafiles
    * Files under $ORACLE_HOME/dbs such as the password file, parameter file, etc.
    * Control File trace.
  7. Install the 11.2.0 64bit software on the new server, including the examples CD.
  8. Create the 9inls directory:
               perl $ORACLE_HOME/nls/data/old/cr9idata.pl
  9. Apply the necessary database patches:

    8328200,8993052,9081430,9218789,9318214,9500046,9535951,
    9644960,9657344,9719541,9756939

    NOTE: For Patch 9218789:  opatch napply -skip_subset -skip_duplicate

    You may have to set the following environment variable:
    export OPATCH_PLATFORM_ID=226

    Failed To Apply Patch Opatch Detects Platform 46 While Patch Is For 226 [ID 337812.1]
  10. On the new server create the control files using the backup you created in step 5. 
  11. Start the database in UPGRADE mode:
    STARTUP UPGRADE;
  12. Invalidate and recompile database objects:
    ?/rdbms/admin/utlirp
    ?/rdbms/admin/utlrp

    Note: If you didn’t export and drop the OLAP schema then you may hit error:

    ORA-03113 And ORA-03114 While Running Utlrp.sql [ID 578940.1]

    The solution is to run the following and re-run utlrp.sql:
    @?/olap/admin/olap.sql SYSAUX TEMP;

    I didn’t drop OLAP as per the instructions since I was migrating the database to a new server and the rollback plan in the event of a problem was simply to use the old servers.
  13. Import OLAP analytical workspaces

    If you need to migrate OLAP then this is where you would want to import them.
  14. On the appsTier set the following environment variable:
    LDEMULATION to elf_i386
  15. Update CTXORIG.xml

    This file can be found under <COMMON_TOP>/clone/context/apps
    Modify the following line:

    <platform oa_var="s_platform" osd="LINUX_X86-64">LINUX_X86-64</platform>
  16. Use Netca to create a new Listener.  Otherwise you’ll hit issues while trying to implement autoconfig.  Create it with the same name and port as the source environment.  Add an entry for the SID to the listener.ora.  Restart the listener.
  17. Implement Autconfig on DB Tier.

    This step struck me as weird because we haven’t built the appsTier yet.  So I basically just copied the old appsutil.zip from $INST_TOP on the source server.
    Unzip -o appsutil.zip in the DB Oracle Home

    Set TNS_ADMIN=$ORACLE_HOME/network/admin

    Create Context File
          perl adbldxml.pl


    Run autoconfig
       adconfig.sh contextfile=/u01/VIS/db/tech_st/11.2.0/appsutil/VIS_myserver.xml
  18. Execute Post Clone on the Apps Tier
    $COMMON_TOP/clone/bin
    perl adcfgclone.pl appsTier
  19. Deregister the old Application and Database servers.
  20. Modify $AD_TOP/bin/adrelinknew.sh

    CPP_LDFLAGS=' -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -lclntsh -Wl,--noinhibit-exec'
  21. Relink AD executables (Use AD Relink for this step)

    Relink Applications programs

    Generate message files

    Generate form files

    Generate report files

    Generate product JAR files
If I haven’t missed anything while modifying my document for this post, then that should be it.  Feel free to send me any questions.
As for step 19, it’s a bit detailed, so I will post details in a follow up shortly.