Forum Stats

  • 3,770,159 Users
  • 2,253,079 Discussions
  • 7,875,349 Comments

Discussions

Best Practices for Migrating SAP Systems to Oracle Infrastructure--Part 3: SAP Database Migration Me

steph-choyer-Oracle
steph-choyer-Oracle Member Posts: 101 Red Ribbon
edited Mar 20, 2017 5:59PM in Optimized Solutions

by Victor Galis and Pierre Reynes

This article, Part 3 of the series, provides a practical guide to migrating Oracle Database instances as a part of an SAP migration using Oracle Recovery Manager (Oracle RMAN) DUPLICATE. The Oracle RMAN "duplicate from active database" method is used to clone a source Oracle Database instance from file systems to Oracle Exadata Storage Servers (storage cells) in Oracle SuperCluster or to an Oracle Automatic Storage Management destination.

Introduction

This article is Part 3 of a six-part series that provides best practices and recommendations for migrating a complete SAP system to an Oracle platform (in this example, to Oracle SuperCluster M7). A team of Oracle engineers and SAP experts worked together to test and tune different migration methods, compiling the step-by-step procedures and guidance given in these articles.

The articles in this "Best Practices for Migrating SAP Systems to Oracle Infrastructure" series are located here:

OOS_Logo_small125.png
in collaboration with
OSC_Logo_small125.png
Oracle Optimized Solutions provide tested and proven best practices for how to run software products on Oracle systems. Learn more.

Migrating an Oracle Database Instance Using Oracle RMAN DUPLICATE

This article series covers several methods that can be used to migrate the database in an SAP environment. In this article, the Oracle Recovery Manager (Oracle RMAN) "duplicate from active database" approach is used to clone the source database to a target Oracle SuperCluster system. This approach provides an easy and simple method to create an independently functioning copy of a complete Oracle Database instance.

The Oracle RMAN "duplicate from active database" approach can be used offline or online with the source database in an open state and operating during the copy process. An offline duplication process makes sure that both databases are exactly the same, while an online process restores the database to the status it had at the beginning of the duplication process and subsequent changes are lost. This makes the offline process the best choice for migrations, while the online process is best for copying a busy system with high availability requirements.

The Oracle RMAN "duplicate from active database" approach is limited to specific platforms that share the same underlying hardware architecture with the same byte-endian format and the same version and patch level of Oracle Database. Generally, the Oracle RMAN "duplicate from active database" command is used to create the database copy. Oracle Database parameter settings influence the copy that is created and can define a new storage structure, such as an Oracle Automatic Storage Management (Oracle ASM) destination. Thus, this approach can be used to migrate from file system–based database storage into Oracle ASM on Oracle SuperCluster, as described in this article.

In this article's example migration, the source (target) database has ORACLE_SID PR1 and is available through epr1-scan. The destination (auxiliary) database has ORACLE_SID PR2. For more details on the architecture of the systems used in this migration exercise, refer to Oracle Optimized Solution for SAP.

Oracle RMAN Preparation Steps

All of the migration preparation steps provided in Article 2 ("SAP Environment Migration—Pre-Database-Migration Tasks") must be performed before executing the steps below.

Step 1. Create the initialization parameter file for the destination database (initPR2.ora).

Create a token parameter file called initPR2.ora in $ORACLE_HOME/dbs. This file is used only for the purpose of database duplication.

[email protected]:/$ cd $ORACLE_HOME/dbs

[email protected]:/oracle/PR2/121/dbs$ cat > initPR2.ora << EOF

*.db_name='PR2'

*.db_block_size=8192

*.compatible= 12.1.0.2.0

*.AUDIT_TRAIL=NONE

*.audit_sys_operations=FALSE

*.db_unique_name='PR2'

*.db_create_file_dest='+DATAC1'

*.control_files='+DATAC1/PR2/CONTROLFILE/cntrl1.dbf','+RECOC1/PR2/CONTROLFILE/cntrl2.dbf'

