Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 © 2013 Julian Dyke juliandyke.com Understanding GoldenGate Julian Dyke Independent Consultant Web Version.

Similar presentations


Presentation on theme: "1 © 2013 Julian Dyke juliandyke.com Understanding GoldenGate Julian Dyke Independent Consultant Web Version."— Presentation transcript:

1 1 © 2013 Julian Dyke juliandyke.com Understanding GoldenGate Julian Dyke Independent Consultant Web Version

2 © 2013 Julian Dyke juliandyke.com Agenda Introduction Configuration Redo versus Trail 2

3 © 2013 Julian Dyke juliandyke.com 3 Introduction

4 © 2013 Julian Dyke juliandyke.com GoldenGate Introduction Oracle GoldenGate is a heterogeneous replication solution GoldenGate (the company and the product) was acquired by Oracle Corporation in GoldenGate supports: Zero Downtime Upgrade and Migration System Integration / Data Synchronization Query and Report offloading Real-time Data distribution Real-time Data Warehousing Live standby database Active-active high availability Controversial replacement for Oracle Streams 4

5 © 2013 Julian Dyke juliandyke.com GoldenGate Supported Topologies 5 Unidirectional Bi-directionalPeer-to-Peer Cascading ConsolidationBroadcast Scalability, Database Tiering Data Warehouse Data Distribution Instant Failover, Active-ActiveLoad Balancing, High AvailabilityReporting Instance

6 © 2013 Julian Dyke juliandyke.com GoldenGate Supported Databases Oracle GoldenGate for Non Oracle Databases Supported non-oracle databases include: IBM DB2 on Windows, UNIX and Linux Microsoft SQL Server 2000, 2005, 2008 Sybase on Windows, UNIX and Linux Teradata on Windows, UNIX and Linux MySQL on Windows, UNIX and Linux TimesTen on Windows and Linux (delivery only) 6

7 © 2013 Julian Dyke juliandyke.com GoldenGate Licensing Both capture and apply databases must be fully licensed 7 Source – Oracle Technology Global Price List – 15 March 2013 ProductProcessor License Enterprise Edition47,500 Real Application Clusters23,000 Active Data Guard10,000 GoldenGate17,500 Management Pack for GoldenGate3,500 GoldenGate licenses (Oracle to Oracle) include: XStream Active Data Guard Source – Oracle Fusion Middleware Licensing Information 11gR1

8 © 2013 Julian Dyke juliandyke.com GoldenGate Conventions This presentation was developed in Oracle GoldenGate Virtual Box Oracle Enterprise Linux 5 Update 6 Oracle Database NameAbbreviationValue Home Directory$GG_HOME/home/oracle/goldengate GoldenGate SchemaGGSCHEMAGG01 SourceTarget Hostnamevm4vm5 Database NameNORTHSOUTH Environment: Databases:

9 © 2013 Julian Dyke juliandyke.com GoldenGate Streams versus GoldenGate 9 PropagateCaptureApply Oracle Streams Oracle GoldenGate Source Server Target Server Data PumpExtractReplicat Source Server Target Server

10 © 2013 Julian Dyke juliandyke.com GoldenGate Basic Architecture 10 Manager ReplicatData PumpExtract Manager Target Database Source Database Local Trail Remote Trail Target Server Source Server

11 © 2013 Julian Dyke juliandyke.com GoldenGate Configuration Options 11 Classic Capture Integrated Capture Redo Logs + Archive Logs Archive Logs Only Upstream Capture Downstream Capture

12 © 2013 Julian Dyke juliandyke.com GoldenGate Classic Capture 12 Extract Data Pump Local Trail Source Database Online Redo/Archive Logs

13 © 2013 Julian Dyke juliandyke.com GoldenGate Integrated Capture 13 Extract Data Pump LCR Log Miner Local Trail Source Database Online Redo/Archive Logs

14 © 2013 Julian Dyke juliandyke.com GoldenGate Downstream Capture Real Time Downstream Mode 14 Online Redo Logs Source Server Downstream Server LCR Standby Redo Logs Logical Change Records Integrated Extract Trail File Capture Primary DatabaseStandby Database

