Here you can find the content related to my second presentation at Oracle Open World 2014.
Slides
Demo video1: Real-Time Cascade
Demo video2: Far Sync Instance
Demo 1 Script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
clear echo "#### CURRENT CONFIGURATION: CLASSIC DATA GUARD 2 DATABASES ####" dgmgrl -echo sys/manager <<EOF show configuration EOF read -p "" echo "#### ADDING DATABASE REP ####" dgmgrl -echo sys/manager <<EOF add database 'REP' as connect identifier is 'REP'; EOF read -p "" echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF read -p "" echo echo "#### EDIT REDOROUTES ####" echo dgmgrl -echo sys/manager <<EOF edit database 'PROD' set property redoroutes='(PROD:DR)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit database 'REP' set property redoroutes='(REP:DR)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit database 'DR' set property redoroutes='(PROD:REP)(REP:PROD)(DR:REP,PROD)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit database 'REP' set property 'NetTimeout'=15; edit database 'REP' set property 'ReopenSecs'=5; EOF read -p "" echo echo "#### ENABLE DATABASE REP ####" dgmgrl -echo sys/manager <<EOF enable database 'REP' EOF read -p "" echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF echo echo echo "#### IS IT WORKING?? ####" read -p "" echo "#### ENABLE REL-TIME CASCADE ####" dgmgrl -echo sys/manager <<EOF edit database 'DR' set property redoroutes='(PROD:REP ASYNC)(REP:PROD ASYNC)(DR:REP,PROD)' EOF read -p "" echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF echo echo "#### NOTICE THE NEW BEHAVIOR ####" read -p "" echo "#### SWITCHOVER TO REP ####" dgmgrl -echo sys/manager <<EOF switchover to 'REP' EOF read -p "" echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF read -p "" echo "#### SWITCHOVER TO PROD ####" dgmgrl -echo sys/manager <<EOF switchover to 'PROD' EOF |
Demo 2 script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
clear echo "#### CURRENT CONFIGURATION: 3 CASCADE STANDBY DATABASES ####" dgmgrl -echo sys/manager <<EOF show configuration EOF read -p "" echo "#### CREATE CONTROLFILE ####" sqlplus "/ as sysdba" @create_fs_ctl.sql read -p "" echo "#### COPY FAR SYNC CONTROLFILE TO FAR SYNC HOSTS ####" scp /tmp/control01.ctl oracle@o12f01:/u01/app/oracle/oradata/PRODFS/controlfile/control01.ctl scp /tmp/control01.ctl oracle@o12f02:/u01/app/oracle/oradata/DRFS/controlfile/control01.ctl read -p "#### START FS INSTANCES, CLEAR STANDBY LOGS, THEN CONTINUE HERE ####" echo "#### ADD FAR_SYNC INSTANCED ####" dgmgrl -echo sys/manager <<EOF add far_sync 'PRODFS' as connect identifier is 'PRODFS_DG'; EOF read -p "" dgmgrl -echo sys/manager <<EOF add far_sync 'DRFS' as connect identifier is 'DRFS_DG'; EOF read -p "" dgmgrl -echo sys/manager <<EOF edit far_sync 'PRODFS' set property 'NetTimeout'=15; edit far_sync 'PRODFS' set property 'ReopenSecs'=5; edit far_sync 'DRFS' set property 'NetTimeout'=15; edit far_sync 'DRFS' set property 'ReopenSecs'=5; EOF read -p "" echo echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF read -p "" echo "#### EDIT REDOROUTES ####" dgmgrl -echo sys/manager <<EOF edit database 'PROD' set property redoroutes='(PROD:PRODFS SYNC)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit far_sync 'PRODFS' set property redoroutes='(PROD:DR ASYNC)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit database 'DR' set property redoroutes='(PROD:REP ASYNC)(REP:DRFS ASYNC)(DR:REP SYNC, DRFS SYNC)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit database 'REP' set property redoroutes='(REP:DR SYNC)' EOF read -p "" dgmgrl -echo sys/manager <<EOF edit far_sync 'DRFS' set property redoroutes='(DR:PROD ASYNC)(REP:PROD ASYNC)' EOF read -p "" echo echo "#### ENABLE FAR_SYNCS ####" dgmgrl -echo sys/manager <<EOF enable far_sync 'PRODFS' EOF read -p "" dgmgrl -echo sys/manager <<EOF enable far_sync 'DRFS' EOF read -p "" echo "#### NEW CONFIGURATION ####" dgmgrl -echo sys/manager <<EOF show configuration EOF echo echo "#### IT MAY TAKE SOME MINUTES BEFORE EVERYTHING START WORKING ####" read -p "" dgmgrl -echo sys/manager <<EOF show configuration EOF |
For the demo I’ve used 5 machines running 3 database instances and 2 Far Sync instances. I cannot provide the documentation for creating the demo environment, but the scripts may be useful to understand how the demo works.
Cheers
—
Ludo