*.db_recovery_file_dest='+RECOC1'

*.db_recovery_file_dest_size=12G

*.listener_networks='((NAME=network2)(LOCAL_LISTENER=LISTENER_IBLOCAL)(REMOTE_LISTENER=LISTENER_IBREMOTE))','((NAME=network1)(LOCAL_LISTENER=LISTENER_IPLOCAL)(REMOTE_LISTENER=sapm7-c1-scan:1521))'

*.filesystemio_options='SETALL'

*.timed_statistics=true

sga_max_size=10G

*.log_file_name_convert=

'/oracle/PR1/mirrlogA','+RECOC1/PR2',

'/oracle/PR1/mirrlogB','+RECOC1/PR2',

'/oracle/PR1/origlogA','+DATAC1/PR2',

'/oracle/PR1/origlogB','+DATAC1/PR2'

EOF

[email protected]:/oracle/PR2/121/dbs$

Listing 1: Creating the initialization parameter file.

For large databases, the number of database files needs to be increased to reflect what is currently in use.

Step 2. Create the password file for PR2 (orapwPR2).

Add the password file orapw<SID>, either by copying it from the source $ORACLE_HOME/dbs directory or by creating a new one using the utility orapwd. The password needs to be the same for both the source and destination databases.

[email protected]:/oracle/PR2/121/dbs$ orapwd FILE=orapwPR2 ENTRIES=10 password=<password>

[email protected]:/oracle/PR2/121/dbs$ ls -l orapwPR2

-rw-r-----   1 oracle   oinstall    7680 May 13 10:49 orapwPR2

[email protected]:/oracle/PR2/121/dbs$

Listing 2: Creating the password file for PR2.

Step 3. Validate the destination database using SQL*Plus.

Validate that the destination database can be started and that the network is set up properly. Start the auxiliary instance without mounting the database by using the STARTUP command with the NOMOUNT clause.

[email protected]:/oracle/PR2/121/dbs$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri May 13 10:53:50 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

SQL> startup nomount

ORACLE instance started.

Total System Global Area 1.0737E+10 bytes

Fixed Size                  2925344 bytes

Variable Size            1.0469E+10 bytes

Database Buffers          234881024 bytes

Redo Buffers               30621696 bytes

SQL>

Listing 3: Validating the destination database by connecting and starting an instance.

Verify the network parameters, making sure that the database registers with the correct listener upon startup. Note that REMOTE_LISTENER is set to be the Single Client Access Name (SCAN) Listener to allow the use of either a SCAN IP address or SCAN VIP address.

SQL> show parameter network

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

fileio_network_adapters              string

listener_networks                    string      ((NAME=network2)(LOCAL_LISTENE

                                                 R=LISTENER_IBLOCAL)(REMOTE_LIS

                                                 TENER=LISTENER_IBREMOTE)), ((N

                                                 AME=network1)(LOCAL_LISTENER=L

                                                 ISTENER_IPLOCAL)(REMOTE_LISTEN

                                                 ER=sapm7-c1-scan:1521))

SQL>

Listing 4: Validating database network parameters.

The database registers with the local 10 GbE listener defined in tnsnames.ora as well as with the local and remote InfiniBand (IB) listener. The definitions for LISTENER_IBLOCAL and LISTENER_IB_REMOTE are created in the process of enabling the IB listener.

Step 4. Modify the Oracle Net listener parameters (listener.ora)

In the Oracle Grid Infrastructure network/admin directory, modify the Oracle Net Listener parameters in listener.ora to create a static SID_LIST service, because Oracle RMAN will need to restart the auxiliary database instance. After modifying listener.ora, restart the Oracle Net Listener service using the srvctl stop and srvctl start commands.

[email protected]:/oracle/PR2/121/dbs$ vi /u01/app/12.1.0.2/grid/network/admin/listener.ora

SID_LIST_LISTENER_IB=

   (SID_LIST =

      (SID_DESC =

          (SID_NAME = PR2)

          (ORACLE_HOME = /oracle/PR2/121)

       )

    )