15 © 2013 Julian Dyke juliandyke.com GoldenGate Downstream Capture Downstream Archive Log Mode 15 Online Redo Logs Source Server Downstream Server LCR Archive Redo Logs Logical Change Records Integrated Extract Trail File Capture Primary DatabaseStandby Database

16 © 2013 Julian Dyke juliandyke.com GoldenGate Bi-Directional Replication Also known as Active-Active Replication 16 CaptureReplicat Capture Data Pump Server A Server B Online Redo Logs Local Trail Remote Trail Local Trail

17 © 2013 Julian Dyke juliandyke.com GoldenGate Supported Data Types The following data types are supported for both classic and integrated capture NUMBER BINARY FLOAT BINARY DOUBLE CHAR VARCHAR2 LONG NCHAR NVARCHAR2 RAW LONG RAW DATE TIMESTAMP 17

18 © 2013 Julian Dyke juliandyke.com GoldenGate Supported Data Types There is limited support in classic capture for the following data types: INTERVAL DAY INTERVAL YEAR TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE The following data types are not supported Abstract data types with scalar, LOBs, VARRAYs, nested tables, REFS ANYDATA ANYDATASET ANYTYPE BFILE MLSLABEL ORDDICOM TIMEZONE_ABBR URITYPE UROWID 18

19 © 2013 Julian Dyke juliandyke.com GoldenGate Supported Data Types The following data types are supported for both classic and integrated capture NUMBER BINARY FLOAT BINARY DOUBLE CHAR VARCHAR2 LONG NCHAR NVARCHAR2 RAW LONG RAW DATE TIMESTAMP 19

20 © 2013 Julian Dyke juliandyke.com GoldenGate Restrictions Neither capture method supports Database replay EXTERNAL tables Materialized views with ROWID Classic capture does not support IOT mapping tables Key compressed IOTs XMLType tables stored as XML Object Relational Distributed Transactions XA and PDML distributed transactions Capture from OLTP table compressed tables Capture from compressed tablespaces Exadata Hybrid Columnar Compression (EHCC) 20

21 © 2013 Julian Dyke juliandyke.com GoldenGate Oracle-Reserved Schemas The following schema names are reserved by Oracle and should not be configured for GoldenGate replication: 21 $AURORAEXFSYSREPADMIN $JISMDSYSSYS $ORBODMSYSMAN $UNAUTHENTICATEDODM_MTRSYSTEM $UTILITYOLAPSYSTRACESVR ANONYMOUSORDPLUGINSWKPROXY AURORAORDSYSWKSYS CTXSYSOSE$HTTP$ADMINWMSYS DBSNMPOUTLNXDB DMSYSPERFSTAT DSSYSPUBLIC

22 © 2013 Julian Dyke juliandyke.com GoldenGate RAC Support RAC support has some limitations in classic capture mode Extract can only run against one instance If instance fails, Manager must be stopped on failed node: Manager and extract must be started on a surviving node Failover can be configured in Oracle Grid Infrastructure Additional archive log switching may be required in archive log mode Before shutting down extract process Insert dummy record into a source table Switch log files on all nodes Additional configuration required to access ASM instance Shared storage for trails can be: OCFS ACFS DBFS No mention of NFS in the documentation 22

23 © 2013 Julian Dyke juliandyke.com 23 Configuration

24 © 2013 Julian Dyke juliandyke.com GoldenGate Installation Download the following from 24 ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip Zip file is approximately 90MB $ cd /home/oracle/goldengate $ unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip On each server create GG_HOME mkdir /home/oracle/goldengate Copy zip file to GG_HOME Install bundle patch in Oracle home for integrated capture Add GG_HOME to profile export PATH=/home/oracle/goldengate:$PATH export LD_LIBRARY_PATH=/home/oracle/goldengate:$LD_LIBRARY_PATH

25 © 2013 Julian Dyke juliandyke.com GoldenGate GGSCI Most GoldenGate configuration can be performed within GGSCI Command-line utility For a list of available commands: 25 $ ggsci GGSCI 1> HELP For help on with an individual command: GGSCI 2> HELP GGSCI 1> INFO ALL For example: The best source of information is: Oracle GoldenGate Windows and UNIX Reference Guide

