Using Logical Standby (SQL Apply) for near zero downtime upgrad e of two node Oracle RAC database

from 10.2.0.5 to 11.2.0.3

In the article you will have a look at an example of using a logical standby database, also known as SQL Apply, to perform a near zero downtime upgrade of a two node Oracle RAC database from version 10.2.0.5 to version 11.2.0.3. The two node cluster configuration is described here in detail. For the testing both primary and standby databases share the same Oracle GI cluster. Earlier I have upgraded the cluster to 11.2.0.3 and installed Oracle RDBMS 11.2.0.3 binaries on each node. In the article a physical standby database will be build and converted to a logical database that will be used for the upgrade. Each node has a separate non-shared $OH for the GI and RDBMS versions installed. The table below summarizes some environment details used in the article. Node1 raclinux1 Node2 raclinux2

Linux hostname 10.2.0.5 $OH 11.2.0.3 $OH Production SID Logical Standby SID

/u01/app/oracle/product/10.2.0/db_1 /u01/app/oracle/product/11.2.0/db_3 RAC10G1 RAC10G2 RACSTB1 RACSTB2

RAC10G is a 10.2.0.5 database and a logical standby database RACSTB will be built and used for upgrade to 11.2.0.3. Cluster provides a shared pool of storage that consists of DATA and DATADG disk groups. DATADG hosts RAC10G files and DATA hosts RACSBT files. The upgrade process goes through the following conceptual stages illustrated in the table below.

Stage 1

Primary site RAC10G is ONLINE running 10.2 RAC10G is ONLINE running 10.2 RAC10G is ONLINE running 10.2

2

3

4

RAC10G is ONLINE running 10.2

Logical Standby Site RACSTB is LS 10.2 and SQL Apply is running RACSTB is LS 10.2 and SQL Apply is stopped RACSTB is LS is being upgraded to 11.2.0.3 and SQL apply is stopped RACSTB is LS 11.2.0.3 and SQL apply is started to sync with primary

Production Database RAC10G

RAC10G

RAC10G

RAC10G

5 (Switchover) THIS IS THE ONLY DOWNTIME (Depend on the switchover time) 6

7.

8 (Switchover)

RACSTB is ONLINE running 11.2.0.3 (archive log destination is deferred) RACSTB is ONLINE running 11.2.0.3 (archive log destination is deferred) RACSTB is ONLINE running 11.2.0.3 (archive log destination is enabled) RAC10G is ONLINE running 11.2.0.3 RAC10G is ONLINE running 11.2.0.3

RAC10G is LS running 10.2 ( SQL Apply is stopped)

RACSTB

RAC10G is LS that is being upgraded to 11.2.0.3 ( SQL Apply is stopped) RAC10G is LS running 11.2.0.3 and SQL apply is started to sync with primary RACSTB is LS 11.2.0.3 and SQL Apply is running RACSTB is LS 11.2.0.3 and SQL Apply is running

RACSTB

RACSTB

RAC10G

9. Adjust the COMATIBLE parameter for both databases LS – Logical Standby

RAC10G

Both RAC10G and RACSTB are two node RAC databases. Only is certain cases CLUSTER_DATABASE parameter is set to FALSE. The article aim at documenting steps involved in a near zero downtime upgrade using logical standby and can be used for later releases, i.e. upgrade from 10.2.0.X, 11.1.0.X or 11.2.0.X to 11.2.0.X+1 as Oracle has not changed the interface for creating and managing standby databases from 10.2 to 11.2 significantly. There are some data type restrictions that are not subject to coverage here but can be examined in detail from Oracle documentation listed in the reference section.

1. Build logical standby database (SQL Apply)
Building a logical standby requires existing physical standby database. Thus, in the first section you will look at building a physical standby and in the second section you will convert the physical standby to logical standby. 1.1 Building a physical standby In this section you will look at the detailed steps to build a physical standby database(for sake of testing in the same cluster). For information related to building 11.2 standby databases look here. 1.1.1 Enable force logging on the primary database (RAC10G) by running
SQL> alter database force logging;

1.1.2 Make sure that archive log mode is enabled

1.1.3 Verify that password file is created. 1.1.4 Make sure that you can login as sysdba using the password file.
SQL> connect sys/sys1@rac10g as sysdba Connected. SQL>

1.1.5 Configure standby redo log on the primary database (RAC10G). Oracle documentation states that you need to have n+1 standby redo logs if there are n redo logs. In my case I have two threads with two groups each. I will create three groups of standby redo log for each thread.

SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM ---------- ---------- ---------- ---------- ---------- --- --------------- ------------- --------1 1 59 52428800 2 YES INACTIVE 3216590 23-JUN-12 2 1 60 52428800 2 NO CURRENT 3270128 23-JUN-12 3 2 49 52428800 2 NO CURRENT 3270168 23-JUN-12 4 2 48 52428800 2 YES INACTIVE 3158521 22-JUN-12 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_ ---------- ------- ------- ---------------------------------------- --2 ONLINE +DATADG/rac10g/onlinelog/group_2.264.757 NO 480057 2 1 1 ONLINE ONLINE ONLINE +DATADG/rac10g/onlinelog/group_2.265.757 YES 480061 +DATADG/rac10g/onlinelog/group_1.262.757 NO 480051 +DATADG/rac10g/onlinelog/group_1.263.757 YES 480053

GROUP# STATUS TYPE MEMBER IS_ ---------- ------- ------- ---------------------------------------- --3 3 4 4 GROUP# STATUS ONLINE ONLINE ONLINE ONLINE TYPE +DATADG/rac10g/onlinelog/group_3.269.757 NO 480381 +DATADG/rac10g/onlinelog/group_3.270.757 YES 480385 +DATADG/rac10g/onlinelog/group_4.271.757 NO 480391 +DATADG/rac10g/onlinelog/group_4.272.757 YES MEMBER IS_

SQL> The following standby redo logs that are created.--480395 8 rows selected.6 Set tnsnames aliases in tnsnames.STATUS FROM V$STANDBY_LOG. SQL> SELECT GROUP#. 6 size 52428800. 8 size 52428800.---------.SEQUENCE#.---------------------------------------.------. Here RAC10G and RACSTB will be used for redo shipment. alter alter alter alter alter alter database database database database database database add add add add add add standby standby standby standby standby standby logfile logfile logfile logfile logfile logfile thread thread thread thread thread thread 1 1 1 2 2 2 group group grou p group group group 5 size 52428800.--.------.ora Network Configuration File: /u01/app/oracle/product/10.---------. LISTENERS_RAC10G = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) ) LISTENERS_RACSTB = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) ) RAC10G2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RAC10G) (INSTANCE_NAME = RAC10G2) . Pay attention to the PR and ST that will be used to startup and shutdown a database using a password file authentication.ora for communication between the database and the standby.---------5 1 0 YES UNASSIGNED 6 1 0 YES UNASSIGNED 7 1 0 YES UNASSIGNED 8 2 0 YES UNASSIGNED 9 2 0 YES UNASSIGNED 10 2 0 YES UNASSIGNED 6 rows selected.2. SQL> 1.---------. 10 size 52428800. 7 size 52428800.1.0/db_1/network/admin/tnsnames. 9 size 52428800.THREAD#. GROUP# THREAD# SEQUENCE# ARC STATUS ---------. # tnsnames.ARCHIVED.ora # Generated by Oracle configuration tools.

) ) RAC10G1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RAC10G) (INSTANCE_NAME = RAC10G1) ) ) RAC10G = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RAC10G) ) ) LISTENERS_RACSTB = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) ) RACSTB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RACSTB) (INSTANCE_NAME = RACSTB2) ) ) RACSTB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RACSTB) (INSTANCE_NAME = RACSTB1) ) ) RACSTB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RACSTB) ) ) RACSTBC = .

SID_LIST_LISTENER_RACLINUX1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/10.0/db_1) (SID_NAME = RACSTB) .ora Make a static listener entries on each node [oracle@raclinux1 admin]$ cat listener.ora # listener.0/db_1/network/admin/listener.ora Network Configuration File: /u01/app/oracle/product/10.2.2.(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) (CONNECT_DATA = (SID = RACSTB1) ) ) RAC10GC = (DESCRIPTION = (ADDRESS = (PROTOCOL = (ADDRESS = (PROTOCOL = (CONNECT_DATA = (SID = RAC10G1) ) ) PR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL 1521)) ) (CONNECT_DATA = (SID = RAC10G1) ) ) ST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL 1521)) ) (CONNECT_DATA = (SID = RACSTB1) ) ) [oracle@raclinux1 admin]$ TCP)(HOST = raclinux1 -vip)(PORT = 1521)) TCP)(HOST = raclinux1 -vip)(PORT = 1521)) = TCP)(HOST = raclinux1 -vip)(PORT = = TCP)(HOST = raclinux1 -vip)(PORT = 1.ora # Generated by Oracle configuration tools.7 Set static listener.1.

0/db_1/network/admin/listener.2.2.racl inux2 # Generated by Oracle configuration tools.20.0/db_1) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/10.2.21)(PORT = 1521)) ) ) [oracle@raclinux1 admin]$ [oracle@raclinux2 admin]$ cat listener.raclinux2 Network Configuration File: /u01/app/oracle/product/10.0/db_1) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/10.2.2.0/db_1) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/10.2.ora.ora # listener.) (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/10.0/db_1) (SID_NAME = RACSTB) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/10.168. SID_LIST_LISTENER_RACLINUX2 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/10.0/db_1) (SID_NAME = RACSTB) ) ) LISTENER_RACLINUX1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux1 -vip)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.ora.0/db_1) (SID_NAME = RACSTB) ) ) .2.0/db_1) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/10.2.

RACSTB)' scope=both sid='*'. alter system set LOG_ARCHIVE_DEST_1='LOCATION=+DATADG/ VALID_FOR=(ALL_LOGFILES.8 Modify the init parameters on RAC10G alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(RAC10G. alter system set DB_FILE_NAME_CONVERT='+DATA/'. 1.RACSTB)' DB_FILE_NAME_CONVERT='+DATADG/'.1. DB_NAME=RAC10G DB_UNIQUE_NAME=RACSTB LOG_ARCHIVE_CONFIG='DG_CONFIG=(RAC10G. alter system set FAL_SERVER=RACSTB scope=both sid='*'. alter system set LOG_FILE_NAME_CONVERT='+DATA/'.'+DATA/' LOG_ARCHIVE_FORMAT=%t_%s_%r. alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both sid='*'.ora file for RACSTB Look at the full initRACSTB.20.ora file in the Appendix. alter system set LOG_ARCHIVE_DEST_2='SERVICE=RACSTB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES.PRIMARY_ROLE) DB_UNIQUE_NAME=RAC10G' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE .'+DATADG/' scope=spfile sid='*'.dbf LOG_ARCHIVE_DEST_1='LOCATION=+DATA/ VALID_FOR=(ALL_LOGFILES. alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both sid='*'.LISTENER_RACLINUX2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = raclinux2 -vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192. alter system set FAL_CLIENT=RAC10G scope=both sid='*'.9 Prepare init.'+DATA/' LOG_FILE_NAME_CONVERT='+DATADG/'.PRIMARY_ROLE) DB_UNIQUE_NAME=RACSTB' scope=both sid='*'. alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both sid='*'.'+DATADG/' scope=spfile sid='*'.168.ALL_ROLES) DB_UNIQUE_NAME=RACSTB' LOG_ARCHIVE_DEST_2='SERVICE=RAC10G LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES.ALL_ROLES) DB_UNIQUE_NAME=cRAC10G' scope=both sid='*'. alter system set LOG_ARCHIVE_MAX_PROCESSES=30 scope=both sid='*'.22)(PORT = 1521)(IP = FIRST)) ) ) [oracle@raclinux2 admin]$ 1.1.

