29. Oracle GoldenGate Topologies Bi-Directional Live Standby or Active-Active for HA Peer-to-Peer Load Balancing, Multi-Master Unidirectional Query Offloading Broadcast Data Distribution Integration/Consolidation Data Warehouse Cascading Data Marts
30. Integration with Data Warehousing Integration via: Staging tables Flat files Messaging
93. Cross Platform Migration 1 2 3,4 5 6,7 9i Clone 10g Solaris 9i Solaris 10g Linux Start GoldenGate TDM’s Capture process Set up Clone database, then Upgrade to 10g Cross platform transportable tablespaces metadata export Use a full database NOROWS export (Views, Packages, etc) Set up a new 10g vanilla target Cross platform transportable tablespaces metadata import Full import with IGNORE option
94. Cross Platform Migration 1 2 5 8 3,4 6,7 9i Clone 10g Solaris 9i Solaris 10g Linux Start GoldenGate TDM’s Capture process Set up Clone database, then Upgrade to 10g Cross platform transportable tablespaces metadata export Use a full database NOROWS export (Views, Packages, etc) Set up a new 10g vanilla target Cross platform transportable tablespaces metadata import Full import with IGNORE option Start GoldenGate TDM Apply process at target **SWITCHOVER** (not depicted)
95. Cross Platform Migration 1 5 8 10 11 2 3,4 6,7 9i Clone 10g Solaris 9i Solaris Failback contingency 10g Linux Start GoldenGate TDM’s Capture process Set up Clone database, then Upgrade to 10g Cross platform transportable tablespaces metadata export Use a full database NOROWS export (Views, Packages, etc) Set up a new 10g vanilla target Cross platform transportable tablespaces metadata import Full import with IGNORE option Start GoldenGate TDM Apply process at target Verify data (optional) **SWITCHOVER** (not depicted) Start TDM Capture at target (new source) Start TDM Apply at target (old source)
99. Identifies and reports on data discrepancies between heterogeneous databases with minimal impact on infrastructure
100. Companies can audit and verify large volumes of data across different business applications with certainty
101.
102. GoldenGate Veridata: How it Works The user chooses tables or files on the source and target databases The comparison is initiated from the GUI, command line or batch As the databases continue to change, GoldenGate Veridata reports: Persistent discrepancies In-flight data discrepancies (user configurable)
107. Create the Manager, Extract and Replicat Process ./ggsci GGSCI (linux01.oncalldba.com) 1> edit params mgr PORT 7809 USERID ggs_owner, PASSWORD ggs_owner Source – Extract Process GGSCI (linux01.oncalldba.com) 1> ADD EXTRACT ext1, TRANLOG, BEGIN NOW EXTRACT added. GGSCI (linux01.oncalldba.com) 2> ADD RMTTRAIL /home/oracle/goldengate/dirdat/rt, EXTRACT ext1 RMTTRAIL added. Target – Replicat Process GGSCI (linux03.oncalldba.com) 1> ADD REPLICAT rep1, EXTTRAIL /home/oracle/goldengate/dirdat/rt REPLICAT added.
108. Start Manager (Source) [oracle@linux01 goldengate]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 10.4.0.19 Build 002 Linux, x86, 32bit (optimized), Oracle 10 on Sep 17 2009 23:49:42 Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved. GGSCI (linux01.oncalldba.com) 1> start manager Manager started. GGSCI (linux01.oncalldba.com) 2> info all Program Status Group Lag Time Since Chkpt MANAGER RUNNING
109. Start Manager (Target) [oracle@linux03 goldengate]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 10.4.0.19 Build 002 Linux, x86, 32bit (optimized), Oracle 11 on Sep 29 2009 08:50:50 Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved. GGSCI (linux03.oncalldba.com) 1> start manager Manager started. GGSCI (linux03.oncalldba.com) 2> info all Program Status Group Lag Time Since Chkpt MANAGER RUNNING
110. Source – Start Extract Process GGSCI (linux01.oncalldba.com) 4> view params ext1 EXTRACT ext1 USERID ggs_owner@oncalldb.world,passwordggs_owner RMTHOST linux03, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/rt DDL INCLUDE ALL TABLE ggs_owner.myobjects; ; GGSCI (linux01.oncalldba.com) 5> start extract ext1 Sending START request to MANAGER ... EXTRACT EXT1 starting GGSCI (linux01.oncalldba.com) 6> info extract ext1 EXTRACT EXT1 Last Started 2010-08-13 13:12 Status RUNNING Checkpoint Lag 03:00:32 (updated 00:00:00 ago) Log Read Checkpoint Oracle Redo Logs 2010-08-13 10:12:23 Seqno 4, RBA 19823616
111. Target – Start Replicat Process GGSCI (linux03.oncalldba.com) 3> view params rep1 REPLICAT rep1 ASSUMETARGETDEFS USERID ggs_owner, PASSWORD ggs_owner discardfile /home/oracle/goldengate/dirout/discard.txt,append DDL INCLUDE MAPPED MAP ggs_owner.myobjects, TARGET ggs_owner.myobjects; GGSCI (linux03.oncalldba.com) 4> start replicat rep1 Sending START request to MANAGER ... REPLICAT REP1 starting GGSCI (linux03.oncalldba.com) 5> info replicat rep1 REPLICAT REP1 Last Started 2010-08-13 13:15 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:00:04 ago) Log Read Checkpoint File /home/oracle/goldengate/dirdat/rt000010 2010-08-13 13:12:55.105247 RBA 1030
112. Test DDL Replication Create a table and index on source database [oracle@linux01 ~]$ sqlplusggs_owner/ggs_owner SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 13 13:09:38 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> create table myobjects as select * from dba_objects where 1=2; Table created. SQL> alter table myobjects add constraint pk_myobjects 2 primary key (object_id); Table altered.
113. Test DDL Replication On Target database MYOBJECTS table and index created SQL> descmyobjects Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(30) OBJECT_NAME VARCHAR2(128) SUBOBJECT_NAME VARCHAR2(30) OBJECT_ID NOT NULL NUMBER DATA_OBJECT_ID NUMBER OBJECT_TYPE VARCHAR2(19) CREATED DATE LAST_DDL_TIME DATE TIMESTAMP VARCHAR2(19) STATUS VARCHAR2(7) TEMPORARY VARCHAR2(1) SQL> select index_name from user_indexes where table_name='MYOBJECTS'; INDEX_NAME ------------------------------ PK_MYOBJECTS
114. Test Online Change Synchronization INSERT rows on source tables SQL> !date Fri Aug 13 13:24:14 WST 2010 SQL> insert into myobjects select * from dba_objects where owner='SYSMAN'; 1341 rows created. SQL> commit; Commit complete. SQL> !date Fri Aug 13 13:27:01 WST 2010 SQL> insert into myobjects select * from dba_objects where owner='SYS'; 22937 rows created. SQL> commit; Commit complete.
115. Test Online Change Synchronization SQL> !date Fri Aug 13 13:24:44 WST 2010 SQL> select count(*) from myobjects; COUNT(*) ---------- 1341 SQL> !date Fri Aug 13 13:27:14 WST 2010 SQL> select count(*) from myobjects; COUNT(*) ---------- 24278 Check target tables to see that all the rows have been inserted
116. Monitor Replicat Progress GGSCI (linux03.oncalldba.com) 8> stats replicat rep1 Start of Statistics at 2010-08-13 13:35:39. DDL replication statistics: *** Total statistics since replicat started *** Operations 2.00 Mapped operations 2.00 Unmapped operations 0.00 Other operations 0.00 Excluded operations 0.00 Errors 0.00 Retried errors 0.00 Discarded errors 0.00 Ignored errors 0.00 Replicating from GGS_OWNER.MYOBJECTS to GGS_OWNER.MYOBJECTS: *** Total statistics since 2010-08-13 13:24:33 *** Total inserts 24278.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 24278.00
117. Cleanup – some more DDL Replication SOURCE SQL> truncate table myobjects; Table truncated. TARGET SQL> select count(*) from myobjects; COUNT(*) ---------- 0 SOURCE SQL> drop table myobjects; Table dropped. TARGET SQL> select count(*) from myobjects; select count(*) from myobjects * ERROR at line 1: ORA-00942: table or view does not exist
118. Q & A gavin.soorma@oncalldba.com.au http://www.gavinsoorma.com http://www.oncalldba.com.au