[email protected]:/oracle/PR2/121/dbs$ srvctl stop listener -l LISTENER_IB

[email protected]:/oracle/PR2/121/dbs$ srvctl start listener -l LISTENER_IB

Listing 5: Modifying the Oracle Net Listener configuration and restarting the listener.

For the example migration exercise, we chose LISTENER_IB, but the default LISTENER or any other listener that is configured will work. LISTENER_IB provides optimal performance because the InfiniBand network in Oracle SuperCluster allows much higher transfer rates.

Step 5. Add the destination database to the Local Naming parameter file (tnsnames.ora).

In the $ORACLE_HOME/network/admin directory, edit the Local Naming parameter file, tnsnames.ora, to add the auxiliary database (PR2) information, as shown in Listing 6. This will allow the migration to run from the Oracle SuperCluster DATABASE domain and connect to the source DATABASE using the external 10 GbE network. The connection to the auxiliary database is over the internal InfiniBand network for optimal performance.

[email protected]:/oracle/PR2/121/dbs$ vi $ORACLE_HOME/network/admin/tnsnames.ora

PR2 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = sapm7zdb1c1-ib-vip)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = PR2)

      ( UR = A )

    )

  )

[email protected]:/oracle/PR2/121/dbs$

Listing 6: Adding the destination database PR2 to tnsnames.ora.

Notice the ( UR = A ) option. It allows connecting remotely to a database that is not started or in restricted mode.

Step 6. Validate the connection to the destination database using SQL*Plus.

Connect to the destination database PR2 using SQL*Plus and start the auxiliary Instance.

[email protected]:/oracle/PR2/121/dbs$ sqlplus sys/<password>@PR2 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Apr 29 11:35:55 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

SQL> startup nomount

ORACLE instance started.

Total System Global Area 1.0737E+10 bytes

Fixed Size                  2925344 bytes

Variable Size            1.0469E+10 bytes

Database Buffers          234881024 bytes

Redo Buffers               30621696 bytes

SQL>

Listing 7: Connecting to PR2 with SQL*Plus and starting an instance.

Step 7. Add the source (target) database to the Local Naming parameter file (tnsnames.ora).

Prepare the connection to the target database by adding the source database information to the tnsnames.ora file.

[email protected]:/oracle/PR2/121/dbs$ vi $ORACLE_HOME/network/admin/tnsnames.ora

PR1 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = epr1-scan)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = PR1001)

    )

  )

[email protected]:/oracle/PR2/121/dbs$

Listing 8: Adding the target database PR1 to tnsnames.ora.

Step 8. Validate the connection to the source database using SQL*Plus.

Connect to the source database PR1 using SQL*Plus.

[email protected]:/oracle/PR2/121/dbs$ sqlplus sys/<password>@PR1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Apr 29 11:28:53 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics

and Real Application Testing options

SQL> quit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

[email protected]:/oracle/PR2/121/dbs$

Listing 9: Connecting to PR1 with SQL*Plus.

Step 9. Validate that Oracle RMAN can connect to both databases.

Create a working directory and verify that Oracle RMAN can connect to both the target (PR1) and auxiliary (PR2) database instances.

[email protected]:/oracle/PR2/121/dbs$ cd

[email protected]:~$ pwd

/export/home/oracle

[email protected]:~$ mkdir dup

[email protected]:~$ cd dup

[email protected]:~/dup$

[email protected]:~/dup$ rman

RMAN>connect target sys/<password>@PR1

connected to target database: PR1 (DBID=994759330)

RMAN>connect auxiliary sys/<password>@PR2

connected to auxiliary database: PR2 (not mounted)

Listing 10: Connecting to PR1 and PR2 with Oracle RMAN.

Migrate the Database with Oracle RMAN DUPLICATE

At this point, the environment is ready to begin the migration process using Oracle RMAN DUPLICATE.

Step 1. Create a script for the Oracle RMAN duplication process.