1. } 1. run { allocate channel tst type disk.ora' [oracle@raclinux2 dbs]$ [oracle@raclinux1 dbs]$ cat initRACSTB1. backup database plus archivelog.ora' . Look in the Appendix for output of the script. SQL> create spfile='+DATA/RACSTB/spfileRACSTB.ora SPFILE='+DATA/RACSTB/spfileRACSTB.10 Create directories for bdump.12 Make a RAC10G backup and run a script to create the standby. allocate auxiliary channel tststby type disk.ora' from pfile='/tmp/initRACSTB.ora SPFILE='+DATA/RACSTB/spfileRACSTB. File created.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE STANDBY_FILE_MANAGEMENT=AUTO FAL_SERVER=RAC10G FAL_CLIENT=RACSTB 1.ora SPFILE='+DATA/RACSTB/spfileRACSTB. allocate channel tst1 type disk. BACKUP CURRENT CONTROLFILE FOR STANDBY.13 Create a spfile for the standby database. duplicate target database for standby DORECOVER.ora'.1.1.1.ora' [oracle@raclinux1 dbs]$ [oracle@raclinux1 dbs]$ cat initRACSTB1.11 Create password file for the standby RACSTB database orapwd file=orapwRACSTB1 entries=100 password=sys1 orapwd file=orapwRACSTB2 entries=100 password=sys1 1. backup current controlfile. SQL> Create pfiles [oracle@raclinux2 dbs]$ cat initRACSTB2.cdump etc… Create the following direcories mkdir /u01/app/oracle/admin/RACSTB cd /u01/app/oracle/admin/RACSTB mkdir adump bdump cdump dpdump hdump pfile udump 1.

[oracle@raclinux1 dbs]$ 1. PROTECTION_LEVEL.---------. applied from v$archived_log order by sequence#.1.1.14 Register the database with Oracle Clusterware for management as a cluster resource.--------------MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE MOUNTED PHYSICAL STANDBY SQL> SQL> select sequence#.2.1.15 Start redo apply SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION.ora -r physical_standby -y automatic srvctl add instance -d racstb -i racstb2 -n raclinux2 srvctl add instance -d racstb -i racstb1 -n raclinux1 1. SEQUENCE# ---------47 48 49 50 51 52 53 54 55 55 56 SEQUENCE# ---------56 57 57 58 58 58 APP --NO NO NO NO NO NO NO NO NO NO NO APP --NO NO NO NO YES NO .0/db_1 -p +DATA/RACSTB/spfileRACSTB. OPEN_MODE. srvctl add database -d racstb -o /u01/app/oracle/product/10. PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -------------------. issue the following statement: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE.-------------------.16 Verify that RACSTB is created successfully SQL> select PROTECTION_MODE. To start real-time apply. 1. DATABASE_ROLE from v$database.

59 59 59 60 60 SEQUENCE# ---------60 61 61 61 62 62 62 63 63 63 64 SEQUENCE# ---------65 66 67 68 68 69 69 70 70 71 71 SEQUENCE# ---------72 72 73 73 74 74 NO NO YES NO NO APP --YES YES NO NO NO NO YES NO NO NO NO APP --NO NO NO YES NO YES NO YES NO YES NO APP --YES NO NO YES YES NO 50 rows selected. SQL> SQL> select sequence#. SEQUENCE# ---------58 59 60 61 62 63 64 65 66 68 APP --YES YES YES YES YES YES YES YES YES YES . applied from v$archived_log order by sequence#.

0 24-JUN-2012 02:01:26 apply lag +00 00:00:12 24-JUN-2012 02:01:26 estimated startup 165 24-JUN-2012 02:01:26 time standby has been o N 24-JUN-2012 02:01:26 pen transport lag +00 00:00:00 24-JUN-2012 02:01:26 SQL> day(2) to second(0) interval UNIT -----------------------------day(2) to second(1) interval day(2) to second(0) interval second 1. SWITCHOVER_STATUS .--------------------------------------apply finish time +00 00:00:00. Monitor the original standby until you have SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE. To perform a switchover on the primary issue SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN. Shutdown and mount the primary.17 Verify that standby database operates successfully.1. NAME VALUE TIME_COMPUTED -----------------.69 YES SEQUENCE# ---------70 71 72 73 74 75 76 77 APP --YES YES YES YES YES YES YES YES 19 rows selected. SQL> SQL> COLUMN NAME FORMAT A18 SQL> COLUMN VALUE FORMAT A16 SQL> COLUMN TIME_COMPUTED FORMAT A24 SQL> SELECT * FROM V$DATAGUARD_STATS. You can perform two switchovers and archive some redo logs and make sure that that logs get applied on the standby. The primary is already a new standby.

-------------------.-------------------.--------------MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE MOUNTED PHYSICAL STANDBY SQL> On the primary SQL> select PROTECTION_MODE. OPEN_MODE. DATABASE_ROLE from v$database.2 This concludes physical standby database creation. DATABASE_ROLE from v$database. Converting the physical standby to logical standby 1. PROTECTION_LEVEL.1.--------------MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> 1. SQL> Restart the original standby which becomes a new primary.---------. PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -------------------.-------------------TO PRIMARY On the original standby issue the following command to switch it to primary.---------. Perform few switches on the primary and monitor that redo get applied on the standby.1 Make sure that physical standby is operational .18 1. Database altered. Perform another switch and test to return back to the starting point and confirm that each database can operate in each role. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN. PROTECTION_LEVEL. You can monitor the role switches as follows On the standby SQL> select PROTECTION_MODE. PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -------------------. OPEN_MODE.2.

4 Build a dictionary by executing on the primary database the following command.3 alter system set LOG_ARCHIVE_DEST_3='LOCATION=+DATA/ VALID_FOR=(STANDBY_LOGFILES. 1.2. SQL> 1.1.2. 1. Database altered. SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY RACSTB. Database altered.2 Stop the redo apply on the physical standby by issuing the following command: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL. 1.2.6 Adjust init parameters on the logical standby and check the existing archive log destinations. alter system set LOG_ARCHIVE_DEST_STATE_3=ENABLE scope=both sid='*'. SQL> 1. Before that make sure that CLUSTER_DATABASE=false.2.5 Convert the physical standby database to logical standby by issuing the following statement on the standby database.7 Open the logical standby database . alter system set LOG_ARCHIVE_DEST_3='LOCATION=+DATA/ VALID_FOR=(STANDBY_LOGFILES.BUILD.STANDBY_ROLE) DB_UNIQUE_NAME=RACSTB' scope=both sid='*'. EXECUTE DBMS_LOGSTDBY.3 Prepare the primary database for role transition by setting an additional archive log destination that is to be used only if the primary is in a logical standby role to archive its own archive logs received from the primary in contrast to archiving logs in primary role from transactions against the primary.2.2. Add log_archive_dest_3 for the same purpose as explained in 1. alter system set LOG_ARCHIVE_DEST_STATE_3=ENABLE scope=both sid='*'.STANDBY_ROLE) DB_UNIQUE_NAME=RAC10G' scope=both sid='*'.2.

2. 1. SQL> select name.-------------------. OPEN_MODE. PROTECTION_LEVEL. On the primary you will see something like this select name.2.8 Start SQL apply SQL> SQL> SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE. file_name. SQL> 1. Database altered.-------------------. DATABASE_ROLE from v$database.-------------------. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. OPEN_MODE.PROTECTION_MODE. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. OPEN_MODE. PROTECTION_LEVEL.9 Verify that Logical Standby database is properly configured.------------------DATABASE_ROLE ---------------RACSTB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> Lets see how the SQL Apply progresses 07:42:34 07:42:40 07:42:50 07:43:03 SQL> set timing on SQL> set linesize 200 SQL> column FILE_NAME format a30 SQL> column FILE_NAME format a30 . select thread#.ALTER DATABASE OPEN RESETLOGS. DATABASE_ROLE from v$database. PROTECTION_LEVEL. sequence#.PROTECTION_MODE. DATABASE_ROLE from v$database.-------------------.------------------DATABASE_ROLE ---------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> On the Logical standby you will see something like this SQL> select name.PROTECTION_MODE. applied from dba_logstdby_log where applied!= 'YES'.

988.-----------------------------.-------1 298 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_298.7869 06821 1 304 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_1_seq_304.7868 87235 300 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_300.-------91899 1 301 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_301.979. THREAD# SEQUENCE# FILE_NAME APPLIED ---------.944.945.7869 58505 1 THREAD# SEQUENCE# FILE_NAME APPLIED ---------. sequence#.-----------------------------.---------.---------.7868 1 1 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.7868 87229 1 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.959. applied from dba_logstdby_log where applied!= 'YES'.7868 91891 303 +DATA/racstb/archivelog/2012_0 NO 1 1 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.---------.7869 58509 305 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_1_seq_305.-----------------------------.960.-------1 306 +DATA/racstb/archivelog/2012_0 NO .7868 87229 299 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_299.961.950.---------.7868 86239 297 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_297.7868 91899 302 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_302.---------.-----------------------------.948.-------1 295 +DATA/racstb/archivelog/2012_0 CURRENT 6_25/thread_1_seq_295.949.989.07:43:07 SQL> select thread#.-----------------------------.-------6_25/thread_1_seq_303. file_name.7868 86237 1 296 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_1_seq_296.

962.-----------------------------.7869 06833 2 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.-------91861 2 103 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_103.-----------------------------.963.7869 03277 107 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_107.973.991.-------2 100 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_100.943.7869 58523 .946.-----------------------------.990.-------6_25/thread_2_seq_105.993.7868 91899 102 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_102.978.958.972.7869 03265 2 106 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_106.-----------------------------.---------.6_26/thread_1_seq_306.7868 91955 104 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_104.---------.---------.7869 58985 2 98 +DATA/racstb/archivelog/2012_0 CURRENT 6_25/thread_2_seq_98.---------.964.7868 91955 105 +DATA/racstb/archivelog/2012_0 NO 2 2 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.-------2 108 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_2_seq_108.7868 2 2 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.78688 6227 99 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_99.7869 58537 2 109 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_2_seq_109.942.7868 86879 101 +DATA/racstb/archivelog/2012_0 NO 6_25/thread_2_seq_101.78688 6219 2 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.

988.7869 58505 306 +DATA/racstb/archivelog/2012_0 CURRENT 6_26/thread_1_seq_306. Elapsed: 00:00:00.-------58965 2 111 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_2_seq_111.-----------------------------. applied from dba_logstdby_log where applied!= 'YES'. file_name. THREAD# SEQUENCE# FILE_NAME APPLIED ---------.---------.---------.994.-----------------------------.992.991.-------1 304 +DATA/racstb/archivelog/2012_0 CURRENT 6_26/thread_1_seq_304.993. file_name.---------.7869 2 2 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.-------- 25 rows selected. applied from dba_logstdby_log where applied!= 'YES'.-----------------------------.7869 58965 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.7869 58537 109 +DATA/racstb/archivelog/2012_0 CURRENT 6_26/thread_2_seq_109.7869 58985 1 THREAD# SEQUENCE# FILE_NAME APPLIED ---------.7869 58509 1 305 +DATA/racstb/archivelog/2012_0 CURRENT 6_26/thread_1_seq_305. no rows selected .-----------------------------.---------. sequence#.989.990.7869 58995 7 rows selected.-------2 108 +DATA/racstb/archivelog/2012_0 CURRENT 6_26/thread_2_seq_108. sequence#.7869 58523 110 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_2_seq_110.2 110 +DATA/racstb/archivelog/2012_0 NO 6_26/thread_2_seq_110.992.01 07:50:22 SQL> select thread#. Elapsed: 00:00:00.01 07:43:16 SQL> 07:48:01 SQL> select thread#.

Elapsed: 00:00:01. a. On the primary database check the status. each database in the following stages performs adequately in its role and the primary always propagates changes to standby which in turn applies accordingly. Steps are to be executed in an order. I would suggest for you to perform two switchovers and make sure that Data guard Logical standby operates as expected. SQL> alter database prepare to switchover to logical standby.2. SWITCHOVER_STATUS -------------------SESSIONS ACTIVE SQL> Primary Role b. SQL> SQL> select switchover_status from v$database. . Prepare the target logical standby database for the switchover.81 07:51:21 SQL> The section from the alert log of the logical standby that corresponds to the period above is in the Appendix. Prepare the current primary database for the switchover.i.e. SQL> select switchover_status from v$database.10 For the upgrade strategy to be successful you need to make sure that the logical standby Data guard performs as expected . Logical Standby Role RAC10G RACSTB After 1st switchover RACSTB RAC10G After 2nd switchover RAC10G RACSTB Let’s briefly outline the procedure for switchover to the logical standby database. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> c. 1. Database altered.

SQL> select switchover_status from v$database. SQL> alter database commit to switchover to primary. Issue the following SQl statement on the standby and look for TO PRIMARY status. . SWITCHOVER_STATUS -------------------TO LOGICAL STANDBY SQL> e. Ensure all available redo has been applied to the target logical standby database that is about to become the new primary database. SQL> f.SQL>ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY. SQL> alter database commit to switchover to logical standby. Database altered. SQL> select switchover_status from v$database. Database altered. Switch the target logical standby database to the primary database role by issuing the following SQL statement on the logical standby. SQL> select switchover_status from v$database. Switch the primary database to the logical standby database role. SWITCHOVER_STATUS -------------------TO PRIMARY SQL> g. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> d. Look for TO LOGICAL STANDBY on the original primary by issuing the following statement on the primary database. Ensure the current primary database is ready for the future primary database’s redo stream.

DATABASE_ROLE from v$database. PROTECTION_LEVEL. DATABASE_ROLE from v$database.------------------DATABASE_ROLE ---------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> On the Logical standby you will see something like this SQL> select name.PROTECTION_MODE. PROTECTION_LEVEL. OPEN_MODE.------------------DATABASE_ROLE ---------------RACSTB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> On the Logical standby you will see something like this SQL> select name. Before: SQL> select name. OPEN_MODE.PROTECTION_MODE. .-------------------. DATABASE_ROLE from v$database. OPEN_MODE.-------------------.-------------------.-------------------. Verify that role transition took place start SQL apply and make sure that works. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------.PROTECTION_MODE.-------------------. PROTECTION_LEVEL. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. OPEN_MODE.PROTECTION_MODE.------------------DATABASE_ROLE ---------------RACSTB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> After: SQL> select name.-------------------.SQL> h. For illustration for the 1 st role transition you will have something similar. PROTECTION_LEVEL. DATABASE_ROLE from v$database.

-------------------.2 RAC10G is ONLINE running 10.2.3 and SQL apply is stopped RACSTB is LS 11.2.2 2 3 Upgrade to RACSTB 4 Conduct final application testing on the LS before switch production RAC10G is ONLINE running 10.2 and SQL Apply is running RACSTB is LS 10. I will upgrade the standby database once it is in stage 3 and will repeat the same upgrade procedure to the original primary database once it is in stage 6. Prepare and perform a near zero downtime upgrade In this section you will look at the steps required for: 1. Preparation for upgrade.------------------DATABASE_ROLE ---------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> i. Stage 1 Primary site RAC10G is ONLINE running 10.2 RAC10G is ONLINE running 10.-------------------.3 and SQL apply is started to sync with Production Database RAC10G RAC10G RAC10G RAC10G .NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. Actual upgrade.0.2 and SQL Apply is stopped RACSTB is LS is being upgraded to 11. 2. This concludes the Logical Switchover testing 1.11 This concludes Logical standby configuration. 2.2 Logical Standby Site RACSTB is LS 10.2.0. The upgrade process goes through the following conceptual stages illustrated in the table below as far as the logical standby database is concerned.

2.0. Note that in 10.0.3 and SQL Apply is running RACSTB RACSTB RAC10G 9. 5 (Switchover) THIS IS THE ONLY DOWNTIME (Depend on the switchover time) 6 Upgrade RAC10G 7.2.0.0.0. to set it up.0.2.1 Preparation for upgrade i.0.3 (archive log destination is enabled) RAC10G is ONLINE running 11.0. downtime involved.2.sql that comes with 11. shutdown immediate startup mount alter database flashback on.3 and SQL Apply is running RACSTB is LS 11.0.3 (archive log destination is deferred) RACSTB is ONLINE running 11.2. Adjust the RAC10G is ONLINE COMATIBLE parameter running 11.3 for both databases LS – Logical Standby RAC10G 2. Run utlu112i.3 ( SQL Apply is stopped) RAC10G is LS running 11. iv. Make sure that you install 11.2. 8 (Switchover) RACSTB is ONLINE running 11. Make sure that you have a flashback database feature enabled on both databases RAC10G and RACSTB. Run pre-upgrade information tool and make sure that any errors and warnings are addressed prior to actual upgrade (pay attention to invalid objects and obsolete or deprecated init parameters).2. Output from the run is in the Appendix.3.2.0.3 primary RAC10G is LS running 10.2.3 (archive log destination is deferred) RACSTB is ONLINE running 11.in the next stage.0. Make sure that you have 11. .3 cluster already running( installed and patched) ii.2.2 ( SQL Apply is stopped) RACSTB RAC10G is LS that is being upgraded to 11.2.3 and SQL apply is started to sync with primary RACSTB is LS 11. Run statistics collection.2 you need to bounce the instance.3 RDBMS binaries on each node of the cluster.0. iii.2.

0/db_3/dbs/orapwRACSTB1 .2 Performing an upgrade Stopping the logical standby database at the end of the previous sections marks the beginning of 3rd stage.0/db_3/dbs/initRACSTB1. Stop SQL apply on the standby database SQL> alter database stop logical standby apply. SCN DATABASE_INCARNATION# GUA STORAGE_SIZE TIME NAME ---------. SQL> ix.2. 2.2.0.2.v.2.-----------.--------------------------------------.2 Copy the password files cp /u01/app/oracle/product/10.2.02.ora 2. Restore point created.2.ora /u01/app/oracle/product/11. Set cluster_database=false on the logical standby database and shutdown the logical standby database. Make sure that you create a guaranteed restore point .0/db_1/dbs/orapwRACSTB1 /u01/app/oracle/product/11. on both RAC10G and RACSTB vi.2.27.2.0/db_1/dbs/initRACSTB1.2.--.--------------------. On both RAC10G and RACSTB you should have.0/db_3/dbs/initRACSTB2. SQL> SQL> column TIME format a40 SQL> column NAME format a30 SQL> select * from v$restore_point.3 location On node1 cp /u01/app/oracle/product/10.-----------------------------3629546 2 YES 8192000 25-JUN-12 12.requires cluster_database=false.ora /u01/app/oracle/product/11. SQL> create restore point pre_upgrade guarantee flashback database.000000000 AM PRE_UPGRADE SQL> vii. Stop 10g listener on standby database viii.1 Copy the init file to the new 11.0/db_1/dbs/initRACSTB2.ora On node2 cp /u01/app/oracle/product/10. 2.

ora'. consult the Oracle Database Upgrade Guide for DOC> troubleshooting recommendations.sql to DOC> recompile any invalid application objects.3 tnsnames.3 environment set and export ORACLE_SID=RACSTB1 2.ora file in 11.7 From the new $OH/rdbms/admin and invoke sqlplus / as sysdba. spool /tmp/catupgrd. and then run utlrp.0/db_3/dbs/orapwRACSTB2 2. SQL> SQL> SQL> SQL> DOC DOC>###################################################################### # DOC>###################################################################### # DOC> DOC> The above sql script is the final step of the upgrade.0.5 Edit the test parameter file so that you remove the *_dump_dest parameters and make sure that cluster_database parameter is set to false.2 $OH and included in 11.0/db_1/dbs/orapwRACSTB2 /u01/app/oracle/product/11.2. Database was shutdown earlier. Proceed further upon successful completion of catupgrd. Please DOC> review any errors in the spool log file.6 Make sure that tnsnames. 2.0.2. DOC> DOC> Next restart for normal operation.2.sql Wait for the upgrade to complete. SQL> shutdown immediate.2. ORACLE instance shut down.2. If there are any errors in DOC> the spool file.4 Invoke sqlplus and from sqlplus create a text parameter file. Database dismounted.3 $OH 2.sql.2.2.0.cp /u01/app/oracle/product/10.ora'. SQL> 2. Database closed. startup migrate pfile='/tmp/i1. It finishes with shutting down the database. Examine for errors and fix the problem if any.ora entries from 10. File created.2.ora' from SPFILE='+DATA/RACSTB/spfileRACSTB.3 Login as oracle user that has 11. SQL> create pfile='/tmp/i1.2.log @catupgrd. DOC> DOC> If the source database had an older time zone version prior to .2.

10 Set the parameter and restart the instance alter system set cluster_database=true scope=spfile sid='*'.sql recompiles an invalid database objects.sql.11 Modify listeners in 11. 2.2. DBMS_DST will upgrade DOC> TIMESTAMP WITH TIME ZONE data to use the latest time zone file shipped DOC> with Oracle.3 (SCAN Listener and Node Listeners) and reload the listeners.sql displays vital information for the status of the upgrade. Utlrp.SQL SQL> SQL> REM bug 12337546 . OLAP.0.sql @utlrp.2. startup @utlu112s.sql You can look for the output of the scripts in the Appendix. 2.64bit Production With the Partitioning. On Node 1. SQL> SQL> REM END OF CATUPGRD. Automatic Storage Management. Real Application Clusters.DOC> upgrade. then please run the DBMS_DST package. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11. utlu112s.ora' from pfile='/tmp/i1.2.0 .9 Startup the database and from sqlplus run the following commands and scripts. Catuppst.8 Create spfile create SPFILE='+DATA/RACSTB/spfileRACSTB.0.2. SQL> REM This forces user to start a new sqlplus session in order SQL> REM to connect to the upgraded db. Data Mining and Real Application Testing options [oracle@raclinux1 admin]$ SQL> 2.2.2. DOC> DOC>###################################################################### # DOC>###################################################################### # DOC># SQL> SQL> Rem Set errorlogging off SQL> SET ERRORLOGGING OFF. 2.ora'.3.sql performs some additional tasks.sql @catuppst.Exit current sqlplus session at end of catupgrd. [grid@raclinux1 admin]$ cat listener.ora .

0/db_3) (SID_NAME = RAC10G1) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.0/db_3) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/11.0/db_3) (SID_NAME = RACSTB1) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/11.2.2.0/db_3) (SID_NAME = RACSTB) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2. ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/11.2.ora # Generated by Oracle configuration tools.3/grid/network/admin/listener.0.0/db_3) (SID_NAME = RACSTB1) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.# listener.0/db_3) (SID_NAME = RAC10G1) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_HA = ON SID_LIST_LISTENER_SCAN1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/11.2.2.2.0/db_3) (SID_NAME = RACSTB) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER)) ) ADR_BASE_LISTENER = /u01/app/grid .0/db_3) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.ora Network Configuration File: /u01/app/11.2.