26 © 2013 Julian Dyke juliandyke.com GoldenGate Parameter Files Each process has a text-based parameter file Parameter files can be edited using GGSCI or with a text editor 26 MAP US03.T54 TARGET US01.T55, & COLMAP (col1=c1, col3=c2, col4=c3, col2=c4); Continuation character is ampersand -- This is a comment Comments are prefixed by -- and terminated by end of line $GG_HOME/dirprm/rep1.prm Stored in $GG_HOME/dirprm directory e.g. ggsci GGSCI (vm5) 1> EDIT PARAMS rep1

27 © 2013 Julian Dyke juliandyke.com GoldenGate Subdirectories By convention, configuration and trail files are stored in subdirectories within $GG_HOME Subdirectories are created within GGSCI: 27 ggsci GGSCI (vm4) 1> CREATE SUBDIRS Creating subdirectories under current directory /home/oracle/goldengate Parameter files /home/oracle/goldengate/dirprm: created Report files /home/oracle/goldengate/dirrpt: created Checkpoint files /home/oracle/goldengate/dirchk: created Process status files /home/oracle/goldengate/dirpcs: created SQL script files/home/oracle/goldengate/dirsql: created Database definitions files/home/oracle/goldengate/dirdef: created Extract data files /home/oracle/goldengate/dirdat: created Temporary files /home/oracle/goldengate/dirtmp: created Stdout files /home/oracle/goldengate/dirout: created

28 © 2013 Julian Dyke juliandyke.com GoldenGate Schema Owner A schema owner is required to own GoldenGate objects Can grant specific privileges to owner or just use DBA For example GG01 28 sqlplus / as sysdba SQL> CREATE USER gg01 IDENTIFIED BY gg01; SQL> GRANT CONNECT, RESOURCE, DBA TO gg01; Schema owner must be specified in GoldenGate parameters file: ggsci GGSCI 1> EDIT PARAMS./GLOBALS GGSCHEMA gg01 In this example parameter file is /home/oracle/goldengate/GLOBALS

29 © 2013 Julian Dyke juliandyke.com GoldenGate Tablespace Recommended for both source and target servers 29 sqlplus / as sysdba SQL> CREATE TABLESPACE goldengate DATAFILE '/u01/app/oradata/NORTH/goldengate01.dbf SIZE 100M AUTOEXTEND ON; Tablespace created. SQL> ALTER USER gg01 DEFAULT TABLESPACE goldengate; User altered. Ensure AUTOEXTEND is enabled

30 © 2013 Julian Dyke juliandyke.com GoldenGate Role On source server create GGS_GGSUSER_ROLE 30 cd /home/oracle/goldengate sqlplus / as sysdba GGS Role setup script This script will drop and recreate the role GGS_GGSUSER_ROLE Enter GoldenGate schema name:GG01 Grant role to GGSCHEMA user: cd /home/oracle/goldengate sqlplus / as sysdba SQL> GRANT GGS_GGSUSER_ROLE TO gg01;

31 © 2013 Julian Dyke juliandyke.com GoldenGate Manager Process Manager process controls all GoldenGate processes on a server Including extract and replicat processes Configured in parameter file 31 ggsci GGSCI 1> EDIT PARAMS MGR PORT 7809 DYNAMICPORTLIST Executable is $GG_HOME/mgr Manager process is started from GGSCI ggsci GGSCI 2> START MANAGER

32 © 2013 Julian Dyke juliandyke.com GoldenGate Extract Process Captures and stores changes in local trail file Classic capture Captures changes from online redo log or archived redo log Fetches additional data from database Integrated capture Captures changes from log miner Uses extract executable Sample parameter file: 32 EXTRACT ex1 USERID gg01, PASSWORD gg01 EXTTRAIL /home/oracle/goldengate/dirdat/ex TABLE US03.*;

33 © 2013 Julian Dyke juliandyke.com GoldenGate Data Pump Process Propagates contents of local trail file to remote trail file Uses extract executable In basic configurations same functionality can be achieved using extract process Sample parameter file: 33 EXTRACT dp1 USERID gg01, PASSWORD gg01 RMTHOST vm5, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/rt TABLE US03.*;

34 © 2013 Julian Dyke juliandyke.com GoldenGate Replicat Process Reads changes from remote trail and applies them to database Uses replicat executable Sample parameter file: 34 REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US03.* TARGET US03.*;