Because the duplication steps might need to be repeated multiple times while adjusting configuration parameters, it is a good practice to script the process so that it can be executed quickly. Listing 11 displays an example script called dupPR2 that performs Oracle RMAN duplication.

[email protected]:~/dup$ cat dupPR2

connect target sys/<password>@PR1

connect auxiliary sys/<password>@PR2

CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO BACKUPSET;

show all;

run {

  allocate channel t0 device type disk;

  allocate channel t1 device type disk;

  allocate channel t2 device type disk;

  allocate channel t3 device type disk;

  allocate channel t4 device type disk;

  allocate channel t5 device type disk;

  allocate channel t6 device type disk;

  allocate channel t7 device type disk;

  allocate channel t8 device type disk;

  allocate channel t9 device type disk;

  allocate channel t10 device type disk;

  allocate channel t11 device type disk;

  allocate channel t12 device type disk;

  allocate channel t13 device type disk;

  allocate channel t14 device type disk;

  allocate channel t15 device type disk;

  allocate auxiliary channel c0 device type disk;

duplicate target database to PR2 from active database;

}

[email protected]:~/dup$

Listing 11: Example Oracle RMAN duplication script.

Note: In the script, the level of parallelism might need to be adjusted depending on the infrastructure. We found PARALLELISM 16 to provide the best performance with our setup. Factors to consider to determine the level of parallelism include:

  • The target-side I/O system (to get the data)
  • The target-side workload (if you are migrating a live system)
  • The bandwidth of the interconnect
  • The auxiliary side I/O system (to write data into the new file system)

Step 2. Run the Oracle RMAN script.

Execute the Oracle RMAN script to duplicate the database, specifying the log file and the script name.

[email protected]:~/dup$ rman log pr2DUP.log cmdfile dupPR2

Listing 12: Executing the script.

Open a separate terminal window and monitor log file output. ("Appendix A: Example Oracle RMAN Log File" contains a listing of the complete log file, pr2DUP.log.)

[email protected]:~/dup$ tail -f pr2DUP.log

Listing 13: Monitoring the log output during duplication.

Step 2.1. In the event of failure, fix errors and remove files before rerunning the script.

If the script fails, it is necessary to correct configuration errors and start the script again. A few files must be removed between each script execution attempt:

  • The file spfile<SID>.ora, in this case spfilePR2.ora in directory $ORACLE_HOME/dbs
  • The Oracle RMAN log file, in this case pr2DUP.log
  • All Oracle ASM files created on disk group DATA under the <ORACLE_SID> directory
  • All Oracle ASM files created on disk group RECO under the <ORACLE_SID> directory

Oracle RMAN creates files in both the DATA and RECO disk groups for the database destination. Remove these files before attempting a new migration. Use asmcmd to manage Oracle ASM instances, disk groups, file access control for disk groups, files and directories within disk groups, templates for disk groups, and volumes.

[email protected]:/oracle/PR2/121/dbs$ . oraenv

ORACLE_SID = [PR2] ? +ASM1

[email protected]:/oracle/PR2/121/dbs$ asmcmd

ASMCMD> ls

DATAC1/

RECOC1/

ASMCMD> ls *

+DATAC1/:

...

PR2/

...

+RECOC1/:

...

PR2/

...