ora # Generated by Oracle configuration tools.0/db_3) (SID_NAME = RAC10G) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON LISTENER_SCAN1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1)) ) ADR_BASE_LISTENER_SCAN1 = /u01/app/grid [grid@raclinux1 admin]$ On Node 2.2.0/db_3) (SID_NAME = RAC10G) ) (SID_DESC = .ora # listener. [grid@raclinux2 admin]$ cat listener.2.0/db_3) (SID_NAME = RAC10G2) ) (SID_DESC = (GLOBAL_DBNAME = RAC10G_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.0/db_3) (SID_NAME = RACSTB2) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0.2.2.2. ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/11.ora Network Configuration File: /u01/app/11.0/db_3) (SID_NAME = RAC10G2) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/11.3/grid/network/admin/listener.0/db_3) (SID_NAME = RACSTB2) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_HA = ON SID_LIST_LISTENER_SCAN1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RAC10G) (ORACLE_HOME = /u01/app/oracle/product/11.

0.ora -r logical_standby srvctl add instance -d RACSTB -i RACSTB2 -n raclinux2 srvctl add instance -d RACSTB -i RACSTB1 -n raclinux1 [oracle@raclinux1 admin]$ srbctl config database -d RACSTB -bash: srbctl: command not found [oracle@raclinux1 admin]$ srvctl config database -d RACSTB Database unique name: RACSTB Database name: .12 Remove the database from CRS/GI from 10gR2 home and add the database to CRS/GI from 11.2.0/db_3 -c RAC -y AUTOMATIC -p +DATA/RACSTB/spfileRACSTB.3 $OH srvctl add database -d RACSTB -o /u01/app/oracle/product/11.2 Listeners 2.0/db_3) (SID_NAME = RACSTB) ) (SID_DESC = (GLOBAL_DBNAME = RACSTB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.0.2.(GLOBAL_DBNAME = RACSTB) (ORACLE_HOME = /u01/app/oracle/product/11.2.3 home From 10.2.2.2 $OH [oracle@raclinux1 dbs]$ srvctl remove database -d racstb -f [oracle@raclinux1 dbs]$ srvctl config database -d racstb PRKR-1001 : cluster database racstb does not exist PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: racstb [oracle@raclinux1 dbs]$ From 11.2.0/db_3) (SID_NAME = RACSTB) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER)) ) ADR_BASE_LISTENER = /u01/app/grid ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON LISTENER_SCAN1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1)) ) ADR_BASE_LISTENER_SCAN1 = /u01/app/grid [grid@raclinux2 admin]$ Reload 11.

