If you use Oracle Data Guard feature just for data protection, you are using less than half of its potential. You already pay for it, so why not getting the most out of it? In this session I will show how you can use Oracle Data Guard capabilities for common tasks such as database cloning, database migration and reporting, with the help of other features included in Oracle Database Enterprise Edition
Get the most out of Oracle Data Guard - POUG version
1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
Get the Most out of Oracle Data Guard!
High Five POUG
#POUG2017
Ludovico Caldara
Oracle ACE Director
Senior Consultant
2. About Ludovico Caldara
Get the Most out of Oracle Data Guard!2 9/1/2017
■ 18 Years DBA (Not Only Oracle)
▪ I do it everywhere (even Windows)
■ RAC ATTACK Ninja & co-writer
■ President, SOUG & ITOUG Board
■ OCP (11g, 12c, MySQL) & OCE
■ Italian living in Switzerland
■ http://www.ludovicocaldara.net
■ @ludodba ludodba
■ ludovicocaldara
3. About Ludovico Caldara
Get the Most out of Oracle Data Guard!3 9/1/2017
■ 18 Years DBA (Not Only Oracle)
▪ I do it everywhere (even Windows)
■ RAC ATTACK Ninja & co-writer
■ President, SOUG & ITOUG Board
■ OCP (11g, 12c, MySQL) & OCE
■ Italian living in Switzerland
■ http://www.ludovicocaldara.net
■ @ludodba ludodba
■ ludovicocaldara
4. Our company.
Adaptive Features or: How I learned to Stop Worrying4 01/09/2017
Trivadis is a market leader in IT consulting, system integration, solution engineering
and the provision of IT services focusing on and
technologies in Switzerland, Germany, Austria and Denmark.
We offer our services in the following strategic business fields:
Trivadis Services takes over the interactive operation of your IT systems.
O P E R A T I O N
5. COPENHAGEN
MUNICH
LAUSANNE
BERN
ZURICH
BRUGG
GENEVA
HAMBURG
DÜSSELDORF
FRANKFURT
STUTTGART
FREIBURG
BASEL
VIENNA
With over 600 specialists and IT experts in your region.
Adaptive Features or: How I learned to Stop Worrying5 01/09/2017
14 Trivadis branches and more than
600 employees
200 Service Level Agreements
Over 4,000 training participants
Research and development budget:
CHF 5.0 / EUR 4 million
Financially self-supporting and
sustainably profitable
Experience from more than 1,900
projects per year at over 800
customers
6. Get the Most out of Oracle Data Guard!6 9/1/2017
Oracle
Data Guard?
7. Why is Oracle Data Guard still relevant?
Get the Most out of Oracle Data Guard!7 9/1/2017
The best high availability solution in the Oracle ecosystem
– Synchronous (or not)
– One-to-one copy (or one-to-many)
– No single points of failure
– Failover is (almost) transparent to the applications (if well configured)
Rock solid!
Included in Oracle Database Enterprise Edition
8. Hey, it’s 12c Release 2!
Get the Most out of Oracle Data Guard!8 9/1/2017
Multiple Observers for Fast-Start Failover configurations
Observer in Background mode (needs wallet)
Recover of Nologging Operations (recover database nonlogged block;)
Multiple fast_start failover targets
Automated passwordfile copy
Enhanced Broker and dgmgrl
FastSync redo transport
9. Hey, it’s 12c Release 2!
Get the Most out of Oracle Data Guard!9 9/1/2017
Multiple Observers for Fast-Start Failover configurations
Observer in Background mode (needs wallet)
Recover of Nologging Operations (recover database nonlogged block;)
Multiple fast_start failover targets
Automated passwordfile copy
Enhanced Broker and dgmgrl
FastSync redo transport That was 12cR1!
10. What about Active Data Guard new features?
Get the Most out of Oracle Data Guard!10 9/1/2017
11. What about Active Data Guard new features?
Get the Most out of Oracle Data Guard!11 9/1/2017
12. What about Active Data Guard new features?
Get the Most out of Oracle Data Guard!12 9/1/2017
13. Get the Most out of Oracle Data Guard!13 9/1/2017
Technology Enablers
14. The «MAIN» features included in Data Guard
Get the Most out of Oracle Data Guard!14 9/1/2017
Client Failover (TAF)
Redo Apply
SQL Apply
Snapshot Standby
Rolling Upgrades (possible, but without RDBMS_ROLLING)
Transaction Guard (necessary for Application Continuity but not licensed as option)
15. The «MAIN» features included in Data Guard
Get the Most out of Oracle Data Guard!15 9/1/2017
Client Failover (TAF)
Redo Apply
SQL Apply
Snapshot Standby
Rolling Upgrades (possible, but without RDBMS_ROLLING)
Transaction Guard (necessary for Application Continuity but not licensed as option)
16. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!16 9/1/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
17. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!17 9/1/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
Database
Migration
18. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!18 9/1/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
Reporting
19. Our three topics focuses for this presentation
Get the Most out of Oracle Data Guard!19 9/1/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel Database
Cloning
20. Get the Most out of Oracle Data Guard!20 9/1/2017
Client Failover
21. Client Failover is a critical topic!
Get the Most out of Oracle Data Guard!21 9/1/2017
https://www.slideshare.net/ludovicocaldara/oracle-client-failover-under-the-hood
– OS Connect Timeouts/ARP Cache
– OS Re-Connect Timeouts
– Virtual IP Addresses
– TCP Keepalive
– Database Services
– DB Connect Timeouts
– DB Re-Connect Timeouts
– Transparent Application Failover
– Fast Application Notification / Fast Connection Failover
– Application Continuity
22. Database Services
Get the Most out of Oracle Data Guard!
Database services can be created with:
– srvctl (Grid Infrastructure), gdsctl (Global Data Services).
– dbms_service.create_service() PL/SQL procedure (TRIGGER AFTER STARTUP!)
Different high availability and workload management attributes can be defined
Service
srvctl add service
-db <db_unique_name>
-service <service>
-preferred "<preferred_list>"
-available "<available_list>"
-serverpool <pool_name>
-cardinality [UNIFORM | SINGLETON]
-tafpolicy [NONE | BASIC | PRECONNECT]
-role [PRIMARY, PHYSICAL_STANDBY, LOGICAL_STANDBY, SNAPSHOT_STANDBY]
-clbgoal [SHORT | LONG]
-rlbgoal [SERVICE_TIME | THROUGHPUT | NONE]
...
Not available with
Oracle Restart
9/1/201722
23. Role-Based Services
Get the Most out of Oracle Data Guard!
Example role-based services with Grid Infrastructure.
Services are started, only if database and service role match.
srvctl add service -db sour_poug –service sour_rw.trivadis.com
-role PRIMARY
srvctl add service -db sour_poug -service sour_ro.trivadis.com
-role PHYSICAL_STANDBY
srvctl add service -db sour_poug -service sour_snap.trivadis.com
-role SNAPSHOT_STANDBY
SvcAgent::start 680 query_db_role
SvcAgent::start 710 not starting service sour_rw Role mismatch -
Service role:PRIMARY, current DB role:PHYSICAL_STANDBY
9/1/201723
24. Transparent Application Failover – Server Side Example
Get the Most out of Oracle Data Guard!
Example server side TAF BASIC method configuration.
srvctl add service
-db sour_SITE1
-service sour_RW
-tafpolicy BASIC
-failovertype SELECT
-failoverdelay 1
-failoverretry 180
9/1/201724
BEGIN
DBMS_SERVICE.CREATE_SERVICE (
service_name => 'sour.TRIVADIS.COM',
network_name => 'sour.TRIVADIS.COM',
failover_method => 'BASIC',
failover_type => 'SELECT',
failover_retries => 180,
failover_delay => 3);
END;
/
25. Transparent Application Failover – Client Side Example
Get the Most out of Oracle Data Guard!
Example client side TAF BASIC method configuration.
189/1/201725
sour.trivadis.com =
(DESCRIPTION =
(FAILOVER=ON) (LOAD_BALANCE=OFF)
(CONNECT_TIMEOUT=5)(RETRY_COUNT=3)(RETRY_DELAY=1)(TRANSPORT_CONNECT_TIMEOUT=3)
(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=ludo01.trivadis.com)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=vico01.trivadis.com)(PORT=1521)))
(CONNECT_DATA =
(SERVICE_NAME = sour.trivadis.com)
(FAILOVER_MODE =
(TYPE = SESSION)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 1)
)
)
)
26. Transparent Application Failover – Client Side Example
Get the Most out of Oracle Data Guard!
Example client side TAF BASIC method configuration.
189/1/201726
sour.trivadis.com =
(DESCRIPTION =
(FAILOVER=ON) (LOAD_BALANCE=OFF)
(CONNECT_TIMEOUT=5)(RETRY_COUNT=3)(RETRY_DELAY=1)(TRANSPORT_CONNECT_TIMEOUT=3)
(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=ludo01.trivadis.com)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=vico01.trivadis.com)(PORT=1521)))
(CONNECT_DATA =
(SERVICE_NAME = sour.trivadis.com)
(FAILOVER_MODE =
(TYPE = SESSION)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 1)
)
)
)
!
TAF is for OCI Drivers only
Thin Driver: do not use TAF
27. Use Case: Classic Data Guard Failover / Switchover
Get the Most out of Oracle Data Guard!27 9/1/2017
sour_ludo sour_vico
sour_RW
CLIENTS
srvctl add service -db sour_vico
-service sour_RW
-role PRIMARY
(ADDRESS=(HOST=ludo01)(PORT=1521))
(ADDRESS=(HOST=vico01)(PORT=1521))
MRP0
28. Use Case: Classic Data Guard Failover / Switchover
Get the Most out of Oracle Data Guard!28 9/1/2017
sour_ludo sour_vico
sour_RW
CLIENTS
srvctl add service -db sour_vico
-service sour_RW
-role PRIMARY
(ADDRESS=(HOST=ludo01)(PORT=1521))
(ADDRESS=(HOST=vico01)(PORT=1521))
MRP0
29. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!29 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
30. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!30 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_newMRP0
– Set up Standby instance
31. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!31 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_newMRP0
– Set up Standby instance
– Stop application
32. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!32 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_new
MRP0
– Set up Standby instance
– Stop application
– Switchover
33. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!33 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01vico01)(PORT=1521))
sour_new
MRP0
– Change TNS definition– Set up Standby instance
– Stop application
– Switchover
34. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!34 9/1/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01vico01)(PORT=1521))
sour_new
MRP0
– Change TNS definition
– Start application
– Set up Standby instance
– Stop application
– Switchover
35. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!35 9/1/2017
CLIENTS
(ADDRESS=(HOST=vico01)(PORT=1521))
sour_new
– Set up Standby instance
– Stop application
– Switchover
– Change TNS definition
– Start application
– Cleanup
36. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!36 9/1/2017
Problems
– Requires application downtime (even if short)
– Messy DB_UNIQUE_NAME naming convention
37. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!37 9/1/2017
Problems
– Requires application downtime (even if short)
– Messy DB_UNIQUE_NAME naming convention
?Better solutions?
38. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!38 9/1/2017
Problems
– Requires application downtime (even if short)
– Messy DB_UNIQUE_NAME naming convention
(ADDRESS=(HOST=ludo01)(PORT=1521))
(ADDRESS=(HOST=ludo01)(PORT=1521))
?Better solutions?
Hint: this is valid
39. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!39 9/1/2017
sour_ludo
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME ludo01
sour-s2 IN CNAME ludo01
40. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!40 9/1/2017
sour_ludo
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME ludo01
sour-s2 IN CNAME ludo01
sour_vicoMRP0
41. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!41 9/1/2017
sour_ludo
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME ludo01
sour-s2 IN CNAME vico01
sour_vicoMRP0
42. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!42 9/1/2017
sour_ludo
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME ludo01
sour-s2 IN CNAME vico01
sour_vicoMRP0
TAF!
43. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!43 9/1/2017
sour_ludo
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME vico01
sour-s2 IN CNAME vico01
sour_vicoMRP0
TAF!
44. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!44 9/1/2017
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME vico01
sour-s2 IN CNAME vico01
sour_vico
TAF!
45. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!45 9/1/2017
CLIENTS
(ADDRESS=(HOST=sour-s1)(PORT=1521))
(ADDRESS=(HOST=sour-s2)(PORT=1521))
sour_RW
sour-s1 IN CNAME vico01
sour-s2 IN CNAME vico01
sour_vico
TAF!
46. Get the Most out of Oracle Data Guard!46 9/1/2017
Live
Demo?
47. Get the Most out of Oracle Data Guard!47 9/1/2017
Snapshot Standby
49. Snapshot Standby (simplified)
Get the Most out of Oracle Data Guard!49 9/1/2017
stout_ludo stout_vicoLGWR RFS
ol stbl
arcarc
LGWR
ol
arc
50. Snapshot Standby
Get the Most out of Oracle Data Guard!50 9/1/2017
Requirements
– Correct Data Guard configuration with a physical standby
– Physical standby has Fast Recovery Area Configured
– FORCE LOGGING is not mandatory but simplifies everything
Conversion to Snapshot Standby without broker
– ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
– ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
– ALTER DATABASE OPEN READ WRITE;
Conversion to Snapshot standby with broker
– CONVERT DATABASE <name> TO SNAPSHOT STANDBY;
51. Conversion
Get the Most out of Oracle Data Guard!51 9/1/2017
Stop Redo Apply
Create Guaranteed Restore Point
Flush Standby Logs
Clear Online Logfiles
Convert to Primary
Open resetlogs
Start RFS process to get redo stream from the primary
53. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!53 9/1/2017
stout_ludo stout_vico
stout_RW stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role SNAPSHOT_STANDBY
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=ludo01)(PORT=1521))
54. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!54 9/1/2017
stout_ludo stout_vico
stout_RW stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role SNAPSHOT_STANDBY
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=ludo01)(PORT=1521))
MRP0
55. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!55 9/1/2017
srvctl add service -db stout_vico -service stout_snap.trivadistraining.com -role
“SNAPSHOT_STANDBY” -failovertype SELECT -failovermethod BASIC
stout_SNAP.trivadistraining.com =
(DESCRIPTION =
(CONNECT_TIMEOUT = 5 )(TRANSPORT_CONNECT_TIMEOUT = 3 )
(ADDRESS_LIST =
(LOAD_BALANCE = OFF )
(ADDRESS = (PROTOCOL = TCP )(HOST = vico01.trivadistraining.com )(PORT = 1521 ))
(ADDRESS = (PROTOCOL = TCP )(HOST = ludo01.trivadistraining.com )(PORT = 1521 ))
)
(CONNECT_DATA =
(SERVICE_NAME = stout_SNAP.trivadistraining.com )
)
)
56. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!56 9/1/2017
stout_ludo stout_vico
stout_RW stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role “SNAPSHOT_STANDBY,PRIMARY”
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=ludo01)(PORT=1521))
stout_SNAP
57. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!57 9/1/2017
stout_ludo stout_vico
stout_RW stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role “SNAPSHOT_STANDBY,PRIMARY”
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=ludo01)(PORT=1521))
stout_SNAP
MRP0
58. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!58 9/1/2017
srvctl add service -db stout_vico -service stout_snap.trivadistraining.com -role
“PRIMARY,SNAPSHOT_STANDBY” -failovertype SELECT -failovermethod BASIC
stout_SNAP.trivadistraining.com =
(DESCRIPTION =
(CONNECT_TIMEOUT = 5 )(TRANSPORT_CONNECT_TIMEOUT = 3 )
(ADDRESS_LIST =
(LOAD_BALANCE = OFF )
(ADDRESS = (PROTOCOL = TCP )(HOST = vico01.trivadistraining.com )(PORT = 1521 ))
(ADDRESS = (PROTOCOL = TCP )(HOST = ludo01.trivadistraining.com )(PORT = 1521 ))
)
(CONNECT_DATA =
(SERVICE_NAME = stout_SNAP.trivadistraining.com )
)
)
59. Get the Most out of Oracle Data Guard!59 9/1/2017
Live
Demo?
60. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!60 9/1/2017
stout_ludo
stout_vico
stout_RW
stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role “SNAPSHOT_STANDBY”
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=piwo01)(PORT=1521))
stout_piwoMRP0
61. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!61 9/1/2017
stout_ludo
stout_vico
stout_RW
stout_SNAP
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role “SNAPSHOT_STANDBY”
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=piwo01)(PORT=1521))
stout_piwo
stout_SNAP
62. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!62 9/1/2017
stout_ludo
stout_vico
stout_RW
CLIENTS
srvctl add service -db stout_vico
-service stout_SNAP
-role “SNAPSHOT_STANDBY”
(ADDRESS=(HOST=vico01)(PORT=1521))
(ADDRESS=(HOST=piwo01)(PORT=1521))
stout_piwo
MRP0
stout_SNAP
63. Two Standby Databases Use Case
Get the Most out of Oracle Data Guard!63 9/1/2017
srvctl add service -db stout_vico -service stout_snap.trivadistraining.com -role
“SNAPSHOT_STANDBY” -failovertype SELECT -failovermethod BASIC
stout_SNAP.trivadistraining.com =
(DESCRIPTION =
(CONNECT_TIMEOUT = 5 )(TRANSPORT_CONNECT_TIMEOUT = 3 )
(ADDRESS_LIST =
(LOAD_BALANCE = OFF )
(ADDRESS = (PROTOCOL = TCP )(HOST = vico01.trivadistraining.com )(PORT = 1521 ))
(ADDRESS = (PROTOCOL = TCP )(HOST = piwo01.trivadistraining.com )(PORT = 1521 ))
)
(CONNECT_DATA =
(SERVICE_NAME = stout_SNAP.trivadistraining.com )
)
)
64. Get the Most out of Oracle Data Guard!
Standby
Consistency
on
recovery cancel
9/1/201764
65. stout_vico
Redo Apply (roll-forward)
Get the Most out of Oracle Data Guard!65 9/1/2017
BUFFER CACHE
datafilesfuzzy
datafiles
dbw0
stout_ludo LGWR RFS MRP0
ol stbl
arcarc
ckpt
66. Block status
Get the Most out of Oracle Data Guard!66 9/1/2017
SQL> select status, dirty, count(*) from v$bh
2> group by status, dirty order by status, dirty;
STATUS D COUNT(*)
---------- - ----------
free N 11
mrec N 3013
mrec Y 82
DGMGRL> edit database stout_vico set state='APPLY-OFF';
SQL> select status, dirty, count(*) from v$bh
2> group by status, dirty order by status, dirty;
STATUS D COUNT(*)
---------- - ----------
free N 7012
67. Block status
Get the Most out of Oracle Data Guard!67 9/1/2017
SQL> select status, dirty, count(*) from v$bh
2> group by status, dirty order by status, dirty;
STATUS D COUNT(*)
---------- - ----------
free N 11
mrec N 3013
mrec Y 82
DGMGRL> edit database stout_vico set state='APPLY-OFF';
SQL> select status, dirty, count(*) from v$bh
2> group by status, dirty order by status, dirty;
STATUS D COUNT(*)
---------- - ----------
free N 7012
ORA-16037: user requested cancel of managed recovery operation
Managed Standby Recovery not using Real Time Apply
Recovery interrupted!
Recovered data files to a consistent state at change 292504638291
68. Consistent datafiles == consistent database
Get the Most out of Oracle Data Guard!68 9/1/2017
No additional media recovery required before OPEN RESETLOGS
– Cold backups via filesystem commands
– Cloning possible without bother with Online or Archive Logs!
Consistent Standby + ACFS Snapshots (or other) = Cheap Database Cloning
69. Cloning solution based on Standby Database
Get the Most out of Oracle Data Guard!69 9/1/2017
ludo01
GRID INFRASTRUCTURE 12cR2
DG +DATA
ACFS
/u02/fra
ACFS
/u02/data
stout_ludo
SNAPSHOT
stout
vico01
GRID INFRASTRUCTURE 12cR2
DG +DATA
ACFS
/u02/data
ACFS
/u02/fra
stout_vico
SNAPSHOT
stout
MRP0
SNAPSHOT
clone1
clone1
SNAPSHOT
COPYSNAPSHOT
COPYSNAPSHOT
COPYSNAPSHOT
COPYSNAPSHOT
COPYSNAPSHOT
COPYSNAPSHOT
Sunday
70. Cloning Steps
Get the Most out of Oracle Data Guard!70 9/1/2017
Snapshot creation
– edit database stout_vico set state=‘APPLY-OFF’;
– acfsutil snap create -w -p stout stout.`date +%A` /u02/data
– alter database backup controlfile to trace as ‘/u02/data/.ACFS/snaps/…’ ;
– create pfile=‘/u02/data/.ACFS/snaps/…’ from spfile;
– edit database stout_vico set state=‘APPLY-ON’;
71. Cloning Steps
Get the Most out of Oracle Data Guard!71 9/1/2017
Cloning the database from the snapshot
– Abort previous instance / delete previous snapshot
– acfsutil snap create -w -p stout.`date +%A` clone1 /u02/data
– sed -i -e ‘s/stout_vico/clones/g’ init.ora control_trace.trc
– startup open resetlogs
72. Get the Most out of Oracle Data Guard!72 9/1/2017
Live
Demo?
73. Get the Most out of Oracle Data Guard!73 9/1/2017
Let me do one more example
74. Database reorganization live
Get the Most out of Oracle Data Guard!74 9/1/2017
Setup physical standby
Convert to logical standby << Here the standby is OPEN
Stop SQL Apply
Reorganize your database
Start SQL Apply and catch the primary
Switchover to Logical Standby
75. Get the Most out of Oracle Data Guard!
Conclusions
9/1/201775
76. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
Questions in front of a beer!
High Five POUG
#POUG2017
Ludovico Caldara
Oracle ACE Director
Senior Consultant