35 © 2013 Julian Dyke juliandyke.com GoldenGate Processes and Trails New processes and trails must be added using GGSCI. For example on the source server: 35 ggsci GGSCI> ADD EXTRACT ex1, TRANLOG, BEGIN NOW GGSCI> ADD EXTTRAIL /home/oracle/goldengate/dirdat/ex, EXTRACT ex1 GGSCI> ADD EXTRACT dp1 EXTTRAILSOURCE /home/oracle/goldengate/dirdat/ex GGSCI> ADD RMTTRAIL /home/oracle/goldengate/dirdat/rt, EXTRACT dp1 On the target server: ggsci GGSCI> ADD REPLICAT rep1, EXTTRAIL /home/oracle/goldengate/dirdat/rt

36 © 2013 Julian Dyke juliandyke.com GoldenGate Checkpoint Table Must exist in target database Records location in trail of last change applied to database Added using GGSCI 36 ggsci GGSCI> DBLOGIN USERID gg01, PASSWORD gg01 GGSCI> ADD CHECKPOINTTABLE gg01.checkpointtable Location must be added to GLOBALS parameters on target server ggsci GGSCI> EDIT PARAMS./GLOBALS GGSCHEMA gg01 CHECKPOINTTABLE gg01.checkpointtable

37 © 2013 Julian Dyke juliandyke.com GoldenGate Starting Processes Processes are started from GGSCI On the source server 37 ggsci GGSCI> START EXTRACT ex1 GGSCI> START EXTRACT dp1 ggsci GGSCI> START REPLICAT rep1 On the target server The EXTRACT and REPLICAT keywords can be omitted Use equivalent STOP command to stop processes

38 © 2013 Julian Dyke juliandyke.com GoldenGate Checking Process Status Check process status using GGSCI INFO ALL: 38 ggsci GGSCI (vm4.juliandyke.com) 1> INFO ALL Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING DP1 00:00:00 00:00:04 EXTRACT ABENDED DP2 00:00:00 24:23:14 EXTRACT RUNNING EX1 00:00:00 00:00:05 EXTRACT STOPPED EX2 00:00:00 02:34:41 ggsci GGSCI (vm5.juliandyke.com) 1> INFO ALL Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP1 00:00:00 00:00:05 REPLICAT RUNNING REP2 00:00:00 00:00:04

39 © 2013 Julian Dyke juliandyke.com GoldenGate Viewing Log Files Processes are logged in report files stored in $GG_HOME/dirrpt e.g. ex1 process will be logged in $GG_HOME/dirrpt/EX1.rpt Up to 10 copies are retained EX1.rpt (latest), EX11.rpt, EX12.rpt, … EX19.rpt (oldest) If a process abends then check the report file for details Report files can also be viewed using GGSCI 39 ggsci GGSCI> VIEW REPORT ex1 Output is filtered through more utility

40 © 2013 Julian Dyke juliandyke.com GoldenGate Trail Files Stored in $GG_HOME/dirdat directory by convention User must specify a two-character prefix e.g. ex File names are generated automatically by extract process e.g. ex ex ex etc Naming conventions require some thought 40

41 © 2013 Julian Dyke juliandyke.com GoldenGate Trail Files Changes are only stored in trail file when a transaction commits If a transaction rolls back then no changes are stored Archive logs must be available for long running transactions Index changes are generally not stored IOT changes are stored Undo changes are not stored Only redo Changes to data dictionary are not stored including Objects, tables, columns, statistics Segments / extents 41

42 © 2013 Julian Dyke juliandyke.com GoldenGate Trail Files – Data Representation NUMBER 4-byte length followed by ASCII characters e.g DATE 2-bytes followed by 19 ASCII characters in the format: D D A A A FF FF FF FF YYYY-MM-DD:HH24:MI:SS NULL values are stored as For example :22:39:56 is NULL values are stored as

43 © 2013 Julian Dyke juliandyke.com GoldenGate Trail Files – Data Representation VARCHAR2 4-byte length followed by ASCII characters e.g. GoldenGate in VARCHAR2(20) 43 NULL values stored as: A 47 6F 6C E CHAR 2-byte length followed by ASCII characters space-padded e.g. GoldenGate in CHAR(20) F 6C E FF FF FF FF NULL values stored as:

44 © 2013 Julian Dyke juliandyke.com GoldenGate Logdump Utility Dumps contents of GoldenGate trails from Local trail Remote trail 44 logdump Logdump> GHDR ON Logdump> FILEHEADER DETAIL Logdump> DETAIL DATA Logdump> USERTOKEN DETAIL Logdump> RECLEN 128 Logdump> OPEN To show next record use NEXT or N Logdump> NEXT # or N To view data set the following parameters: To return to start of file Logdump> POS 0

45 © 2013 Julian Dyke juliandyke.com GoldenGate Logdump Sample output 45 Hdr-Ind : E (x45) Partition :. (x04) UndoFlag :. (x00) BeforeAfter: A (x41) RecLength : 51 (x0033) IO Time : 2013/04/05 06:24: IOType : 5 (x05) OrigNode : 255 (xff) TransInd :. (x01) FormatType : R (x52) SyskeyLen : 0 (x00) Incomplete :. (x00) AuditRBA : 80 AuditPos : Continued : N (x00) RecCount : 1 (x01) 2013/04/05 06:24: Insert Len 51 RBA 9060 Name: US03.T1 After Image: Partition 4 G m | SY d f 424a f | S OBJERROR$ c 45 |......TABLE Column 0 (x0000), Len 6 (x0006) | Column 1 (x0001), Len 7 (x0007) |....SYS Column 2 (x0002), Len 13 (x000d) f42 4a f52 24 |....OBJERROR$ Column 3 (x0003), Len 9 (x0009) c 45 |....TABLE

46 © 2013 Julian Dyke juliandyke.com GoldenGate Minimal Supplemental Logging Extract processes will not start unless minimal supplemental logging has been configured in database Minimal supplemental logging is used for: chained blocks blocks in index clusters Minimal supplemental logging is enabled using: 46 SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

47 © 2013 Julian Dyke juliandyke.com GoldenGate Supplemental Logging Supplemental logging should be configured for all tables being replicated Enabled using GGSCI. For example: 47 ggsci GGSCI 1> DBLOGIN USERID us01 PASSWORD us01 GGSCI 2> ADD TRANDATA t1 Logging of supplemental redo data enabled for table US01.T1. Internally this executes the following DDL: ALTER TABLE "US01"."T1" ADD SUPPLEMENTAL LOG GROUP "GGS_76111" ("C1") ALWAYS /* GOLDENGATE_DDL_REPLICATION */ where is the OBJ# of the table

48 © 2013 Julian Dyke juliandyke.com GoldenGate Sequences Sequences are not supported by default. Additional configuration is required: Sequences will not be identical across the databases Sequence in target database will never be lower than the same sequence on the source database 48 cd /home/oracle/goldengate sqlplus / as sysdba The sequence.sql script creates the following procedures in the GGSCHEMA : SEQTRACE GETSEQFLUSH REPLICATESEQUENCE UPDATESEQUENCE To install sequence support on each server run:

49 © 2013 Julian Dyke juliandyke.com GoldenGate Sequences Extract Process 49 Replicat process: EXTRACT ex1 USERID gg01, PASSWORD gg01 EXTTRAIL /home/oracle/goldengate/dirdat/ex SEQUENCE us03.*; TABLE us03.*; Data Pump process: EXTRACT dp1 USERID gg01, PASSWORD gg01 RMTHOST vm5, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/rt SEQUENCE us03.*; TABLE us03.*; REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US03.SEQ1, TARGET US03.SEQ1; MAP US03.T*, TARGET US03.*;

50 © 2013 Julian Dyke juliandyke.com GoldenGate TRUNCATE Statements TRUNCATE statements are not supported by default TRUNCATE support can be configured Standalone As part of full DDL support These options are mutually exclusive Standalone TRUNCATE support Does not support partitioned tables Configure full DDL support for partitions/subpartitions Enabled using GETTRUNCATES parameter Must be specified BEFORE tables/mappings in parameter file 50