---------.Oracle home: /u01/app/oracle/product/11.2.---------------MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> INST_NAME -----------------------------------------------------------raclinux1. DATABASE_ROLE from v$database.--------------MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> 2. srvctl start database -d SQL> select * from v$active_instances.gj.13 Restart the logical standby database.RACSTB2 Disk Groups: Mount point paths: Services: Type: RAC Database is administrator managed [oracle@raclinux1 admin]$ srvctl status database -d RACSTB Instance RACSTB1 is not running on node raclinux1 Instance RACSTB2 is not running on node raclinux2 [oracle@raclinux1 admin]$ 2. DATABASE_ROLE from v$database.2.com:RACSTB1 raclinux2. PROTECTION_LEVEL. OPEN_MODE.-------------------.-------------------.com:RACSTB2 On standby SQL> select PROTECTION_MODE.0/db_3 Oracle user: oracle Spfile: +DATA/RACSTB/spfileRACSTB.-------------------.2.ora Domain: Start options: open Stop options: immediate Database role: LOGICAL_STANDBY Management policy: AUTOMATIC Server pools: RACSTB Database instances: RACSTB1. OPEN_MODE. PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -------------------. SQL>shutdown immediate. PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -------------------.gj. PROTECTION_LEVEL. INST_NUMBER ----------1 2 SQL> On primary SQL> select PROTECTION_MODE.14 Start SQL apply on the Logical standby database RACSTB ( stage 4th) by issuing the following statement: .

5 instead of 11.2.17 Perform a switchover whereby RACSTB becomes a primary database and RAC10G becomes a logical standby.2.3 database as shown in the next step.3.3 and can still apply redo log changes generated by the primary database 10. SQL> alter database prepare to switchover to logical standby. 2.0.15 Perform a final testing on the logical standby database RACSTB before the switchover.2. Make sure that application can function with the upgraded database.2. applied from dba_logstdby_log where applied!= 'YES'. Database altered.0. no rows selected SQL> 2. 2. SQL> select thread#.2.0.2. Take a note that log_archive_dest_state_2 is set to defer in order to suspend sending redo logs to the new logical standby as 10.2. SQL> select switchover_status from v$database. Take a note that RACSTB is 11.2 cannot apply changes from 11. Issue a log switch on the primary and wait until all redo accumulated during the Logical Standby upgrade from the primary database get applied to the Logical standby database. file_name.alter database start logical standby apply immediate. . So far the production database has been RAC10G running 10. Database altered.16 Take a downtime for the application to point to the new production database RACSTB. On the primary database issue the following statements. sequence#.0. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> On the standby database issue the following statements.2. Steps are as described earlier and outlined below. SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY. Monitor SQL apply status on the standby database using this query on Logical standby database RACSTB and look at the return no rows as an indicator that the database are synchronized. Only if you are in a go situation perform the actual application switchover to 11.2.

----------------------------log_archive_dest_2 string SERVICE=RAC10G LGWR ASYNC VALI D_FOR=(ONLINE_LOGFILES. SWITCHOVER_STATUS -------------------TO LOGICAL STANDBY SQL> On the primary issue the following sql statement. SQL> On the logical standby issue the following SQL> select switchover_status from v$database.SQL> select switchover_status from v$database.PRIMARY _ROLE) DB_UNIQUE_NAME=RAC10G log_archive_dest_20 log_archive_dest_21 log_archive_dest_22 log_archive_dest_23 log_archive_dest_24 log_archive_dest_25 log_archive_dest_26 log_archive_dest_27 NAME string string string string string string string string TYPE VALUE . SWITCHOVER_STATUS -------------------TO PRIMARY SQL> SQL> show parameter log_archive_dest_2 NAME TYPE VALUE -----------------------------------. Database altered. SQL> alter database commit to switchover to logical standby.----------. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> Check what you have on the primary SQL> select switchover_status from v$database.

-------------------.3 SQL> select name.----------. SWITCHOVER_STATUS -------------------TO PRIMARY SQL> On the standby SQL> alter system set log_archive_dest_state_2=defer scope=both sid='*'. Database altered.-------------------DATABASE_ROLE ---------------RACSTB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY . SQL> SQL> alter database commit to switchover to primary.2.-----------------------------------.0.----------------------------log_archive_dest_28 string log_archive_dest_29 string SQL> show parameter log_archive_dest_2_state SQL> show parameter log_archive_dest_state_ 2 NAME ---------------------------------------log_archive_dest_state_2 log_archive_dest_state_20 log_archive_dest_state_21 log_archive_dest_state_22 log_archive_dest_state_23 log_archive_dest_state_24 log_archive_dest_state_25 log_archive_dest_state_26 log_archive_dest_state_27 log_archive_dest_state_28 log_archive_dest_state_29 SQL> TYPE VALUE ----------. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------. OPEN_MODE. SQL> Now The Primary is 11. PROTECTION_LEVEL.------------------------string string string string string string string string string string string ENABLE enable enable enable enable enable enable enable enable enable enable SQL> select switchover_status from v$database. System altered. DATABASE_ROLE from v$database.-------------------.PROTECTION_MODE.

0. OPEN_MODE.3. DATABASE_ROLE from v$database.gj.2.5.3.------------------.0 .Production NLSRTL Version 11.3.gj.com:RACSTB1 raclinux2.SQL> select * from v$active_instances.0 . BANNER ------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.---------.---------------.0.2.2. PROTECTION_LEVEL.-----------------.2.0.5 SQL> select name.Production CORE 11. INSTANCE_NUMBER INSTANCE_NAME HOST_NAME VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT LOGINS SHU --------------.-----------------------.-----------.0.gj. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -----------------------------.0.com:RACSTB2 SQL> select * from v$version.3.com 10.0 25-JUN-12 OPEN NO 1 STARTED ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO .--1 RAC10G1 raclinux1.2.--DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO ----------------.---------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> SQL> select * from v$instance.------.3.0 .2.--------------------------------------------------------------.0 .64bit Production PL/SQL Release 11.---------.0.-------------------.0 Production TNS for Linux: Version 11.PROTECTION_MODE.Production SQL> The new Logical standby is 10. INST_NUMBER ----------1 2 INST_NAME -----------------------------------------------------------raclinux1.-------.0.--.--------.----------------.2.

2.0/db_3/dbs/initRAC10G1.2.2. DATABASE_ROLE from v$database.---------.ora and Password files on each node On node1 cp /u01/app/oracle/product/10. 2.2.19 Upgrade the RAC10G new logical standby database.0.18 Start the application to use RACSTB as a production database.ora On node2 cp /u01/app/oracle/product/10.2. OPEN_MODE.0/db_1/dbs/orapwRAC10G1 /u01/app/oracle/product/11. Make sure that password files are in the new 11.0/db_1/dbs/initRAC10G2.SQL> show parameter cluster NAME ------------------------------------------------------cluster_database cluster_database_instances cluster_interconnects TYPE VALUE ----------. So below are the steps.3 $OH Copy Init.0/db_3/dbs/initRAC10G2.ora /u01/app/oracle/product/11.0/db_1/dbs/initRAC10G1. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE -----------------------------.0/db_3/dbs/orapwRAC10G1 On node 2 .ora parameter file is in 11.PROTECTION_MODE.2. Refer to RACSTB upgrade for more detail explanation.2.2.0.2. This procedure is essentially the same as upgrading RACSTB.or a /u01/app/oracle/product/11.---------boolean integer string FALSE 1 SQL> select name.---------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> 2.-------------------.ora On node 1 cp /u01/app/oracle/product/10.2.3 $OH. Make sure that initRAC10G. PROTECTION_LEVEL.------------------.

0/db_1/dbs/orapwRAC10G2 /u01/app/oracle/product/11. Invoke from 11. In case of error(s) troubleshoot and start from the catupgrd.ora' from SPFILE='+DATADG/RAC10G/spfileRAC10G.2. SQL> @/u01/app/oracle/product/11.2.sql startup create SPFILE='+DATADG/RAC10G/spfileRAC10G. recommendations or suggestion.ora'. startup pfile=’/tmp/i2. warnings.ora' from pfile='/tmp/i2.sql @catuppst.sql @utlrp. File created. Set cluster_database=true and restart the database .ora'.ora' [oracle@raclinux1 dbs]$ Run the following script to identify any issues for upgrading the database.ora SPFILE='+DATADG/RAC10G/spfileRAC10G.cp /u01/app/oracle/product/10.0.sql Pay attention to any errors.sql script.2. Perform a clean shutdown of RAC10G logical standby database. Make sure that address any errors.3 $OH sqlplus / as sysdba and execute the following statements. The detailed output is in the Appendix. SQL> Remove core_dump_dest and background_dump_dest user_dump_dest parameters from the text parameter file and make sure that cluster_database is false.0/db_3/dbs/orapwRAC10G2 Prepare init file [oracle@raclinux1 dbs]$ cat initRAC10G1. @utlu112s.2. @catupgrd.ora’ migrate. Make sure that you change any obsolete or deprecated parameters and recompile invalid errors.0/db_3/rdbms/admin/utlu112i.sql Create a text parameter file SQL> create pfile='/tmp/i2.