ASMCMD> rm */PR2/*/*

Listing 14: Using asmcmd to show files created in disk groups DATA and RECO.

Post-Duplication Tasks

Step 1. Modify the PFILE initPR2.ora.

The initialization parameter file (PFILE) init<SID>.ora on the destination system should adhere to SAP-specific requirements and recommended performance optimizations. For example, the PFILE initPR2.ora should be modified to reflect the Oracle SuperCluster configuration (including Oracle ASM data storage on Oracle Exadata Storage Servers). In addition, the PFILE should include parameter settings from the source environment as well as SAP-recommended parameters. The example PFILE in Listing 15 shows several optimizations commonly defined for SAP environments.

PR2.__db_cache_size=4362076160

PR2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

PR2.__shared_io_pool_size=301989888

*._B_TREE_BITMAP_PLANS=FALSE

*._fix_control='5099019:ON','5705630:ON','6055658:OFF','6120483:OFF','6399597:ON','6430500:ON'

,'6440977:ON','6626018:ON','6972291:ON','7168184:OFF','7658097:ON','8937971:ON','9196440:ON','

9495669:ON','13077335:ON','13627489:ON','14255600:ON','14595273:ON','18405517:2'#SAP_121022_20

1503 RECOMMENDED SETTINGS

*._IN_MEMORY_UNDO=FALSE

*._INDEX_JOIN_ENABLED=FALSE

*._OPTIM_PEEK_USER_BINDS=FALSE

*._OPTIMIZER_MJC_ENABLED=FALSE

*._SORT_ELIMINATION_COST_RATIO=10

*._TABLE_LOOKUP_PREFETCH_SIZE=0

*.audit_file_dest='/oracle/PR2/saptrace/audit'

*.cluster_database=FALSE

*.compatible='12.1.0.2.0'

*.control_file_record_keep_time=30

*.control_files='+DATAC1/PR2/CONTROLFILE/cntrl1.dbf','+RECOC1/PR2/CONTROLFILE/cntrl2.dbf'

*.db_block_size=8192

*.db_cache_size=4638564679

*.db_name='PR2'

*.DB_RECOVERY_FILE_DEST='+RECOC1'

*.db_recovery_file_dest_size=30000M

*.db_unique_name='PR2'

*.diagnostic_dest='/oracle/PR2/saptrace'

*.event='10027','10028','10142','10183','10191','10995 level 2','38068 level

100','38085','38087','44951 level 1024'#SAP_121022_201503 RECOMMENDED SETTINGS

*.FILESYSTEMIO_OPTIONS='setall'

*.listener_networks='((NAME=network2)(LOCAL_LISTENER=LISTENER_IBLOCAL)(REMOTE_LISTENER=LISTENE

R_IBREMOTE))','((NAME=network1)(LOCAL_LISTENER=LISTENER_IPLOCAL)(REMOTE_LISTENER=sapm7-c1-

scan:1521))'

*.log_archive_dest_1='LOCATION=+RECOC1'

*.log_archive_format='%t_%s_%r.dbf'

*.log_checkpoints_to_alert=true

*.max_dump_file_size='20000'

*.open_cursors=2000

*.parallel_execution_message_size=16384

*.parallel_threads_per_cpu=1

*.pga_aggregate_target=6184752906

*.processes=1390

*.query_rewrite_enabled='false'

*.recyclebin='off'

*.remote_listener='sapm7zdb2c1-vip:1521'

*.remote_login_passwordfile='exclusive'

*.replication_dependency_tracking=false

*.sessions=2780

*.shared_pool_size=4638564679

*.star_transformation_enabled='true'

Listing 15: Example PFILE initPR2.ora.

This PFILE includes SAP-recommended settings specified in SAP Note 188848 that help in optimizing performance for Oracle Database 12.1.0.2 (SAP Note 188848 is specific to Oracle Database 12.1.0.2). Modify the PFILE according to SAP recommendations for the specific database version being migrated.

Step 2. Re-create the SPFILE.

An SPFILE file called spfilePR2.ora is created on the target during the Oracle RMAN duplication process. If it is not removed, its settings will be used instead of those in the PFILE initPR2.ora, negating the impact of updated PFILE changes and optimizations. The following steps delete the SPFILE in $ORACLE_HOME/dbs and re-create it in ASM DATA disk group('+DATAC1/PR2/spfilePR2.ora' ). It is done using the PFILE initPR2.ora, which has been modified to reflect appropriate SAP and customer specific optimizations.

Step 2.1. Remove the file spfilePR2.ora from the $ORACLE_HOME/dbs directory.

[email protected]:~/dup$ rm $ORACLE_HOME/dbs/spfilePR2.ora

Listing 16: Removing the SPFILE spfilePR2.ora.

Step 2.2. Create a new SPFILE on the target system.

Using the PFILE initPR2.ora, create a new version of spfilePR2.ora on the target system in the Oracle ASM disk group +DATAC1.

[email protected]:~/dup$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri May 13 11:40:46 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

SQL> create spfile = '+DATAC1/PR2/spfilePR2.ora' from pfile;

SQL> quit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

[email protected]:/oracle/PR2/121/dbs$

Listing 17: Creating a new SPFILE in the Oracle ASM disk group.

Step 2.3. Modify initPR2.ora to point to the new SPFILE.

Modify the PFILE initPR2.ora to point to +DATAC1/PR2/spfilePR2.ora.

[email protected]:~/dup$ cat $ORACLE_HOME/dbs/initPR2.ora

spfile = (+DATAC1/PR2/spfilePR2.ora)

Listing 18: Modifying initPR2.ora to point to the new SPFILE.

Step 2.4. Restart the database and validate the SPFILE parameter.

Stop and restart the database to refresh the database initialization parameters. Verify that the SPFILE parameter is set correctly.

[email protected]:/oracle/PR2/121/dbs$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri May 13 11:53:50 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics

and Real Application Testing options

SQL> shutdown abort

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 9495904256 bytes

Fixed Size                  5282808 bytes

Variable Size            4798284808 bytes

Database Buffers         4664066048 bytes

Redo Buffers               28270592 bytes

Database mounted.

Database opened.

SQL> show parameter spfile

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      +DATAC1/PR2/spfilepr2.ora

SQL>

Listing 19: Restarting the database to verify the SPFILE setting.

Step 3. Apply the latest SAP bundle patch.

Best practice is to install the latest SAP Bundle Patch (SBP) available. Apply the latest SBP to the newly created database. In the test environment, ORACLE_HOME was patched before starting the migration. Listing 20 shows how to query the database to determine the last patch bundle that has been applied to the source database.

SQL> select * from dba_registry_history;

ACTION_TIME

---------------------------------------------------------------------------

ACTION                         NAMESPACE

------------------------------ ------------------------------

VERSION                                ID BUNDLE_SERIES

------------------------------ ---------- ------------------------------

COMMENTS

--------------------------------------------------------------------------------

30-SEP-15 05.28.41.006139 AM

APPLY                          SERVER

12.1.0.2                           201508 SGR

SBP 12.1.0.2.4 201508 containing CPUJul2015

Listing 20: Find the current Oracle Patch Set and SAP Bundle Patch levels.

In our example the SAP bundle patch was already applied to the Oracle Home. We needed to perform only the database-specific step from the README of the SBP. For Oracle Database 12.1 and later, apply the SBP to the database using the catsbp script provided with the SBP (for Oracle Database 11.2, use the script catsbp.sql).

[email protected]:/oracle/PR2/121/sapbundle/SBP_121025_201511$ ./catsbp

catsbp - Post-process Installation of SBP 12.1.0.2.5 201511 for Exadata.

Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.

Log file: $ORACLE_BASE/cfgtoollogs/sqlpatch/SXD201511_APPLY_PR2_2016_04_15-01-44-53.log

Connecting to database...

Connecting to database...done.

Executing Datapatch...

Executing Datapatch...done.

Loading style sheets...

Loading style sheets...skipped.

Reason: Style sheets already loaded

Recompiling objects with utlrp...

Recompiling objects with utlrp...done.

Log file: $ORACLE_BASE/cfgtoollogs/sqlpatch/SXD201511_APPLY_PR2_2016_04_15-01-44-53.log

catsbp completed successfully.

Overall Status: COMPLETE

Listing 21: Applying the latest SAP Bundle Patch to a new database (in a directory that was patched before).

If the current SAP Bundle Patch requires rolling back some patches, this procedure might fail if the rollback files have not been copied over. Check the log file, as shown in Listing 22. Copy over relevant directories from the source database server and restart the procedure.

SQL> select comments,action, to_char(action_time,'DD-MON-YYYY HH24:MM') from dba_registry_history;

COMMENTS

--------------------------------------------------------------------------------

ACTION                         TO_CHAR(ACTION_TIME,'DD

------------------------------ -----------------------

SBP 12.1.0.2.4 201508 containing CPUJul2015

APPLY                          30-SEP-2015 05:09

SBP 12.1.0.2.5 201511 containing CPUOct2015

INCOMPLAPL                     15-APR-2016 01:04

SBP 12.1.0.2.5 201511 containing CPUOct2015

APPLY           

Listing 22: Checking the log for missing patches.

Note: For troubleshooting issues with catsbp, see SAP Note 2184669.

Step 4. Perform the post-database migration steps.

The Oracle Database migration is now complete and the database instance is usable. There are, however, additional tasks that are necessary to finalize the migration of the SAP system. Part 6 of this article series, "SAP Environment Migration—Post-Database-Migration Tasks" describes these requirements.

See Also

For more information about the Oracle RMAN DUPLICATE command, refer to the Oracle Database Backup and Recovery User's Guide (for Oracle Database 11g) or Oracle Database Backup and Recovery User's Guide (for Oracle Database 12c). See also the Oracle Recovery Manager page on Oracle Technology Network. Other references include the white papers "Moving your SAP Database to Oracle Automatic Storage Management 11g Release 2: A Best Practices Guide" and "SAP NetWeaver and Oracle Exadata Database Machine."

About the Authors

Victor Galis is a master sales consultant, part of the global Oracle Solution Center organization. He supports customers and sales teams architecting SAP environments based on Oracle hardware and technology. He works with SAP Basis and DBA teams, systems and storage administrators, as well as business owners and executives. His role is to understand current environments, business requirements, and pain points as well as future growth and map them to SAP landscapes that meet both performance and high availability expectations. He has been involved with many "SAP on Oracle SuperCluster" customer environments as an architect and has provided deployment and go-live assistance. Galis is an SAP-certified consultant and Oracle Database administrator.

Pierre Reynes is a solution manager for Oracle Optimized Solution for SAP and Oracle Optimized Solution for PeopleSoft. He is responsible for driving the strategy and efforts to help raise customer and market awareness for Oracle Optimized Solutions in these areas. Reynes has over 25 years of experience in the computer and networking industries.

Appendix A: Example Oracle RMAN Log File

Recovery Manager: Release 12.1.0.2.0 - Production on Thu Jul 28 13:56:57 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target *

2> connect auxiliary *

3>

4> CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO BACKUPSET;

5>

6> show all;

7>

8> run {

9>   allocate channel t0 device type disk;

10>   allocate channel t1 device type disk;

11>   allocate channel t2 device type disk;

12>   allocate channel t3 device type disk;

13>   allocate channel t4 device type disk;

14>   allocate channel t5 device type disk;

15>   allocate channel t6 device type disk;

16>   allocate channel t7 device type disk;

17>   allocate channel t8 device type disk;

18>   allocate channel t9 device type disk;

19>   allocate channel t10 device type disk;

20>   allocate channel t11 device type disk;

21>   allocate channel t12 device type disk;

22>   allocate channel t13 device type disk;

23>   allocate channel t14 device type disk;

24>   allocate channel t15 device type disk;

25>   allocate auxiliary channel c0 device type disk;

26>

27> duplicate target database to PR2 from active database;

28> }

29>

30>

connected to target database: PR1 (DBID=994759330)

connected to auxiliary database: PR2 (not mounted)

using target database control file instead of recovery catalog

old RMAN configuration parameters:

CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO BACKUPSET;

new RMAN configuration parameters:

CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO BACKUPSET;

new RMAN configuration parameters are successfully stored

RMAN configuration parameters for database with db_unique_name PR1 are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO BACKUPSET;

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFI

Comments