############################################################ ## DATA GUARD IMPLEMENTATION on 11g R1 RAC ## ############################################################ --Primary DB: USA10 --Standby DB: EURO10 ############################ --From the Primary Database: alter database force logging; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; alter database add standby logfile size 1G; select * from v$standby_log; alter system set parallel_execution_message_size=8192 scope=spfile; alter system set fast_start_mttr_target=3600; ############################ --From the Standby Site: --Dump the pfile and change the following parameters for the Standby: *.control_files='+DATA1/EURO10/CONTROLFILE/CURRENT01.CTR','+FRA1/EURO10/CONTROLFILE/CURRENT02.CTR' *.db_file_name_convert='/USA10/','/EURO10/' *.log_file_name_convert='/USA10/','/EURO10/' *.db_unique_name='EURO10' --AS this is a single instance RAC _disable_interface_checking = TRUE LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lneuron01.emilianofusaglia.net)(PORT = 1526)) ) alter system set local_listener='LISTENER' scope=spfile sid='EURO11'; --- mkdir -p /u01/oracle/admin/EURO10/adump mkdir -p /u01/oracle/diag/rdbms/euro10/EURO11/cdump ###################################################################### ################## #Network Congiguration ######################## ###################################################################### ########################################## ## Static Listener Entries: ########################################## --Primary Cluster Node 1 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (PROGRAM = extproc) ) (SID_DESC = (global_dbname = USA10_DGMGRL.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA11) ) (SID_DESC = (global_dbname = USA10_DGB.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA11) ) (SID_DESC = (global_dbname = USA10.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA11) ) ) --Primary Cluster Node 2 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (PROGRAM = extproc) ) (SID_DESC = (global_dbname = USA10_DGMGRL.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA12) ) (SID_DESC = (global_dbname = USA10_DGB.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA12) ) (SID_DESC = (global_dbname = USA10.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA12) ) ) --Primary Cluster Node 3 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (PROGRAM = extproc) ) (SID_DESC = (global_dbname = USA10_DGMGRL.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA13) ) (SID_DESC = (global_dbname = USA10_DGB.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA13) ) (SID_DESC = (global_dbname = USA10.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = USA13) ) ) --Standby Cluster Node 1 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (PROGRAM = extproc) ) (SID_DESC = (global_dbname = EURO10_DGMGRL.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = EURO11) ) (SID_DESC = (global_dbname = EURO10_DGB.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = EURO11) ) (SID_DESC = (global_dbname = EURO10.emilianofusaglia.net) (ORACLE_HOME = /u01/oracle/product/11.1.0.7) (sid_name = EURO11) ) ) ########################################## ##TNS Entries Primary & Standby Cluster ########################################## EURO11.emilianofusaglia.net = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = lneuron01-vip.emilianofusaglia.net)(PORT = 1526)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = EURO10.emilianofusaglia.net) (INSTANCE_NAME = EURO11) ) ) EURO10.emilianofusaglia.net = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lneuron01-vip.emilianofusaglia.net)(PORT = 1526)) (FAILOVER = on) (LOAD_BALANCE = on) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = EURO10.emilianofusaglia.net) ) ) USA10.emilianofusaglia.net = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lnusan01-vip.emilianofusaglia.net)(PORT = 1526)) (ADDRESS = (PROTOCOL = TCP)(HOST = lnusan02-vip.emilianofusaglia.net)(PORT = 1526)) (ADDRESS = (PROTOCOL = TCP)(HOST = lnusan03-vip.emilianofusaglia.net)(PORT = 1526)) (FAILOVER = on) (LOAD_BALANCE = on) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = USA10.emilianofusaglia.net) ) ) ########################################## ## Standby Controlfile Setup ## ########################################## alter database create standby controlfile as '/u01/oracle/emiliano/USA10.stby.ctl'; # scp /u01/oracle/emiliano/USA10.stby.ctl lneuron01:/tmp ### Execute the following steps: Startup nomount pfile='/u01/oracle/emiliano/PFILES/EURO10_for_GD.ora'; Create the spfile on ASM Startup nomount exclusive; ## Do not RESTORE the Controlfile automatically DONE by the CLONE Procedure ## Which update also Contro_file parameter into SPFIE!!!! rman target / RMAN> restore controlfile from '/u01/oracle/emiliano/USA10.stby.ctl'; --- ########################################## ## Duplicate the Database ########################################## ##From Primary DB Restore the DB to the Standby Side: rman connect target sys/xxxxxxx@USA10 ----PS No domain for Target connect auxiliary sys/xxxxxxx@EURO10.emilianofusaglia.net ----PS Use domain for Auxiliary run { allocate channel p1 type disk; allocate auxiliary channel s1 type disk; duplicate target database for standby from active database dorecover; } --or run { allocate channel p1 type disk; allocate channel p2 type disk; allocate channel p3 type disk; allocate channel p4 type disk; allocate auxiliary channel s1 type disk; allocate auxiliary channel s2 type disk; allocate auxiliary channel s3 type disk; allocate auxiliary channel s4 type disk; duplicate target database for standby from active database dorecover; } ########################################## ## Register the Standby Database to CRS ########################################## srvctl add database -d EURO10 -o $ORACLE_HOME srvctl add instance -d EURO10 -i EURO11 -n lneuron01 ########################################## ## Data Guard Broker Configuration ########################################## --Primary alter system set dg_broker_config_file1 = '+DATA1/USA10/DATAGUARDCONFIG/brokerconfig01.dat'; alter system set dg_broker_config_file2 = '+DATA1/USA10/DATAGUARDCONFIG/brokerconfig02.dat'; --Standby alter system set dg_broker_config_file1 = '+DATA1/EURO10/DATAGUARDCONFIG/brokerconfig01.dat'; alter system set dg_broker_config_file2 = '+DATA1/EURO10/DATAGUARDCONFIG/brokerconfig02.dat'; --on both databases alter system set dg_broker_start=true; --From a primary node connect to the broker and create the configuration #dgmgrl DGMGRL> connect sys/xxxxxxxx@USA10.emilianofusaglia.net Connected. create configuration 'CONFDG10' as primary database is 'USA10' connect identifier is USA10.emilianofusaglia.net; add database 'EURO10' as connect identifier is EURO10.emilianofusaglia.net; edit database 'USA10' set property 'LogXptMode' = 'SYNC'; edit database 'EURO10' set property 'LogXptMode' = 'SYNC'; edit database 'USA10' set property 'LogXptMode' = 'ASYNC'; edit database 'EURO10' set property 'LogXptMode' = 'ASYNC'; --edit configuration set protection mode as maxavailability; edit configuration set protection mode as maxprotection; --edit configuration set protection mode as maxavailability; --edit configuration set protection mode as maxperformance; enable configuration; edit database 'USA10' set property 'NetTimeout' = '20'; edit database 'EURO10' set property 'NetTimeout' = '20'; exit; DGMGRL> SWITCHOVER to "EURO10"; --Stop Recovery edit database 'EURO10' set state = 'APPLY-OFF'; --Start Recovery edit database 'EURO10' set state = 'APPLY-ON'; --Enabling ArchiveLog Tracing on Primary and Standby Good for Troubleshooting!! edit instance 'USA11' on database 'USA10' set property 'LogArchiveTrace' = '1'; edit instance 'USA12' on database 'USA10' set property 'LogArchiveTrace' = '1'; edit instance 'USA13' on database 'USA10' set property 'LogArchiveTrace' = '1'; edit instance 'EURO11' on database 'EURO10' set property 'LogArchiveTrace' = '6345'; ##############################################################################