0 rows returned by the query on the logical standby.2. alter system set log_archive_dest_state_2=enable scope=both sid='*'.2. Increase the processes init parameter in order to avoid ORA16081: insufficient number of processes for APPLY error on the RAc10G logical standby. From OLD $OH srvctl remove database -d rac10g -f From NEW $OH srvctl add database -d RAC10G -o /u01/app/oracle/product/11. . alter database start logical standby apply immediate. Issue on the primary database. applied from dba_logstdby_log where applied!= 'YES'. select thread#. On the LOGICAL STANDBY start SQL apply by executing the SQL statement.2.2. sequence#. Check until all redo logs are applied on the logical standby database that is. alter system set processes=400 scope=spfile sid='*'. On the primary : SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE. 2.Remove old configuration and register the database with CRS/GI.ora srvctl add instance -d RAC10G -i RAC10G2 -n raclinux2 srvctl add instance -d RAC10G -i RAC10G1 -n raclinux1 2.21 Perform a switchover to return RAC10G as a primary database and RACSTB as a logical standby database.0/db_3 -c RAC -y AUTOMATIC -p +DATADG/RAC10G/spfileRAC10G.3. file_name. On the new primary enable the archiving destination that was deliberately set to defer state.0.20 Synchronize the archive logs after the RAC10G logical standby database has been upgraded to 11.

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> Wait until on primary you see SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE. Database altered. SWITCHOVER_STATUS -------------------TO LOGICAL STANDBY SQL> On the primary issue ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY.SWITCHOVER_STATUS -------------------TO STANDBY SQL> SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO LOGICAL STANDBY. Database altered. Wait until You get on the standby the following status SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE. SWITCHOVER_STATUS -------------------PREPARING SWITCHOVER SQL> On standby execute : SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY. SWITCHOVER_STATUS -------------------TO PRIMARY SQL> . SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE.

PROTECTION_LEVEL.-------------------.gj.-------------------DATABASE_ROLE ---------------RACSTB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE LOGICAL STANDBY SQL> select * from v$active_instances.gj.Issue on the standby ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY. INST_NUMBER ----------1 2 SQL> INST_NAME -----------------------------------------------------------raclinux1. .-------------------.com:RAC10G2 On Logical standby SQL> select name.-------------------.--------------RAC10G MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE PRIMARY SQL> select * from v$active_instances. DATABASE_ROLE from v$database. INST_NUMBER ----------1 2 SQL> INST_NAME -----------------------------------------------------------raclinux1. Verify switchover On primary SQL> select name. PROTECTION_LEVEL.PROTECTION_MODE.com:RACSTB2 Start SQL apply on the Logical Standby SQL> alter database start logical standby apply immediate. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE --------.PROTECTION_MODE.com:RACSTB1 raclinux2.-------------------. OPEN_MODE. DATABASE_ROLE from v$database. OPEN_MODE.com:RAC10G1 raclinux2.gj.gj.-------------------. NAME PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE DATABASE_ROLE --------.

1.2.__db_cache_size=394264576 RACSTB2. The article was written for migrating from Oracle 10.0.3 using a logical standby database for a near zero downtime.2. References: 1.__java_pool_size=4194304 .5 to 11.__db_cache_size=398458880 RACSTB1.2.0.2. Upgrade & Migrate on Multi-Terabyte Mission Critical RAC with Near Zero Downtime : Jane Brown Senior Database Administrator 2.X or 11. Due to the fact that Oracle has not changed the way user manages Data Guard physical standby and Data Guard logical database from 10.2. Summary In the article you looked at a way to use a logical standby database for a near zero downtime upgrade from Oracle RAC 10.X or 11.ora RACSTB1.2.0.2 in the way of interface and commands and SQL statements.5 to 11.3 but can be used for any migration from Oracle 10.22 This concludes the upgrade from 10.0.X+1.0.2) 2 B14239-05 3.2.5 to Oracle RAC 11.2) E25608-03 Appendix [oracle@raclinux1 admin]$ cat /tmp/initRACSTB.0. SQL> 2. Pay attention to the data type limitations which are described in the Oracle official documentation listed in the Reference section to consider if the approach described in the article is a fit for you.2 to 11.2.2. Oracle® Data Guard Concepts and Administration 11g Release 2 (11.0.0. The article described a way to create a physical standby database and convert it to a logical standby database.0.Database altered.2.3.0.X to Oracle 11. Oracle® Data Guard Concepts and Administration 10g Release 2 (10.

RACSTB2.__java_pool_size=4194304 RACSTB1.__large_pool_size=4194304 RACSTB2.__large_pool_size=4194304 RACSTB1.__shared_pool_size=180355072 RACSTB2.__shared_pool_size=176160768 RACSTB1.__streams_pool_size=0 RACSTB2.__streams_pool_size=0 *.audit_file_dest='/u01/app/oracle/admin/RACSTB/adump' *.background_dump_dest='/u01/app/oracle/admin/RACSTB/bdump' *.cluster_database_instances=2 *.cluster_database=true *.compatible='10.2.0.5.0' *.core_dump_dest='/u01/app/oracle/admin/RACSTB/cdump' *.db_block_size=8192 *.db_create_file_dest='+DATA' *.db_create_online_log_dest_1='+DATA' *.db_domain='' *.db_file_multiblock_read_count=16 *.db_file_name_convert='+DATADG/','+DATA/' *.db_name='RAC10G' *.db_unique_name='RACSTB' *.db_recovery_file_dest='+DATA' *.db_recovery_file_dest_size=10737418240 *.dispatchers='(PROTOCOL=TCP) (SERVICE=RACSTBXDB)' *.fal_client='RACSTB' *.fal_server='RAC10G' RACSTB2.instance_number=2 RACSTB1.instance_number=1 *.job_queue_processes=10 *.log_archive_config='DG_CONFIG=(RAC10G,RACSTB)' *.log_archive_dest_1='LOCATION=+DATA/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=RACSTB'

*.LOG_ARCHIVE_DEST_2='SERVICE=RACSTB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=RAC10G' *.log_archive_dest_state_1='ENABLE' *.log_archive_dest_state_2='ENABLE' *.log_archive_format='%t_%s_%r.dbf' *.log_archive_max_processes=30 *.log_file_name_convert='+DATADG/','+DATA/' *.open_cursors=300 *.pga_aggregate_target=196083712 *.processes=150 *.remote_listener='LISTENERS_RACSTB' *.remote_login_passwordfile='exclusive' *.sga_target=590348288 *.standby_file_management='AUTO' RACSTB2.thread=2 RACSTB1.thread=1 *.undo_management='AUTO' RACSTB2.undo_tablespace='UNDOTBS2' RACSTB1.undo_tablespace='UNDOTBS1' *.user_dump_dest='/u01/app/oracle/admin/RACSTB/udump' [oracle@raclinux1 admin]$ RMAN> run { allocate channel tst type disk; allocate channel tst1 type disk; allocate auxiliary channel tststby type disk; duplicate target database for standby DORECOVER;

} Starting backup at 23-JUN-12 using channel ORA_DISK_2 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset including standby control file in backupset channel ORA_DISK_1: starting piece 1 at 23-JUN-12 channel ORA_DISK_1: finished piece 1 at 23-JUN-12 piece handle=+DATADG/rac10g/backupset/2012_06_23/ncnnf0_ tag20120623t233025_0.554.786756627 tag=TAG20120623T233025 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05 Finished backup at 23-JUN-12

RMAN> 2> 3> 4> 5> 6>

released channel: ORA_DISK_1 released channel: ORA_DISK_2 allocated channel: tst channel tst: sid=148 instance=RAC10G1 devtype=DISK

allocated channel: tst1 channel tst1: sid=147 instance=RAC10G1 devtype=DISK

allocated channel: tststby channel tststby: sid=150 instance=RACSTB1 devtype=DISK

Starting Duplicate Db at 23-JUN-12

contents of Memory Script: { set until scn 3422282;

restore clone standby controlfile; sql clone 'alter database mount standby database'; } executing Memory Script

392.executing command: SET until clause Starting restore at 23-JUN-12 channel tststby: starting datafile backupset restore channel tststby: restoring control file channel tststby: reading from backup piece +DATADG/rac10g/backupset/2012_06_23/ncnnf0_tag20120623t232526_0. set newname for datafile "+data".786756329 tag=TAG20120623T232526 channel tststby: restore complete.786756329 channel tststby: restored backup piece 1 piece handle=+DATADG/rac10g/backupset/2012_06_23/ncnnf0_tag20120623t232526_0.786756729 Finished restore at 23-JUN-12 sql statement: alter database mount standby database WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names. 1 to set newname for tempfile "+data". contents of Memory Script: { set until scn 3422282.539. set newname for datafile "+data".539. elapsed time: 00:00:09 output filename=+DATA/racstb/controlfile/current. 4 to 3 to 2 to 1 to . names changed to diskgroup only. switch clone tempfile all. set newname for datafile "+data". set newname for datafile "+data".

set newname for datafile "+data". } executing Memory Script 5 to 6 to executing command: SET until clause executing command: SET NEWNAME renamed temporary file 1 to +data in control file executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 23-JUN-12 channel tststby: starting datafile backupset restore . restore check readonly clone database . set newname for datafile "+data".

786756415 channel tststby: restored backup piece 1 piece handle=+DATADG/rac10g/backupset/2012_06_23/nnndf0_tag20120623t232654_0.channel tststby: specifying datafile(s) to restore from backup set restoring datafile 00001 to +DATA restoring datafile 00002 to +DATA restoring datafile 00004 to +DATA channel tststby: reading from backup piece +DATADG/rac10g/backupset/2012_06_23/nnndf0_tag20120623t232654_0. } executing Memory Script datafile 1 switched to datafile copy input datafile copy recid=14 stamp=786756865 filename=+DATA/racstb/datafile/system.786756415 tag=TAG20120623T232654 channel tststby: restore complete.546.786756415 channel tststby: restored backup piece 1 piece handle=+DATADG/rac10g/backupset/2012_06_23/nnndf0_tag20120623t232654_0.786756745 datafile 2 switched to datafile copy .786756415 tag=TAG20120623T232654 channel tststby: restore complete.546.545.545. elapsed time: 00:01:05 channel tststby: starting datafile backupset restore channel tststby: specifying datafile(s) to restore from backup set restoring datafile 00003 to +DATA restoring datafile 00005 to +DATA restoring datafile 00006 to +DATA channel tststby: reading from backup piece +DATADG/rac10g/backupset/2012_06_23/nnndf0_tag20120623t232654_0. elapsed time: 00:00:56 Finished restore at 23-JUN-12 contents of Memory Script: { switch clone datafile all.390.

786756811 datafile 4 switched to datafile copy input datafile copy recid=17 stamp=786756866 filename=+DATA/racstb/datafile/users. } executing Memory Script 3422282.786756747 datafile 5 switched to datafile copy input datafile copy recid=18 stamp=786756866 filename=+DATA/racstb/datafile/example.385.540.387.786756811 datafile 6 switched to datafile copy input datafile copy recid=19 stamp=786756866 filename=+DATA/racstb/datafile/undotbs2.388.input datafile copy recid=15 stamp=786756865 filename=+DATA/racstb/datafile/undotbs1.389. executing command: SET until clause Starting recover at 23-JUN-12 starting media recovery archive log thread 1 sequence 67 is already on disk as file +DATADG/rac10g/archivelog/2012_06_23/thread_1_seq_67.386.786756747 datafile 3 switched to datafile copy input datafile copy recid=16 stamp=786756865 filename=+DATA/racstb/datafile/sysaux.786756371 .786756811 contents of Memory Script: { set until scn recover standby clone database delete archivelog .

Transaction Chunk Size = 201 LOGMINER: Memory Size = 30M.540.549.541.00553dd6) LOGMINER: session_flag: 0x1 LOGMINER: Read buffers: 16 Tue Jun 26 07:45:32 2012 .550.00000000) LOGMINER: EndScn: 0 (0x0000. Checkpoint interval = 150M LOGMINER: SpillScn 5587203.550.786756557 archive log filename=+DATADG/rac10g/archivelog/2012_06_23/thread_1_seq_67.786756373 thread=2 sequence=0 archive log filename=+DATADG/rac10g/archivelog/2012_06_23/thread_ 1_seq_68.786756373 archive log thread 2 sequence 57 is already on disk as file +DATADG/rac10g/archivelog/2012_06_23/thread_2_seq_57.786756557 thread=2 sequence=57 media recovery complete.541.549.archive log thread 1 sequence 68 is already on disk as file +DATADG/rac10g/archivelog/2012_06_23/thread_1_seq_68.786756559 archive log thread 2 sequence 56 is already on disk as file +DATADG/rac10g/archivelog/2012_06_23/thread_2_seq_56.786756371 thread=1 sequence=0 archive log filename=+DATADG/rac10g/archivelog/2012_06_23/thread_2_seq_56. ResetLogScn 388265 LOGMINER: summary for session# = 22 LOGMINER: StartScn: 0 (0x0000. elapsed time: 00:00:03 Finished recover at 23-JUN-12 Finished Duplicate Db at 23-JUN-12 released channel: tst released channel: tst1 released channel: tststby RMAN> Alert log from the Logical standby LOGMINER: Parameters summary for session# = 22 LOGMINER: Number of processes = 3.00000000) LOGMINER: HighConsumedScn: 5586390 (0x0000.786756559 thread=1 sequence=68 archive log filename=+DATADG/rac10g/archivelog/2012_06_23/thread_2_seq_57.

and does not reflect the amount of space available in the underlying filesystem or ASM diskgroup.786886237 Tue Jun 26 07:46:35 2012 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 296. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_99.944. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_98.786886239 Tue Jun 26 07:46:37 2012 LOGSTDBY Analyzer process AS00 started with serv er id=0 pid=101 OS id=9826 Tue Jun 26 07:46:38 2012 LOGSTDBY Apply process AS04 started with server id=4 pid=105 OS id=9836 Tue Jun 26 07:46:38 2012 LOGSTDBY Apply process AS03 started with server id=3 pid=104 OS id=9834 Tue Jun 26 07:46:38 2012 LOGSTDBY Apply process AS01 started with server id=1 pid=102 OS id=9830 .786886227 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 99.786886219 LOGMINER: End mining logfile for session 22 thread 1 sequence 296. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_98.786886237 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 98. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_296.945. preparer MS02 pid=100 OS id=9691 sid=131 started Tue Jun 26 07:46:00 2012 db_recovery_file_dest_size of 10240 MB is 7.942. Tue Jun 26 07:46:24 2012 LOGMINER: Turning ON Log Auto Delete LOGMINER: Begin mining logfile for session 22 thread 1 sequence 295. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_295.945. This is a user-specified limit on the amount of space that will be used by this database for recovery-related files.943. builder MS01 pid=99 OS id=9689 sid=129 started Tue Jun 26 07:45:33 2012 LOGMINER: session#=22 (Logical_Standby$3).26% used. reader MS00 pid=98 OS id=9687 sid=127 started Tue Jun 26 07:45:33 2012 LOGMINER: session#=22 (Logical_Standby$3). +DATA/racstb/archivelog/2012_06_25/thread_1_seq_295.944.LOGMINER: session#=22 (Logical_Standby$3).786886239 LOGMINER: End mining logfile for session 22 thread 2 sequence 98.943.786886227 LOGMINER: End mining logfile for session 22 thread 1 sequence 295. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_296.

958.942.786886879 Tue Jun 26 07:47:55 2012 LOGMINER: thread 1 enabled Tue Jun 26 07:47:58 2012 LOGMINER: Turning ON Log Auto Delete LOGMINER: Begin mining logfile for session 22 thread 1 sequence 297.950.786886219 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 100.950.946.Tue Jun 26 07:46:38 2012 LOGSTDBY Apply process AS05 started with server id=5 pid=106 OS id=9838 Tue Jun 26 07:46:38 2012 LOGSTDBY Apply process AS02 started with server id=2 pid=103 OS id=9832 Tue Jun 26 07:47:03 2012 LOGMINER: thread 1 disabled Tue Jun 26 07:47:05 2012 LOGMINER: End mining logfile for session 22 thread 2 sequence 99. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_102. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_297. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_298. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_299. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_101.962.961. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_298. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_299.962. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_101.786887229 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 299.786887229 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 100.786891899 LOGMINER: End mining logfile for session 22 thread 1 sequence 299. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_297.786891899 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 102.786891861 .786891899 LOGMINER: End mining logfile for session 22 thread 2 sequence 101.786887229 LOGMINER: End mining logfile for session 22 thread 1 sequence 298. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_100.948.949. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_100.786887235 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 300.786886879 LOGMINER: End mining logfile for session 22 thread 1 sequence 297.786887229 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 298.786886879 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 101.949. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_100.946. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_99.946.786887235 LOGMINER: End mining logfile for session 22 thread 2 sequence 100.948. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_300.

973.786891955 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 105.960. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_103. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_107. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_302.978.786906821 Tue Jun 26 07:49:07 2012 LOGMINER: End mining logfile for session 22 thread 2 sequence 105.786891891 LOGMINER: thread 2 enabled LOGMINER: Turning ON Log Auto Delete Tue Jun 26 07:48:11 2012 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 302.786891955 LOGMINER: End mining logfile for session 22 thread 2 sequence 104. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_105. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_102. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_303. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_301.979.786891955 LOGMINER: Begin mining logfile for session 22 thre ad 2 sequence 104.786891955 LOGMINER: End mining logfile for session 22 thread 2 sequence 103.786903277 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 107. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_106. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_302. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_300. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_302.963.786906833 .959. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_301.959.786891899 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 302.786906833 LOGMINER: End mining logfile for session 22 thread 2 sequence 107.972. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_106.786903277 LOGMINER: End mining logfile for session 22 thread 2 sequence 106.786891899 LOGMINER: End mining logfile for session 22 thread 2 sequence 102.960.786891899 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 301.LOGMINER: End mining logfile for session 22 thread 1 sequence 300.786903265 LOGMINER: End mining logfile for session 22 thread 1 sequence 302.961. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_105. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_104.786891891 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 103.964. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_107.972.959.958.964.973.978.786891891 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 303. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_104.786903265 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 106.786891861 LOGMINER: thread 2 disabled LOGMINER: End mining logfile for session 22 thread 1 sequence 301. +DATA/racstb/archivelog/2012_06_25/thread_2_seq_103.963.

988. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_108.989. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_108.786958505 LOGMINER: End mining logfile for session 22 thread 1 sequence 305.786958965 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 111.990. +DATA/racstb/archivelog/2012_06_25/thread_1_seq_303. +DATA/racstb/onlinelog/group_9. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_109.786958985 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 110.992.994.786958537 LOGMINER: End mining logfile for session 22 thread 1 sequence 303. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_109.991. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_111.786958995 LOGMINER: End mining logfile for session 22 thread 2 sequence 111. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_110. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_305.786958965 LOGMINER: End mining logfile for session 22 thread 2 sequence 110. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_306.786958523 Tue Jun 26 07:49:47 2012 LOGMINER: thread 2 disabled LOGMINER: End mining logfile for session 22 thread 1 sequence 304.786958505 Tue Jun 26 07:49:57 2012 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 306.LOGMINER: Begin mining logfile for session 22 thread 2 sequence 108.991.786786571 . +DATA/racstb/archivelog/2012_06_26/thread_2_seq_110.989.992. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_305.360. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_304.988. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_111.786958537 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 109.993.994.990.786906821 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 304.786958523 LOGMINER: End mining logfile for session 22 thread 2 sequence 109.786958509 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 305.786958509 Tue Jun 26 07:49:44 2012 LOGMINER: End mining logfile for session 22 thread 2 sequence 108. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_304. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_306.786958995 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 112.993.979.786958985 Tue Jun 26 07:50:21 2012 LOGMINER: thread 2 enabled Tue Jun 26 07:50:24 2012 LOGMINER: Turning ON Log Auto Delete LOGMINER: Begin mining logfile for session 22 thread 1 sequence 306.

786958985 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 307.997.997.786959743] to LogMiner session id [22] LOGMINER: Alternate logfile found.786759599 Tue Jun 26 07:55:46 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_2_seq_112.786759591 LOGMINER: End mining logfile for session 22 thread 2 sequence 113. +DATA/racstb/archivelog/2012_06_26/thread_1_seq_306. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_112. +DATA/racstb/onlinelog/group_5.993.361.786759599 Tue Jun 26 07:58:57 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_1_seq_308.998.786959935] to LogMiner session id [22] LOGMINER: Begin mining logfile for session 22 thread 1 sequence 309.359. +DATA/racstb/onlinelog/group_8. +DATA/racstb/onlinelog/group_6.997. +DATA/racstb/onlinelog/group_5.786959743] to LogMiner session id [22] Tue Jun 26 07:55:47 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_1_seq_307.786759591 Tue Jun 26 07:55:44 2012 RFS[1]: Selected log 6 for thread 1 sequence 308 dbid 1732399791 branch 757480050 Tue Jun 26 07:55:45 2012 RFS[7]: Selected log 8 for thread 2 sequence 113 dbid 1732399791 branch 757480050 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 308.362.359.361.786959743 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 113.786786567 .361. +DATA/racstb/onlinelog/group_8.786786567 Tue Jun 26 07:58:56 2012 RFS[1]: Selected log 5 for thread 1 sequence 309 dbid 1732399791 branch 757480050 Tue Jun 26 07:58:57 2012 LOGMINER: End mining logfile for session 22 thread 1 sequence 308. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_112. Transition to mining archived logfile for session 22 thread 2 sequence 112.786959743 LOGMINER: End mining logfile for session 22 thread 2 sequence 112.LOGMINER: End mining logfile for session 22 thread 1 sequence 306. +DATA/racstb/onlinelog/group_6. +DATA/racstb/onlinelog/group_5.362.786759591 Tue Jun 26 07:55:41 2012 LOGMINER: End mining logfile for session 22 thread 1 sequence 307.996.

