Skip Headers
Oracle® Fusion Middleware Disaster Recovery Guide
11g Release 1 (11.1.1)

Part Number E15250-05
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

B Sample Oracle Site Guard Scripts

This appendix shows sample scripts for Oracle Site Guard. It includes the following:

Example B-1 Oracle Site Guard Configuration Script

#Login to emcli
 
emcli login -username="sysman" -password="sysman"
 
#Create site definitions
 
emcli create_siteguard_configuration -primary_system_name="NetappServer1System" -standby_system_name="NetappServer2System"
 
emcli get_siteguard_configuration
 
#Create credential associations
 
#Host credentials
 
emcli create_siteguard_credential_association -system_name="NetappServer1System" -credential_type="HostNormal" -credential_name="SG_CRED_HOST" -credential_owner="sysman"
emcli create_siteguard_credential_association -system_name="NetappServer1System" -credential_type="HostPrivileged" -credential_name="SG_CRED_HOST-PRIV" -credential_owner="sysman"
 
emcli create_siteguard_credential_association -system_name="NetappServer2System" -credential_type="HostNormal" -credential_name="SG_CRED_HOST" -credential_owner="sysman"
emcli create_siteguard_credential_association -system_name="NetappServer2System" -credential_type="HostPrivileged" -credential_name="SG_CRED_HOST-PRIV" -credential_owner="sysman"
 
#WLS credentials
 
emcli create_siteguard_credential_association -system_name="NetappServer1System" -credential_type="WLSAdmin" -credential_name="SG_CRED_WLS" -credential_owner="sysman"
emcli create_siteguard_credential_association -system_name="NetappServer2System" -credential_type="WLSAdmin" -credential_name="SG_CRED_WLS" -credential_owner="sysman"
 
#Database credentials
 
emcli create_siteguard_credential_association -system_name="NetappServer1System" -credential_type="DatabaseSysdba" -credential_name="SG_CRED_DB" -credential_owner="sysman"
emcli create_siteguard_credential_association -system_name="NetappServer2System" -credential_type="DatabaseSysdba" -credential_name="SG_CRED_DB" -credential_owner="sysman"
 
emcli get_siteguard_credential_association -system_name="NetappServer1System"
emcli get_siteguard_credential_association -system_name="NetappServer2System"
 
#Create operation plans
 
#Start/Stop NetappServer1System
 
emcli create_operation_plan -system_name="NetappServer1System" -operation="Start" -name="start-NetappServer1System"
emcli create_operation_plan -system_name="NetappServer1System" -operation="Stop" -name="stop-NetappServer1System"
 
#Start/Stop NetappServer2System
 
emcli create_operation_plan -system_name="NetappServer2System" -operation="Start" -name="start-NetappServer2System"
emcli create_operation_plan -system_name="NetappServer2System" -operation="Stop" -name="stop-NetappServer2System"
 
emcli get_operation_plans
 
#Switchover sites
 
#Swithover to NetappServer2System
 
emcli create_operation_plan -primary_system_name="NetappServer1System" -standby_system_name="NetappServer2System" -operation="Switchover" -name="switchover-to-NetappServer2System"
 
#Switchback to NetappServer2System
 
emcli create_operation_plan -primary_system_name="NetappServer2System" -standby_system_name="NetappServer1System" -operation="Switchover" -name="switchback-to-NetappServer1System"
 
#Failover sites
 
#Failover to NetappServer2System
 
emcli create_operation_plan -primary_system_name="NetappServer1System" -standby_system_name="NetappServer2System" -operation="Failover" -name="failover-to-NetappServer2System"
 
#Failover to NetappServer1System
 
emcli create_operation_plan -primary_system_name="NetappServer2System" -standby_system_name="NetappServer1System" -operation="Failover" -name="failover-to-NetappServer1System"
 
emcli get_operation_plans

Example B-2 Role Reverse Script for Sun Storage ZFS Storage Appliance

1: # This script executes the switchover script of S7000 by doing role-reversal
2: # 
3: #
4: ## Get the confirmation..
5: echo "Status at the source [ $CURRENT_PRIMARY ] "
6: ssh -T $CURRENT_PRIMARY < s7000_status_repl_src.aksh
7:
8: echo " Status at the target [$CURRENT_STANDBY]
9: ssh -T $CURRENT_STANDBY < s7000_status_repl_tgt.aksh
9:
10:echo "Going to failover from the source : $CURRENT_PRIMARY to the target : 11:CURRENT_STANDBY ."
12:
13:# Stop the replication
14:echo "Suspending the continuous replication at the source :  $CURRENT_PRIMARY "
15:
16:ssh -T $CURRENT_PRIMARY < s7000_stop_repl_at_source.aksh
17:
18:echo "Performing the role reversal at the target : $CURRENT_STANDBY "
19:
20:ssh -T $CURRENT_STANDBY < s7000_role_reverse_at_target.aksh
21:
22:echo "Status at the new source [$CURRENT_STANDBY ]"
23:
24: ssh -T $CURRENT_STANDBY < s7000_status_repl_src.aksh
25:
26:echo "Status at the new target [$CURRENT_PRIMARY_S7000 ]"
27:ssh -T $CURRENT_PRIMARY_S7000 < s7000_status_repl_tgt.aksh
28:

Example B-3 Role Reverse Script for NetApp Storage

# Perform SnapMirror Update from the target storage system site
rsh BIHOST1 snapmirror update -S BIHOST2:VOLFMW1  BIHOST1:VOLFMW1
sleep 100
rsh BIHOST1 snapmirror update -S BIHOST2:VOLFMW2  BIHOST1:VOLFMW2
sleep 100
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLADMIN  BIHOST1:VOLADMIN
sleep 100
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLBI1  BIHOST1:VOLBI1
sleep 100
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLBI2  BIHOST1:VOLBI2
rsh BIHOST1 snapmirror update -S BIHOST2:VOLBIINST1  BIHOST1:VOLBIINST1
sleep 100
rsh BIHOST1 snapmirror update -S BIHOST2:VOLBIINST2  BIHOST1:VOLBIINST2
rsh BIHOST1 snapmirror update -S BIHOST2:VOLWEB1 BIHOST1:VOLWEB1
sleep 100
rsh BIHOST1 snapmirror update -S BIHOST2:VOLWEB2 BIHOST1:VOLWEB2
sleep 100
rsh BIHOST1 snapmirror update -S BIHOST2:VOLWEBINST1 BIHOST1:VOLWEBINST1
sleep 100
rsh BIHOST1 snapmirror update -S BIHOST2:VOLWEBINST2  BIHOST1:VOLWEBINST2
sleep 100
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLDATA1  BIHOST1:VOLDATA1
sleep 30
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLDATA2  BIHOST1:VOLDATA2
sleep 30
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLDATA3  BIHOST1:VOLDATA3
sleep 30
rsh BIHOST1 snapmirror update  -S BIHOST2:VOLDATA4  BIHOST1:VOLDATA4
sleep 100
 
# Make Netapp volumes on the new primary storage writable
 
rsh BIHOST1 snapmirror break BIHOST1:VOLWEB1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLWEB2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLWEBINST1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLWEBINST2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLFMW1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLFMW2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLADMIN
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLBI1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLBI2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLBIINST1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLBIINST2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLDATA1
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLDATA2
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLDATA3
sleep 30
rsh BIHOST1 snapmirror break BIHOST1:VOLDATA4
sleep 100
 
# Reverse Storage Roles
 
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLWEB1 -w BIHOST2:VOLWEB1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLWEB2 -w BIHOST2:VOLWEB2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLWEBINST1 -w BIHOST2:VOLWEBINST1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLWEBINST2 -w BIHOST2:VOLWEBINST2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLBIINST1 -w BIHOST2:VOLBIINST1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLBIINST2 -w BIHOST2:VOLBIINST2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLFMW1 -w BIHOST2:VOLFMW1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLFMW2 -w BIHOST2:VOLFMW2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLADMIN -w BIHOST2:VOLADMIN
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLBI1 -w BIHOST2:VOLBI1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLBI2 -w BIHOST2:VOLBI2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLDATA1 -w BIHOST2:VOLDATA1
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLDATA2 -w BIHOST2:VOLDATA2
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLDATA3 -w BIHOST2:VOLDATA3
sleep 20
rsh BIHOST2 snapmirror resync -f -S BIHOST1:VOLDATA4 -w BIHOST2:VOLDATA4
sleep 20

Example B-4 aksh Script

script
/**********************************************************
* Script to role reverse the target Sun Storage Appliance *
* Written By ABC                                   *
* 2 Feburary 2011                                          *
**********************************************************/
 
function deleteExistingProject(projectName, poolName)
{
        printf("Making sure project: '" + projectName  + "' do not exist before on the standby appliance\n");
 
        run ('cd /');
        run ('shares');
        run ('set pool=' + poolName);
        try {
                run ('select ' + projectName);
                run ('confirm destroy');
        } catch (err) { 
                printf("No Project to to delete.. \n"); 
        }
}
 
function getSourcePackages(poolName, sourceId)
{
        printf("Selecting the packages for source: " + sourceId + "\n");
        run ('cd /');
        run ('shares');
        run ('set pool=' + poolName);     
        run('replication sources select ' + sourceId);
        var packages = list();
        return packages;
}
 
function roleReverseProject(projectName, poolName, sourceId)
{
        deleteExistingProject(projectName, poolName);
        var packages = getSourcePackages(poolName, sourceId);
        for (var i = 0; i < packages.length; i++) {
                run('select ' + packages[i]);
                var projName = list();
                if (projName == projectName) {
                        package = packages[i] ;
                        run('confirm reverse');
                        printf("Project Details after reversal \n");
                        run('show');
                        printf("Source and the target roles are reversed now..\n");
                        reverseReplication(projectName, poolName);
                        printf("Replication direction is reversed also\n");
                        break;
                }//EOF if
                run('cd ..');
        }//EOF for
        printf("The package chosen to role reverse : %s \n", package);
        return package;
}
 
function reverseReplication(projectName, poolName)
{
        run('cd /');
        run('shares');
        run('set pool=' + poolName);
        run('select ' + projectName + ' replication');
        run('select action-000');
        run('set continuous=true');
        run('commit');
}
 
roleReverseProject('SiteGuard','pool-0','source-000');