Example procedure for migrating Oracle databases with Portable Data Containers

For the example configuraiton setup:

See Example setup for migrating Oracle databases with Portable Data Containers.

To migrate the example Oracle database configuration with Portable Data Containers

  1. Shutdown the database and unmount the mount points.

    $ export ORACLE_SID=VRTS
    $ sqlplus "/as sysdba"
    SQL*Plus: Release 10.2.0.4.0 - Production on Mon Aug 31 16:18:33 2009
    
    Copyright ©) 1982, 2007, Oracle.  All Rights Reserved.
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> exit
    
    # umount /data10r2/
    # umount /arch10r2/
    		
  2. Convert a VxFS filesystem on target platform for required endianess.

    # fscdsconv -e -t os_name=AIX -f /oracle/data10gr2.recovery.aix \
         /dev/vx/dsk/datadg5001/datavol 
    UX:vxfs fscdsconv: INFO: V-3-26040: Please verify if the following \
         details identify the migration 
    target for /dev/vx/dsk/datadg5001/datavol:
    Operating system          : AIX
    Operating system version  : any
    Architecture              : any
    VxFS version              : any
    Bits                      : any
    UX:vxfs fscdsconv: INFO: V-3-26037: Would you like to proceed \
         further with migration? (ynq) y
    UX:vxfs fscdsconv: INFO: V-3-26042: The filesystem does not need \
         to be byteswapped for use on this target.
    UX:vxfs fscdsconv: INFO: V-3-26130: There are no files violating \
         the CDS limits for this target. 
    UX:vxfs fscdsconv: INFO: V-3-26034: Since no byteswapping was \
         required, the file /oracle/data10gr2.recovery.aix has not been used.
    UX:vxfs fscdsconv: INFO: V-3-26045: The filesystem is now ready \
         for use on the specified target.
    
    # fscdsconv -e -t os_name=AIX -f /oracle/arch10gr2.recovery.aixm \
         /dev/vx/dsk/datadg5001/archvol 
    UX:vxfs fscdsconv: INFO: V-3-26040: Please verify if the following \
    details identify the migration 
    target for /dev/vx/dsk/datadg5001/archvol:
    Operating system          : AIX
    Operating system version  : any
    Architecture              : any
    VxFS version              : any
    Bits                      : any
    UX:vxfs fscdsconv: INFO: V-3-26037: Would you like to proceed \
         further with migration? (ynq) y
    UX:vxfs fscdsconv: INFO: V-3-26042: The filesystem does not need \
         to be byteswapped for use on this target.
    UX:vxfs fscdsconv: INFO: V-3-26130: There are no files violating \
         the CDS limits for this target. 
    UX:vxfs fscdsconv: INFO: V-3-26034: Since no byteswapping was \
         required, the file /oracle/arch10gr2.recovery.aix has not \
         been used.
    UX:vxfs fscdsconv: INFO: V-3-26045: The filesystem is now ready \
         for use on the specified target.
  3. Deport the DG on Solaris machines.

    # vxdg deport datadg5001
  4. Start volumes and mount filesystem same as source database on target platform.

    # vxdg import datadg5001
    # vxvol -g datadg5001 startall
    # mount -V vxfs /dev/vx/dsk/datadg5001/datavol /data10gr2
    # mount -V vxfs /dev/vx/dsk/datadg5001/archvol /arch10gr2
  5. Startup the database and monitor alert*.logs for any ORA- errors, in particular for ORA-600,ORA-7445.

    • Copy spfileVRTS from source platform to target platform's $ORACLE_HOME/dbs.

    • Create password file for VRTS on target platform $ORACLE_HOME/dbs.

    • Create necessary directory structure $ORACLE_HOME/admin.

    $ export ORACLE_SID=VRTS
    $ sqlplus "/as sysdba"
    SQL*Plus: Release 10.2.0.4.0 - Production on Mon Aug 31 16:13:38 2009
    
    Copyright ©) 1982, 2007, Oracle.  All Rights Reserved.
    
    Connected to an idle instance.
    
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area 8589934592 bytes
    Fixed Size                  2054312 bytes
    Variable Size            1056966488 bytes
    Database Buffers         7516192768 bytes
    Redo Buffers               14721024 bytes
    Database mounted.
    Database opened.
  6. Run dbv against each datafile on target platform for any corruption. dbv and alert_VRTS.log located at dbv_datafiles_VRTS_aix.zip

    Source Platform

    Target Platform

    Operating System

    Solaris Sparc (10.0)

    AIX (6.1)

    CPU

    8

    8

    Physical RAM

    16GB

    16GB

    Storage

    EMC Clarion /EVA 2 TB

    EMC Clarion/EVA 2 TB

    RDBMS

    Oracle 10gR2

    Oracle 10gR2

    Database

    Oracle Single Instance

    Oracle Single Instance

    Database Size

    1.7 TB

    1.7 TB

    Endianess

    BIG

    BIG

    File System

    VERITAS FS

    VERITAS FS

    Volume Manager

    VERITAS VxVM

    VERITAS VxVM

  7. Confirm the migrated database platform name and platform ID.

    	$ export ORACLE_SID=VRTS
    SQL> select d.platform_name, endian_format
      2  from v$transportable_platform tp, v$database d
      3  where tp.platform_name = d.platform_name;
    
    PLATFORM_NAME                            ENDIAN_FORMAT
    ---------------------------------------- 	         --------------
    AIX-Based Systems (64-bit)               	Big
    
    SQL> select COUNT(*) "ERRORS DURING RECOMPILATION" from utl_recomp_errors;
    
    ERRORS DURING RECOMPILATION
    ---------------------------
                              0
    
    SQL>
    SQL> Rem =====================================================================
    SQL> Rem Run component validation procedure
    SQL> Rem =====================================================================
    SQL>
    SQL> SET serveroutput on
    SQL> EXECUTE dbms_registry_sys.validate_components;
    
    PL/SQL procedure successfully completed.
    
    SQL> SET serveroutput off
    
    SQL> Rem ===========================================================================
    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
    SQL> Rem ===========================================================================
    SQL> set feedback 6;
    SQL>
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- 	    ----------
    VRTS       READ WRITE

Expected Results