786759591 Tue Jun 26 08:02:08 2012 RFS[7]: Selected log 8 for thread 2 sequence 115 dbid 1732399791 branch 757480050 Tue Jun 26 08:02:08 2012 RFS[1]: Selected log 6 for thread 1 sequence 310 dbid 1732399791 branch 757480050 Tue Jun 26 08:02:08 2012 Archived Log entry 290 added for thread 1 sequence 191 ID 0xcf142e5f dest 1: Tue Jun 26 08:02:14 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_2_seq_114.362. +DATA/racstb/onlinelog/group_5. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_114. +DATA/racstb/onlinelog/group_6.786960127 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 115. Transition to mining archived logfile for session 22 thread 2 sequence 114.786959941] to LogMiner session id [22] Tue Jun 26 08:01:40 2012 ALTER SYSTEM ARCHIVE LOG Tue Jun 26 08:01:43 2012 Thread 1 advanced to log sequence 192 (LGWR switch) Current log# 2 seq# 192 mem# 0: +DATA/racstb/onlinelog/group_2.999.1003.786786571 Tue Jun 26 07:59:03 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_2_seq_113. +DATA/racstb/archivelog/2012_06_26/thread_2_seq_114.786960127] to LogMiner session id [22] Tue Jun 26 08:02:14 2012 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 310.359.361.786786567 Tue Jun 26 08:02:50 2012 ALTER SYSTEM ARCHIVE LOG .786960127 LOGMINER: End mining logfile for session 22 thread 2 sequence 114.Tue Jun 26 07:59:01 2012 RFS[7]: Selected log 9 for thread 2 sequence 114 dbid 173239 9791 branch 757480050 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 114.786759599 LOGMINER: Alternate logfile found. +DATA/racstb/onlinelog/group_8.1003.786780229 Tue Jun 26 08:01:52 2012 LOGMINER: End mining logfile for session 22 thread 1 sequence 309.379. +DATA/racstb/onlinelog/group_9.1003.360.

