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
Report
Share
Report
Share
1 of 75
More Related Content
Get the most out of Oracle Data Guard - OOW 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!
Oracle Open World 2017
#OOW17
Ludovico Caldara
Oracle ACE Director
Senior Consultant
2. About Ludovico Caldara
Get the Most out of Oracle Data Guard!2 9/29/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. Our company.
Adaptive Features or: How I learned to Stop Worrying3 29/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
4. 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 Worrying4 29/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/29/2017
Oracle
Data Guard?
7. Why is Oracle Data Guard still relevant?
Get the Most out of Oracle Data Guard!7 9/29/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/29/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/29/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/29/2017
11. What about Active Data Guard new features?
Get the Most out of Oracle Data Guard!11 9/29/2017
12. Get the Most out of Oracle Data Guard!12 9/29/2017
Technology Enablers
13. The «MAIN» features included in Data Guard
Get the Most out of Oracle Data Guard!13 9/29/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)
14. The «MAIN» features included in Data Guard
Get the Most out of Oracle Data Guard!14 9/29/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. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!15 9/29/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
16. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!16 9/29/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
Database
Migration
17. Our three main topics for this presentation
Get the Most out of Oracle Data Guard!17 9/29/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel
Reporting
18. Our three topics focuses for this presentation
Get the Most out of Oracle Data Guard!18 9/29/2017
Client Failover (TAF)
Snapshot Standby
Standby consistency on recovery cancel Database
Cloning
19. Get the Most out of Oracle Data Guard!19 9/29/2017
Client Failover
20. Client Failover is a critical topic!
Get the Most out of Oracle Data Guard!20 9/29/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
21. 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/29/201721
22. 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/29/201722
23. 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/29/201723
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;
/
24. Transparent Application Failover – Client Side Example
Get the Most out of Oracle Data Guard!
Example client side TAF BASIC method configuration.
189/29/201724
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)
)
)
)
25. Transparent Application Failover – Client Side Example
Get the Most out of Oracle Data Guard!
Example client side TAF BASIC method configuration.
189/29/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)
)
)
)
!
TAF is for OCI Drivers only
Thin Driver: do not use TAF
26. Use Case: Classic Data Guard Failover / Switchover
Get the Most out of Oracle Data Guard!26 9/29/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
27. Use Case: Classic Data Guard Failover / Switchover
Get the Most out of Oracle Data Guard!27 9/29/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: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!28 9/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
29. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!29 9/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_newMRP0
– Set up Standby instance
30. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!30 9/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_newMRP0
– Set up Standby instance
– Stop application
31. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!31 9/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01)(PORT=1521))
sour_new
MRP0
– Set up Standby instance
– Stop application
– Switchover
32. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!32 9/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01vico01)(PORT=1521))
sour_new
MRP0
– Change TNS definition– 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/29/2017
sour
CLIENTS
(ADDRESS=(HOST=ludo01vico01)(PORT=1521))
sour_new
MRP0
– Change TNS definition
– Start application
– 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/29/2017
CLIENTS
(ADDRESS=(HOST=vico01)(PORT=1521))
sour_new
– Set up Standby instance
– Stop application
– Switchover
– Change TNS definition
– Start application
– Cleanup
35. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!35 9/29/2017
Problems
– Requires application downtime (even if short)
– Messy DB_UNIQUE_NAME naming convention
36. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!36 9/29/2017
Problems
– Requires application downtime (even if short)
– Messy DB_UNIQUE_NAME naming convention
?Better solutions?
37. Use Case: Migrate Standalone on another server
Get the Most out of Oracle Data Guard!37 9/29/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
38. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!38 9/29/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
39. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!39 9/29/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
40. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!40 9/29/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
41. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!41 9/29/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!
42. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!42 9/29/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!
43. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!43 9/29/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!
44. Use Case: Smart Standalone Configuration
Get the Most out of Oracle Data Guard!44 9/29/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. Get the Most out of Oracle Data Guard!45 9/29/2017
Demo?
46. Get the Most out of Oracle Data Guard!46 9/29/2017
Snapshot Standby
48. Snapshot Standby (simplified)
Get the Most out of Oracle Data Guard!48 9/29/2017
stout_ludo stout_vicoLGWR RFS
ol stbl
arcarc
LGWR
ol
arc
49. Snapshot Standby
Get the Most out of Oracle Data Guard!49 9/29/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;
50. Conversion
Get the Most out of Oracle Data Guard!50 9/29/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
52. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!52 9/29/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))
53. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!53 9/29/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
54. Use Case: SNAP STANDBY ONLY
Get the Most out of Oracle Data Guard!54 9/29/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 )
)
)
55. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!55 9/29/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
56. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!56 9/29/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
57. Use Case: SNAP STANDBY or PRIMARY
Get the Most out of Oracle Data Guard!57 9/29/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 )
)
)
58. Get the Most out of Oracle Data Guard!58 9/29/2017
Demo?
59. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!59 9/29/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
60. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!60 9/29/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
61. Use Case: Double SNAP STANDBY
Get the Most out of Oracle Data Guard!61 9/29/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
62. Two Standby Databases Use Case
Get the Most out of Oracle Data Guard!62 9/29/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 )
)
)
63. Get the Most out of Oracle Data Guard!
Standby
Consistency
on
recovery cancel
9/29/201763
64. stout_vico
Redo Apply (roll-forward)
Get the Most out of Oracle Data Guard!64 9/29/2017
BUFFER CACHE
datafilesfuzzy
datafiles
dbw0
stout_ludo LGWR RFS MRP0
ol stbl
arcarc
ckpt
65. Block status
Get the Most out of Oracle Data Guard!65 9/29/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
66. Block status
Get the Most out of Oracle Data Guard!66 9/29/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
67. Consistent datafiles == consistent database
Get the Most out of Oracle Data Guard!67 9/29/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
68. Cloning solution based on Standby Database
Get the Most out of Oracle Data Guard!68 9/29/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
69. Cloning Steps
Get the Most out of Oracle Data Guard!69 9/29/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’;
70. Cloning Steps
Get the Most out of Oracle Data Guard!70 9/29/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
71. Get the Most out of Oracle Data Guard!71 9/29/2017
Demo?
72. Get the Most out of Oracle Data Guard!72 9/29/2017
Let me do one more example
73. Database reorganization live
Get the Most out of Oracle Data Guard!73 9/29/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
74. Get the Most out of Oracle Data Guard!
Conclusions
9/29/201774
75. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
Questions?
Oracle Open World 2017
#OOW17
Ludovico Caldara
Oracle ACE Director
Senior Consultant