51 © 2013 Julian Dyke juliandyke.com GoldenGate TRUNCATE Statements Extract process 51 REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE GETTRUNCATES MAP US03.*, TARGET US03.*; Data pump process Replicat process EXTRACT dp1 USERID gg01, PASSWORD gg01 RMTHOST vm5, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/rt GETTRUNCATES TABLE us03.t*; EXTRACT ex1 USERID gg01, PASSWORD gg01 EXTTRAIL /home/oracle/goldengate/dirdat/ex GETTRUNCATES TABLE us03.t*;

52 © 2013 Julian Dyke juliandyke.com GoldenGate DDL Support DDL is not supported by default To install DDL support on the source server: 52 cd /home/oracle/goldengate sqlplus / as sysdba No configuration necessary on target server for DDL support DDL support is implemented using System DDL trigger GGS_DDL_TRIGGER_BEFORE DDL Replication Package GGS_MARKER table GGS_DDL_HIST table

53 © 2013 Julian Dyke juliandyke.com GoldenGate DDL Support Extract process: 53 EXTRACT ex1 USERID gg01, PASSWORD gg01 EXTTRAIL /home/oracle/goldengate/dirdat/ex DDL INCLUDE ALL TABLE US03.t*; Replicat process REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE DDL INCLUDE ALL DDLERROR DEFAULT IGNORE MAP US03.*, TARGET US03.*; Data Pump process: EXTRACT dp1 USERID gg01, PASSWORD gg01 RMTHOST vm5, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/rt DDL INCLUDE ALL TABLE US03.t*;

54 © 2013 Julian Dyke juliandyke.com GoldenGate Mappings Mappings between source and target can be specified At schema level At table level At column level All mappings are performed by the replicat process Mappings are specified in replicat parameter file 54 REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US03.* TARGET US01.*; Table level mapping Schema level mapping REPLICAT rep1 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US03.T52 TARGET US01.T53;

55 © 2013 Julian Dyke juliandyke.com GoldenGate Mappings Column Level Mappings require a definition generated on source and copied to target On the source 55 cd /home/oracle/goldengate ggsci GGSCI 1> EDIT PARAMS defgen1 DEFSFILE./dirdef/defgen1.def USERID us03 PASSWORD us03 TABLE us03.t54; Generate the definitions using cd /home/oracle/goldengate paramfile /home/oracle/goldengate/dirprm/defgen1.prm Copy $GG_HOME/dirdef/defgen1.def to same location on target

56 © 2013 Julian Dyke juliandyke.com GoldenGate Mappings Configure replicat parameters 56 REPLICAT rep1 USERID gg01, PASSWORD gg01 SOURCEDEFS./dirdef/defgen1.def DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US03.T54 TARGET US01.T55, & COLMAP (col1=c1, col3=c2, col4=c3, col2=c4); Note – COLMAP syntax is = Mapping is written to the report file e.g.: MAP resolved (entry US03.T54): MAP "US03"."T54" TARGET US01.T55, COLMAP (col1=c1, col3=c2, col4=c3, col2=c4); Using the following key columns for target table US01.T55: COL1.

57 © 2013 Julian Dyke juliandyke.com GoldenGate Integrated Capture Requires Oracle or above Bundle patch Uses additional memory in streams pool May need to increase MEMORY_TARGET parameter STREAMS_POOL parameter Size of /dev/shm (specified in /etc/fstab) To avoid warnings 57 SQL> ALTER SYSTEM SET compatible = ' ' SCOPE=SPFILE; SQL> STARTUP FORCE;

58 © 2013 Julian Dyke juliandyke.com GoldenGate Integrated Capture Grant administrative privileges to GGSCHEMA 58 BEGIN dbms_goldengate_auth.grant_admin_privilege ( grantee => 'GG01', privilege_type => 'CAPTURE', grant_select_privileges => TRUE ); END; / On source server register extract group with database ggsci GGSCI (vm4) 1> DBLOGIN USERID gg01 PASSWORD gg01 Successfully logged into database. GGSCI (vm4) 2> REGISTER EXTRACT ex2 DATABASE :04:01 INFO OGG Extract EX2 successfully registered with database at SCN