786759599 Tue Jun 26 08:03:12 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_1_seq_310.362.786780229 Thread 1 advanced to log sequence 193 (LGWR switch) Current log# 1 seq# 193 mem# 0: +DATA/racstb/onlinelog/group_1.786786571 Tue Jun 26 08:05:35 2012 .360. +DATA/racstb/onlinelog/group_5.1006. +DATA/racstb/onlinelog/group_6. sequence 193 Checkpoint not complete Current log# 2 seq# 192 mem# 0: +DATA/racstb/onlinelog/group_2.786960189] to LogMiner session id [22] Tue Jun 26 08:03:12 2012 RFS[1]: Selected log 5 for thread 1 sequence 311 dbid 1732399791 branch 757480050 Tue Jun 26 08:03:14 2012 RFS[7]: Selected log 9 for thread 2 sequence 116 dbid 1732399791 branch 757480050 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 311.361.1007.786786571 Tue Jun 26 08:05:34 2012 RFS[7]: Selected log 8 for thread 2 sequence 117 dbid 1732399791 branch 757480050 Tue Jun 26 08:05:35 2012 LOGMINER: End mining logfile for session 22 thread 2 sequence 116. +DATA/racstb/onlinelog/group_9.Tue Jun 26 08:02:54 2012 Thread 1 cannot allocate new log.359.786960195] to LogMiner session id [22] LOGMINER: End mining logfile for session 22 thread 2 sequence 115.786780221 Tue Jun 26 08:03:07 2012 Archived Log entry 292 added for thread 1 sequence 192 ID 0xcf142e5f dest 1: Tue Jun 26 08:03:08 2012 LOGMINER: End mining logfile for session 22 thread 1 sequence 310.786759591 Tue Jun 26 08:03:17 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_2_seq_115.380.360. +DATA/racstb/onlinelog/group_8.379.786786567 LOGMINER: Begin mining logfile for session 22 thread 2 sequence 116. +DATA/racstb/onlinelog/group_9.

