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
The following two tabs change content below.
Latest posts by Ludovico (see all)
- New views in Oracle Data Guard 23c - January 3, 2024
- New in Data Guard 21c and 23c: Automatic preparation of the primary - December 22, 2023
- Does FLASHBACK QUERY work across incarnations or after a Data Guard failover? - December 13, 2023
Can you share create_fs_ctl.sql script please
Hi, you generate it through the command:
ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS ‘/path/to/create_fs_ctl.sql’;
You can get the paper I wrote here: https://fr.slideshare.net/ludovicocaldara/2014-603-caldarappr
It may be a problem of your proxy not allowing slideshare? The post has no problem on my side…
Hi Ludo,
The slides at the top of this post are not available. They show as broken links. Please post the slides. Thank you.
Pingback: Oracle Active Data Guard 12c: Far Sync Instance, Real-Time Cascade Standby, and Other Goodies - Ludovico Caldara - Blogs - triBLOG