59 © 2013 Julian Dyke juliandyke.com GoldenGate Integrated Capture Extract process parameters 59 EXTRACT ex2 USERID gg01, PASSWORD gg01 TRANLOGOPTIONS INTEGRATED PARAMS (MAX_SGA_SIZE 100) EXTTRAIL /home/oracle/goldengate/dirdat/il TABLE us01.t101; Data pump process parameters EXTRACT dp2 USERID gg01, PASSWORD gg01 RMTHOST vm5, MGRPORT 7809 RMTTRAIL /home/oracle/goldengate/dirdat/ir TABLE US01.*; Replicat process parameters REPLICAT rep2 USERID gg01, PASSWORD gg01 ASSUMETARGETDEFS DISCARDFILE /home/oracle/goldengate/discards, PURGE MAP US01.* TARGET US01.*;

60 © 2013 Julian Dyke juliandyke.com GoldenGate Integrated Capture New processes and trails must be added using GGSCI. For example on the source server: 60 ggsci GGSCI> ADD EXTRACT ex2 INTEGRATED TRANLOG, BEGIN NOW GGSCI> ADD EXTTRAIL /home/oracle/goldengate/dirdat/il, EXTRACT ex2 GGSCI> ADD EXTRACT dp2 EXTTRAILSOURCE /home/oracle/goldengate/dirdat/il GGSCI> ADD RMTTRAIL /home/oracle/goldengate/dirdat/ir, EXTRACT dp2 On the target server: ggsci GGSCI> ADD REPLICAT rep2, EXTTRAIL /home/oracle/goldengate/dirdat/ir Start processes in GGSCI

61 © 2013 Julian Dyke juliandyke.com 61 Redo Versus Trail

62 © 2013 Julian Dyke juliandyke.com Redo versus Trail Single-Row Inserts INSERT INTO t2 VALUES (1,Alpha); COMMIT; Index Insert Commit TX Header RedoTrail Insert Row 1Insert Row DRP Undo INSERT INTO t2 VALUES (2,Beta); IRP Redo DRP Undo IRP Redo

63 © 2013 Julian Dyke juliandyke.com Redo versus Trail Multi-Row Inserts INSERT INTO t2 SELECT * FROM t1; COMMIT; QMI Redo Index Insert Commit TX Header Redo Trail Insert Row 1Insert Row 2Insert Row 3Insert Row 4Insert Row 5Insert Row QMD Undo

64 © 2013 Julian Dyke juliandyke.com Redo versus Trail Direct Inserts INSERT /*+ APPEND */ INTO t2 SELECT * FROM t1; COMMIT; Direct Load Index Insert Commit TX Header RedoTrail Insert Row 1Insert Row 2Insert Row 3Insert Row 4Insert Row 5Insert Row 6

65 © 2013 Julian Dyke juliandyke.com Redo versus Trail Single-Row Updates UPDATE t2 SET c2 = Alpha WHERE c1 = 1; COMMIT; Commit TX Header Redo Trail Update Row URP Undo Update Row URP Redo URP Undo Update Row 3 UPDATE t2 SET c2 = Beta WHERE c1 = 2; UPDATE t2 SET c2 = Gamma WHERE c1 = 3;

66 © 2013 Julian Dyke juliandyke.com Redo versus Trail Multi-Row Updates UPDATE t2 SET c3 = c3 * 1.1; COMMIT; Commit TX Header Redo Trail Update Row URP Undo Update Row URP Redo URP Undo Update Row 3

67 © 2013 Julian Dyke juliandyke.com Redo versus Trail Single-Row Deletes DELETE FROM t2 WHERE c1 = 1; COMMIT; Commit TX Header Redo Trail Delete Row IRP Undo Delete Row DRP Redo Index Redo DRP Redo Index Undo IRP Undo DELETE FROM t WHERE c1 = 2; Index Redo Index Undo

68 © 2013 Julian Dyke juliandyke.com Redo versus Trail Multi-Row Deletes DELETE FROM t2; COMMIT; Commit TX Header Redo Trail Delete Row IRP Undo Delete Row DRP Redo Index Redo DRP Redo Index Undo IRP Undo Index Redo Index Undo

69 juliandyke.com 69 © Julian Dyke Thank You For Your Interest


Download ppt "1 © 2013 Julian Dyke juliandyke.com Understanding GoldenGate Julian Dyke Independent Consultant Web Version."

Similar presentations


Ads by Google