5. +DATA/racstb/onlinelog/group_6.1009.5.361. minimum required size: 695 MB . ********************************************************************** Tablespaces: [make adjustments in the current environment] ********************************************************************** --> SYSTEM tablespace is adequate for the upgrade.362..0.786960333] to LogMiner session id [22] LOGMINER: Begin mining logfile for session 22 thread 2 sequence 117.786786567 LOGMINER: End mining logfile for session 22 thread 1 sequence 311.786960337] to LogMiner session id [22] [grid@raclinux1 trace]$ SQL> @/tmp/utlu112i.. +DATA/racstb/onlinelog/group_8.0 Build: 001 .2.0 10.2.3. .0.786759591 Tue Jun 26 08:05:38 2012 RFS[1]: Selected log 6 for thread 1 sequence 312 dbid 1732399791 branch 757480050 LOGMINER: Begin mining logfile for session 22 thread 1 sequence 312.786759599 Tue Jun 26 08:05:40 2012 RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_1_seq_311.sql Oracle Database 11.. +DATA/racstb/onlinelog/group_5.2 Pre-Upgrade Information Tool 06-24-2012 13:54:49 Script Version: 11.0.1008. ********************************************************************** Database: ********************************************************************** --> name: --> version: --> compatible: --> blocksize: --> platform: RACSTB 10.RFS LogMiner: Registered logfile [+DATA/racstb/archivelog/2012_06_26/thread_2_seq_116.0 8192 Linux x86 64-bit --> timezone file: V4 .2.359.

. ...No renamed parameters found...ora or spfile] ********************************************************************** -.2 init. --> If Target Oracle is 64-Bit.ora or spfile] Note: Pre-upgrade tool was run on a lower version 64-bit database. minimum required size: 542 MB --> TEMP tablespace is adequate for the upgrade.2 init. minimum required size: 400 MB --> SYSAUX tablespace is adequate for the upgrade. .. No changes are required. ********************************************************************** Obsolete/Deprecated Parameters: [Update Oracle Database 11. refer here for Update Parameters: -. ..ora or spfile] ********************************************************************** --> background_dump_dest 11. minimum required size: 60 MB --> EXAMPLE tablespace is adequate for the upgrade. ********************************************************************** Flashback: OFF ********************************************************************** ********************************************************************** Update Parameters: [Update Oracle Database 11.. refer here for Update Parameters: WARNING: --> "sga_target" needs to be increased to at least 596 MB .--> UNDOTBS1 tablespace is adequate for the upgrade..No update parameter changes are required..1 DEPRECATED replaced by "diagnostic_dest" .. .. . .2 init. minimum required size: 69 MB . ********************************************************************** --> If Target Oracle is 32-Bit. ********************************************************************** Renamed Parameters: [Update Oracle Database 11.

and must be set to "FALSE" prior to running a manual upgrade. [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] ********************************************************************** Miscellaneous Warnings ******************************************* *************************** WARNING: --> The "cluster_database" parameter is currently "TRUE" ..--> user_dump_dest .. 11.1 DEPRECATED replaced by "diagnostic_dest" ********************************************************************** Components: [The following database components will be upgraded or installed] ********************************************************************** --> Oracle Catalog Views --> Oracle Packages and Types [upgrade] [upgrade] VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID --> JServer JAVA Virtual Machine [upgrade] --> Oracle XDK for Java --> Real Application Clusters --> Oracle Workspace Manager --> OLAP Analytic Workspace --> OLAP Catalog --> EM Repository --> Oracle Text --> Oracle XML Database --> Oracle Java Packages --> Oracle interMedia --> Spatial --> Data Mining --> Expression Filter --> Rule Manager --> Oracle OLAP API . After the release migration.. it is recommended that DBMS_DST package .. . WARNING: --> Database is using a timezone file older than version 14...

. WARNING: --> EM Database Control Repository exists in the database.2. prior to executing your upgrade to confirm the recycle bin is empty. be used to upgrade the 10... . you may need to execute the command: PURGE DBA_RECYCLEBIN ..0. To gather dictionary statistics execute the following command while connected as SYSDBA: EXECUTE dbms_stats.... To view existing non-default events execute the following commands while connected AS SYSDBA: Events: SELECT (translate(value....v$parameter2 WHERE UPPER(name) ='EVENT' AND isdefault='FALSE' Trace Events: ... WARNING: --> Your recycle bin is turned on and currently contains no objects... ********************************************************************** Recommendations ********************************************************************** Oracle recommends gathering dictionary statistics prior to upgrading the database.. to the latest version which comes with the new release..gather_dictionary_stats.. Because it is REQUIRED that the recycle bin be empty prior to upgrading ... . and your recycle bin is turned on.' ')) FROM sys. Refer to the .5.0 database timezone version ... WARNING: --> Sync standby database prior to upgrade.chr(13)||chr(10). Direct downgrade of EM Database Control is not supported. Upgrade Guide for instructions to save the EM data prior to upgrade. .. ********************************************************************** Oracle recommends reviewing any defined events prior to upgrading.

sql Oracle Database 11. ********************************************************************** Database: ********************************************************************** --> name: --> version: --> compatible: --> blocksize: --> platform: RAC10G 10.5.0 8192 Linux x86 64-bit --> timezone file: V4 .. minimum required size: 543 MB --> TEMP tablespace is adequate for the upgrade. .2.5.0.2. ********************************************************************** SQL> SQL> @/u01/app/oracle/product/11.' ')) from sys.0. .2 Pre-Upgrade Information Tool 06-25-2012 05:59:10 Script Version: 11....0/db_3/rdbms/admin/utlu112i. .chr(13)||chr(10).2.0 Build: 001 .0....SELECT (translate(value.0 10.ora or spfile. minimum required size: 696 MB --> UNDOTBS1 tablespace is adequate for the upgrade. .v$parameter2 WHERE UPPER(name) = '_TRACE_EVENTS' AND isdefault='FALSE' Changes will need to be made in the init..3..2. ********************************************************************** Tablespaces: [make adjustments in the current environment] ********************************************************************** --> SYSTEM tablespace is adequate for the upgrade. minimum required size: 400 MB --> SYSAUX tablespace is adequate for the upgrade.

... ********************************************************************** Update Parameters: [Update Oracle Database 11. ********************************************************************** Renamed Parameters: [Update Oracle Database 11. ********************************************************************** Flashback: ON ********************************************************************** FlashbackInfo: --> name: --> limit: --> used: --> size: --> reclaim: --> files: +DATADG 10240 MB 1996 MB 10240 MB 868 MB 28 Please ensure adequate disk space WARNING: --> Flashback Recovery Area Set... minimum required size: 60 MB --> EXAMPLE tablespace is adequate for the upgrade.. .2 init. refer here for Update Parameters: WARNING: --> "sga_target" needs to be increased to at least 596 MB .ora or spfile] Note: Pre-upgrade tool was run on a lower version 64-bit database. .No update parameter changes are required.2 init. . ********************************************************************** --> If Target Oracle is 32-Bit. minimum required size: 69 MB . in recover y areas before performing an upgrade. --> If Target Oracle is 64-Bit. refer here for Update Parameters: -..ora or spfile] ********************************************************************** .

No renamed parameters found. [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] [upgrade] ********************************************************************** . .-.ora or spfile] ********************************************************************** --> background_dump_dest --> user_dump_dest . No changes are required. ********************************************************************** Obsolete/Deprecated Parameters: [Update Oracle Database 11.1 DEPRECATED DEPRECATED replaced by replaced by "diagnostic_dest" "diagnostic_dest" ********************************************************************** Components: [The following database components will be upgraded or installed] ********************************************************************** --> Oracle Catalog Views --> Oracle Packages and Types [upgrade] [upgrade] VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID VALID --> JServer JAVA Virtual Machine [upgrade] --> Oracle XDK for Java --> Real Application Clusters --> Oracle Workspace Manager --> OLAP Analytic Workspace --> OLAP Catalog --> EM Repository --> Oracle Text --> Oracle XML Database --> Oracle Java Packages --> Oracle interMedia --> Spatial --> Data Mining --> Expression Filter --> Rule Manager --> Oracle OLAP API .1 11.2 init. 11.

it is recommended that DBMS_DST package . . ... ...... USER MDSYS has 18 INVALID objects...sql after the upgrade to identify any new invalid ... objects due to the upgrade. .. Direct downgrade of EM Database Control is not supported.. ....Miscellaneous Warnings ********************************************************************** WARNING: --> Database is using a timezone file older than version 14. WARNING: --> Sync standby database prior to upgrade....... USER SYSMAN has 3 INVALID objects.. ..0 database timezone version . USER EXFSYS has 8 INVALID objects. USER WMSYS has 25 INVALID objects... Use utluiobj. .......2. Refer to the . The command: PURGE DBA_RECYCLEBIN .0... USER DMSYS has 2 INVALID objects........ .. . USER DBSNMP has 4 INVALID objects. USER XDB has 3 INVALID objects. registry$sys_inv_objs.. WARNING: --> Your recycle bin contains 1 object(s). ... USER SYS has 418 INVALID objects..... . The list of non-SYS/SYSTEM objects was written to .. .5... WARNING: --> Database contains INVALID objects prior to upgrade. ..... USER CTXSYS has 1 INVALID objects...... Upgrade Guide for instructions to save the EM data prior to upgrade. to the latest version which comes with the new release. registry$nonsys_inv_objs.. USER PUBLIC has 342 INVALID objects. After the release migration.. your database. . WARNING: --> EM Database Control Repository exists in the database. USER ORACLE_OCM has 2 INVALID objects.... The list of invalid SYS/SYSTEM objects was written to ... . . It is REQUIRED that the recycle bin is empty prior to upgrading .. ... be used to upgrade the 10..

gather_dictionary_stats.v$parameter2 WHERE UPPER(name) = '_TRACE_EVENTS' AND isdefault='FALSE' Changes will need to be made in the init. ********************************************************************** SQL> SQL> @utlu112s..2 Post-Upgrade Status Tool 06-25-2012 03:15:07 . To view existing non-default events execute the following commands while connected AS SYSDBA: Events: SELECT (translate(value. To gather dictionary statistics execute the following command while connected as SYSDBA: EXECUTE dbms_stats. .. ********************************************************************** Recommendations ********************************************************************** Oracle recommends gathering dictionary statistics prior to upgrading the database. must be executed immediately prior to executing your upgrade.chr(13)||chr(10). Oracle Database 11.' ')) from sys.. ********************************************************************** Oracle recommends reviewing any defined events prior to upgrading.sql .ora or spfile.v$parameter2 WHERE UPPER(name) ='EVENT' AND isdefault='FALSE' Trace Events: SELECT (translate(value.' ')) FROM sys..chr(13)||chr(10).

0 00:01:33 VALID 11.2.3.2.0 00:11:35 VALID 11.0.0.2.0.0.0 00:01:37 VALID 11.2. Spatial .0.2.2. Oracle Text .2.3.0 00:20:34 VALID 11.0 00:01:01 VALID 11.0 00:00:02 VALID 11.0.3.3.0 00:26:39 Current Status Version Number Elapsed Time HH:MM:SS . Oracle Workspace Manager . Oracle Multimedia .0 00:01:52 VALID 11.0. Oracle XDK .0.3. Oracle Server .3. JServer JAVA Virtual Machine .0 00:01:07 VALID 11. Oracle Real Application Clusters .0.2.3.3. Oracle XML Database .2. Oracle Database Java Packages .3.3.0 00:23:10 VALID 11. OLAP Analytic Workspace .0 00:04:16 VALID 11.0 00:08:33 VALID 11.0.0.3. Oracle Enterprise Manager .2. OLAP Catalog .0. Oracle OLAP API .0 00:01:42 VALID 11.0.3. Component Name .2.0.3.3.0 00:09:58 VALID 11.2..2. VALID 11.2.

Oracle Expression Filter ."WRH$_LATCH_CHILDREN" (0 rows in 0 seconds) Move BL Data "SYS". SQL> SQL> @catuppst.0 00:00:21 VALID 11.2."WRH$_WAITSTAT" (0 rows in 0 seconds) Move BL Data "SYS".sql TIMESTAMP -------------------------------------------------------------------------------COMP_TIMESTAMP POSTUP_BGN 2012-06-25 03:15:56 PL/SQL procedure successfully completed."WRH$_SQLSTAT" (0 rows in 0 seconds) Move BL Data "SYS".0.3. Move BL Data "SYS"."WRH$_SYSTEM_EVENT" (0 rows in 0 seconds) Move BL Data "SYS".3.2."WRH$_FILESTATXS" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_LATCH_PARENT" (0 rows in 0 seconds) . Oracle Rules Manager . This script will migrate the Baseline data on a pre-11g database to the 11g database. Total Upgrade Time: 02:00:29 00:05:46 VALID 11."WRH$_LATCH" (0 rows in 0 seconds) Move BL Data "SYS".0 00:00:27 PL/SQL procedure successfully completed.0. Gathering Statistics .

."WRH$_PARAMETER" (0 rows in 0 seconds) Move BL Data "SYS". ."WRH$_SEG_STAT" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_DLM_MISC" (0 rows in 0 seconds) Move BL Data "SYS".."WRH$_OSSTAT" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_SERVICE_STAT" (0 rows in 0 seconds) Move BL Data "SYS".."WRH$_INST_CACHE_TRANSFER" (0 rows in 0 seconds) Move BL Data "SYS". ...."WRH$_LATCH_PARENT_BR" Drop Renamed Baseline Table SYS.. above. Drop Renamed Baseline Table SYS.. Completed Moving the Baseline Data ."WRH$_TABLESPACE_STAT" (0 rows in 0 seconds) Move BL Data "SYS". then there are no renamed .."WRH$_LATCH_MISSES_SUMMARY" (0 rows in 0 seconds) Move BL Data "SYS".."WRH$_FILESTATXS_BR" Drop Renamed Baseline Table SYS. ."WRH$_SYS_TIME_MODEL" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_SYSSTAT" (0 rows in 0 seconds) Move BL Data "SYS".. If there are no Move BL Data messages . baseline tables in the system."WRH$_SYSTEM_EVENT_BR" Drop Renamed Baseline Table SYS..."WRH$_SERVICE_WAIT_CLASS" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_ACTIVE_SESSION_HISTORY" (0 rows in 0 seconds) . ..."WRH$_LATCH_CHILDREN_BR" Drop Renamed Baseline Table SYS.Move BL Data "SYS"..."WRH$_DB_CACHE_ADVICE" (0 rows in 0 seconds) Move BL Data "SYS"."WRH$_SQLSTAT_BR" Drop Renamed Baseline Table SYS."WRH$_ROWCACHE_SUMMARY" (0 rows in 0 seconds) Move BL Data "SYS". .... .. ..."WRH$_LATCH_MISSES_SUMMARY_BR" Drop Renamed Baseline Table SYS."WRH$_ROWCACHE_SUMMARY_BR" . ."WRH$_WAITSTAT_BR" Drop Renamed Baseline Table SYS."WRH$_SGASTAT" (0 rows in 0 seconds) Move BL Data "SYS".. . ."WRH$_LATCH_BR" Drop Renamed Baseline Table SYS.."WRH$_DB_CACHE_ADVICE_BR" Drop Renamed Baseline Table SYS....

....."WRH$_SGASTAT_BR" Drop Renamed Baseline Table SYS."WRH$_SYSSTAT_BR" Drop Renamed Baseline Table SYS.. Commit complete.."WRH$_TABLESPACE_STAT_BR" Drop Renamed Baseline Table SYS. .. 53 rows created... ."WRH$_PARAMETER_BR" Drop Renamed Baseline Table SYS. ....."WRH$_SYS_TIME_MODEL_BR" Drop Renamed Baseline Table SYS.. ."WRH$_SERVICE_STAT_BR" Drop Renamed Baseline Table SYS....."WRH$_SEG_STAT_BR" Drop Renamed Baseline Table SYS.. ."WRH$_SERVICE_WAIT_CLASS_BR" Drop Renamed Baseline Table SYS.. . baseline tables in the system. ..Drop Renamed Baseline Table SYS. If there are no Drop Table messages . Completed the Dropping of the .... Table created... . .. then there are no renamed . .. ."WRH$_INST_CACHE_TRANSFER_BR" Drop Renamed Baseline Table SYS."WRH$_OSSTAT_BR" Drop Renamed Baseline Table SYS. PL/SQL procedure successfully completed.."WRH$_ACTIVE_SESSION_HISTORY_BR" ."WRH$_DLM_MISC_BR" Drop Renamed Baseline Table SYS. above.... Renamed Baseline Tables .

53 rows updated. Commit complete.2 rows created. 53 rows updated. 53 rows updated. 1 row updated. . Commit complete. Table dropped. 53 rows updated. Commit complete. 2 rows updated.

TIMESTAMP -------------------------------------------------------------------------------COMP_TIMESTAMP POSTUP_END 2012-06-25 03:16:17 PL/SQL procedure successfully completed. Commit complete. 53 rows created. 60 rows created. . Commit complete.Commit complete. PL/SQL procedure successfully completed.

2.lo g Apply script: /u01/app/oracle/product/11.0/db_3/rdbms/admin/catbund le_PSU_RACSTB_ROLLBACK. 'YYYYMonDD_hh24_mi_ss'.sql PL/SQL procedure successfully completed. SQL> COLUMN spool_file NEW_VALUE spool_file NOPRINT SQL> SELECT '/u01/app/oracle/cfgtoollogs/catbundle/' || 'catbundle_PSU_' || name || '_APPLY_' || TO_CHAR(SYSDATE.PL/SQL procedure successfully completed. 'NLS_DATE_LANGUAGE=''AMERICAN''') || '.. Check the following file for errors: /u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_RACSTB_GENERATE_2012Jun25_03_16_31. PL/SQL procedure successfully completed..0/db_3/rdbms/admin/catbundle_PSU_RACSTB_APPLY. Executing script file.. .log' AS spool_file FROM v$database..sql Rollback script: /u01/app/oracle/product/11. Generating apply and rollback scripts.2.

SQL> SPOOL &spool_file SQL> exec dbms_registry. id. Commit complete.2. . namespace. action. comments) VALUES (SYSTIMESTAMP. 0. SQL> ALTER SESSION SET current_schema = SYS.. 'PSU'..0'). '11.2. version.. 'APPLY'. SQL> PROMPT Updating registry.3'. 'Patchset 11..set_session_namespace('SERVER') PL/SQL procedure successfully completed. SQL> COMMIT. SQL> INSERT INTO registry$history 2 3 4 5 6 7 8 9 10 11 (action_time.0.'NAMESPACE'). 1 row created. SYS_CONTEXT('REGISTRY$CTX'.2.0. bundle_series. Session altered. Updating registry.

migrate values (1.'10gr2 logical standby ready').'10gr2 logical standby ready'). ------------------------ SQL> create table scott. stage varchar2(100)).migrate values (1. stage varchar2(100)). commit. . 1 row created. SQL> commit. SQL> SQL> insert into scott.migrate values (1.migrate( mid number primary key.migrate( mid number primary key. insert into scott.SQL> SPOOL off SQL> SET echo off Check the following log file for errors: /u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_RACSTB_APPLY_2012Jun25_03_16_37.' logical standby ready upgraded').log SQL> --------------------------------------------------------------------- create table scott. insert into scott. commit. Table created.

. Query returning the number of objects compiled so far.sql TIMESTAMP -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_BGN 2012-06-25 03:17:33 DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid objects in the database. 6). SELECT COUNT(*) FROM obj$ WHERE status IN (4. 5.Commit complete. SELECT COUNT(*) FROM UTL_RECOMP_COMPILED. this number is added across all RAC nodes. This number should increase with time. This number should decrease with time. Query returning the number of invalid objects remaining. This script automatically chooses serial or parallel recompilation based on the number of CPUs available (parameter cpu_count) multiplied by the number of threads per CPU (parameter parallel_threads_per_cpu). ----------------------------------------------------------------------------------- SQL> @utlrp. so this command may take a long time to execute on a database with a large number of invalid objects. 2. Use the following queries to track recompilation progress: 1. Recompilation time is proportional to the number of invalid objects in the database. On RAC.

TIMESTAMP -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_END 2012-06-25 03:35:23 DOC> The following query reports the number of objects that have compiled DOC> with errors (objects that compile with errors have status set to 3 in DOC> obj$). Query showing jobs created by UTL_RECOMP SELECT job_name FROM dba_scheduler_jobs WHERE job_name like 'UTL_RECOMP_SLAVE_%'. DOC># OBJECTS WITH ERRORS .DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC> DOC># 2. Query showing UTL_RECOMP jobs that are running SELECT job_name FROM dba_scheduler_running_jobs WHERE job_name like 'UTL_RECOMP_SLAVE_%'. please examine the error DOC> messages reported with each object (using SHOW ERRORS) to see if they DOC> point to system misconfiguration or resource constraints that must be DOC> fixed before attempting to recompile these objects. If the number is higher than expected. 1. Jobs are created without instance affinity so that they can migrate across RAC nodes. UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel recompilation. Use the following queries to verify whether UTL_RECOMP jobs are being created and run correctly: PL/SQL procedure successfully completed.

...... If this number is non-zero.. ------------------------ References: ........... SQL> ..................------------------0 DOC> The following query reports the number of errors caught during DOC> recompilation... please query the error DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors DOC> are due to misconfiguration or resource constraints that must be DOC> fixed before objects can compile successfully........ Function dropped........ DOC># ERRORS DURING RECOMPILATION --------------------------0 Function created. PL/SQL procedure successfully completed. PL/SQL procedure successfully completed.

4. Oracle® Data Guard Concepts and Administration 10g Release 2 (10. Oracle® Data Guard Concepts and Administration 11g Release 2 (11.2) E25608-03 .2) 2 B14239-05 6. Upgrade & Migrate on Multi-Terabyte Mission Critical RAC with Near Zero Downtime : Jane Brown Senior Database Administrator 5.

Sign up to vote on this title
UsefulNot useful