SlideShare a Scribd company logo
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
GoldenGate
How to start such a project?
Mathias Zarick
Nuremberg, Nov. 17th 2015
Principal Consultant at Trivadis Delphi GmbH in Vienna
Graduated from University of Rostock / Computer Science
Trainer
– Data Guard, Architecture and Internals for advanced DBAs,
Maximum Availability Architecture Workshop, Grid Infrastructure
E-Mail: Mathias.Zarick@trivadis.com
Main focus:
– Oracle database
– Oracle high availability projects (Real Application Clusters, Data Guard, Maximum
Availability Architecture, Replication with Streams and GoldenGate)
– Backup/Recovery
– Development Lead of Trivadis Toolbox
– Developer of TVD-Standby
– Research projects in Trivadis Technology Center (TTC)
Introduction – Mathias Zarick
GoldenGate2 11-17-2015
Unser Unternehmen.
Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution
Engineering und der Erbringung von IT-Services mit Fokussierung auf -
und -Technologien in der Schweiz, Deutschland, Österreich und
Dänemark. Trivadis erbringt ihre Leistungen aus den strategischen Geschäftsfeldern:
Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme.
B E T R I E B
GoldenGate3 11-17-2015
KOPENHAGEN
MÜNCHEN
LAUSANNE
BERN
ZÜRICH
BRUGG
GENF
HAMBURG
DÜSSELDORF
FRANKFURT
STUTTGART
FREIBURG
BASEL
WIEN
Mit über 600 IT- und Fachexperten bei Ihnen vor Ort.
14 Trivadis Niederlassungen mit
über 600 Mitarbeitenden.
Über 200 Service Level Agreements.
Mehr als 4'000 Trainingsteilnehmer.
Forschungs- und Entwicklungsbudget:
CHF 5.0 Mio.
Finanziell unabhängig und
nachhaltig profitabel.
Erfahrung aus mehr als 1'900 Projekten
pro Jahr bei über 800 Kunden.
GoldenGate4 11-17-2015
Agenda
GoldenGate5 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate6 11-17-2015
What is Replication and
GoldenGate?
What is Replication? (1)
GoldenGate7 11-17-2015
Wikipedia:
– sharing information so as to ensure consistency between redundant resources
– improve reliability, fault-tolerance, or accessibility
Types with Oracle database
– physical replica:
• physical standby database with media recovery (Active Data Guard / ADG)
• easier to maintain/operate
– logical replica:
• apply SQL (using own programs or provided tools/technology)
• harder to maintain/operate
What is Replication? (2)
GoldenGate8 11-17-2015
Evolution at Oracle:
– Materialized view (snapshot) replication
– Advanced replication
– Logical Standby
– Oracle Streams
– Oracle GoldenGate
Third Party
– Shareplex (Quest now Dell)
– DataMirror / Rocket iCluster
Why Replication?
GoldenGate9 11-17-2015
(Zero-Downtime) Migrations
– change OS/platform
– change DB Version or even DB vendor
– endianness changes
– character set changes
– etc.
High availability / run several replica
– to be able to failover to a standby system
– or even to be able to update all of them simultaneously to avoid SPOFs introduced
by one central database (Multimaster replication)
Offload productive transactional systems
– read-only reporting systems
– staging area for a data warehouse
Other
– historify
– centralization / consolidation of data
– …
Why GoldenGate?
GoldenGate10 11-17-2015
All following pros and cons are summed up in comparison to former Oracle database
replication technologies
Pros
– current and most up-to-date replication technology by Oracle (Streams is
deprecated)
– better transaction throughput / performance in comparison to Streams: but in most
cases only if using classic processes
– heterogeneous replication support: e.g. replicate data from DB/2 to Oracle
– only committed transactions are transferred to target (in contrast to Streams)
Cons
– separately licensable product (Oracle Fusion Middleware product suite)
– own proprietary interface and language
– can get more complex easily
– external processes to be run and operated
Hint: see “Oracle Streams to GoldenGate Migration Utility (Doc ID 1912338.1)”
GoldenGate Architecture
GoldenGate11 11-17-2015
3 types of processes / similar to Streams
Capture – Extract
– capture transactions/changes
– can be classic/integrated
– downstream configurations are supported (transfer redo logs and capture on
another system/database)
– writes to local (recommended) or remote trails
Propagation – Data Pump Extract
– optional but recommended
– reads local trails and writes remote trails
– no database link but an own TCP/IP protocol based communication is used
Apply – Replicat
– can be classic/integrated
– reads data from trails
– construct and process SQL (classic) or LCR (integrated)
Transformations, mappings, filters can be applied on all those processes
GoldenGate Architecture (2)
GoldenGate12 11-17-2015
Source Destination
Extract
Trail files
Data Pump
Extract
Remote
Trail files
SQL or LCR
Manager
Monitor / Operation
Manager
Monitor / Operation
Redo Logs
Extract
Classic vs. Integrated Capture
Why? What to choose?
GoldenGate13 11-17-2015
Classic Capture reads online redo logs directly
– good performance!
– restrictions: some data types / structures are unsupported, e.g. compressed
tables, CDBs
– no good integration with other HA technologies, e.g. RAC and Data Guard
– special DDL triggers (DDL support objects) needed
Integrated Capture internally creates a Streams-like capture which starts LogMiner
– LCRs are created and written to queues, those LCRs are transformed to trails
– everything which was already resolved with Streams is resolved now as well
– LogMiner Performance
– less restrictions, e.g. CDB support, one extract can read from several PDBs
– better integration with RAC/ASM, Data Guard, Transparent Data Encryption
In most setups you would choose integrated, because
– it offers better support and has less limitations
– it allows to combine with HA components easier
– Oracle always emphasizes this technology regarding
future developments
Classic vs. Integrated Apply
Why? What to choose?
GoldenGate14 11-17-2015
Nonintegrated/Classic Apply = Replicat reads trails, constructs SQL and performs it
via OCI connection
– parallelization with coordinated replicat configuration
Integrated Replicat internally creates a Streams-like apply
– trails LCR AQ Queue Apply (with parallelism)
– better suited for heavy workloads (parallelization with preserving of integrity and
atomicity of source transactions)
– better integration with RAC/ASM, Data Guard, Transparent Data Encryption
In most setups you would choose integrated, because
– it offers better support and has less limitations
– it allows to combine with HA components easier
– Oracle always emphasizes this technology regarding future developments
In any case you need one replicat for one target database, in a Multitenant
configuration, one replicat can only write to one PDB
Okay – You want a Setup Example with Syntax?
GoldenGate15 11-17-2015
GGSCI (zam32) 1> DBLOGIN USERID ggadm@nad
GGSCI (zam32) 2> ADD TRANDATA zam.tab1
GGSCI (zam32) 3> EDIT PARAMS epn
EXTRACT epn
USERID ggadm@nad, PASSWORD *********
TRANLOGOPTIONS EXCLUDEUSER GGADM
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED
EXTTRAIL /home/oracle/ggtrail/NAD/ep
TABLE zam.*;
GGSCI (zam32) 4> EDIT PARAMS de
EXTRACT de
USERID ggadm@nad, PASSWORD *********
RMTHOST zam33, MGRPORT 7809
RMTTRAIL /home/oracle/ggtrail/ZERATUL/rp
TABLE zam.*;
Syntax Example Continuation
GoldenGate16 11-17-2015
GGSCI (zam32) 5> REGISTER EXTRACT epn DATABASE
GGSCI (zam32) 6> ADD EXTRACT epn, INTEGRATED TRANLOG, BEGIN NOW
GGSCI (zam32) 7> ADD EXTTRAIL /…/ggtrail/NAD/ep, EXTRACT epn
GGSCI (zam32) 8> ADD EXTRACT de, EXTTRAILSOURCE
/…/ggtrail/NAD/ep
GGSCI (zam32) 9> ADD RMTTRAIL /…/ggtrail/ZERATUL/rp, EXTRACT de
GGSCI (zam33) 1> DBLOGIN USERID ggadm@zeratul
GGSCI (zam33) 2> EDIT PARAMS app
REPLICAT app
USERID ggadm@zeratul, PASSWORD *********
ASSUMETARGETDEFS
MAP zam.*, TARGET zam.*,
COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL);;
GGSCI (zam33) 3> ADD REPLICAT app, INTEGRATED,
EXTTRAIL /home/oracle/ggtrail/ZERATUL/rp
Agenda
GoldenGate17 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate18 11-17-2015
Possible Topologies and Usecases
Topologies
There are infinite possibilities for GoldenGate topologies
Remember: flexible is good, but you need to operate and therefore understand it as well
Complexity is the biggest enemy of high availability
So try to design it as simple as possible
KISS: keep it small and simple
GoldenGate19 11-17-2015
Staging Area for Data Warehouse
GoldenGate20 11-17-2015
Online Transactional
Database
Replica as
Staging Area
Core
DWH
Often used like that with Streams
or GoldenGate
But there is a better solution,
which uses physical replication
instead of logical: Combination of
Data Guard Snapshot Standby
and Transportable Tablespaces
See
http://www.trivadis.com/sites/default/files/downloads/WhitePaper_Solution_for_Staging_Area_01.pdf
Replication ETL
Hub and Spoke Replication
Spokes or satellites are connected to
central hub
Conflicts can occur – it is a variant of
a multi-master replication
Can provide HA
Overall availability dependent on hub
availability
GoldenGate21 11/10/201511-17-2015
Multi-master Replication
1 reg. Extract
4 Pump Extracts
4 Replicats
DO NOT FEAR! ☺
Conflicts can occur
Can provide HA
Docs have
an example
for DBFS
GoldenGate22 11-17-2015
1 reg. Extract
4 Pump Extracts
4 Replicats
1 reg. Extract
4 Pump Extracts
4 Replicats
1 reg. Extract
4 Pump Extracts
4 Replicats
1 reg. Extract
4 Pump Extracts
4 Replicats
Consolidation of Data
Data is transferred to a
central location
One central reporting /
history database
Deletes might not be
transferred (historify)
GoldenGate23 11-17-2015
Other Topologies
GoldenGate24 11-17-2015
Multi-master
Reader farms to reduce workload on source: better use ADG (physical replication)
Consolidation of data to central reporting database
Historization of changes on OLTP database
– DELETE on source is INSERT on destination
Bidirectional setups for migrations
Cascaded configurations / directed networks with intermediary systems/trails
Agenda
GoldenGate25 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate26 11-17-2015
Rules for Successful Replication
Setups
Project Plan and Operation
GoldenGate27 11-17-2015
1. Define scope
2. Run a “Proof of concept”
3. Design a suitable topology and setup
4. Define rules and processes for the environment, e.g. how to handle DDL or extend
the replication setup (new schemas, tables, columns etc.)
5. Prepare a proven set of scripts, programs, documentation etc. for setup and
operation (see later)
6. Bring to operation
Operational Loop
1. Detect weaknesses in setup and monitoring
2. Improve the setup more and more with the help of suitable test systems
Typical Situation after a PoC
GoldenGate28 11-17-2015
It is believed, that usecase is suitable and replication process works as intended
Some application tests show success
Some scripts for replication setup are created
Scripts are run, replication is online and productive
And now?
Is this enough?
How to prove that everything is running as intended, even after some weeks?
Monitoring?
Are you prepared for the first runtime error? What to do then?
To be Successful, Certain Rules should be Considered
GoldenGate29 11-17-2015
Following 8 Rules are based on experience with a lot of replication setups with
different technologies
– Advanced Replication
– Materialized View Replication
– Own PL/SQL based replications
– Streams
– GoldenGate
1. KISS – KISS – KISS !!!
GoldenGate30 11-17-2015
Keep It Small and Simple!
Keep It Simple, Stupid!
– make sure you really need it that way you design it, e.g.
• Is the asynchronous transmission acceptable?
• Do you really need a read write database at destination?
– make sure, that all replicated tables have a primary key
– avoid DDL (even if supported), or at least define a tested process to perform DDL
– avoid incremental changes to your replication setup, or at least define a tested
process to do so
2. Configure Databases Correctly and Avoid
Unnecessary Overhead
GoldenGate31 11-17-2015
Capture database:
– Archivelog mode
– force logging
– minimal supplemental logging
– As of 11.2.0.4: SET enable_goldengate_replication=TRUE;
Table Level: Any additional needed supplemental logging
Worst practice:
Transmit only data you really need at target database
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
(PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS;
add trandata hr.employees
add trandata hr.heartbeat
...
3. Implement Critical Components
GoldenGate32 11-17-2015
a. Latest recommended patches, see “Oracle GoldenGate -- Oracle RDBMS Server
Recommended Patches (Doc ID 1557031.1)”
b. It is recommended to have an own repository (e.g. in GGADM schema), which
describes your setup and can be used to generate scripts, which are used for
– (re-)setup of all processes (for all objects)
– deinstallation
– verify
– rectify
c. Implement a heartbeat table, job and monitor
d. Several different monitors
– processes (manager, extract, data pump, replicat)
– log files
– resource utilization
– transport lag
– apply lag
Example Repo
GoldenGate33 11-17-2015
Actual design is dependent on complexity of the replication
Again, consider KISS!
Heartbeat
It is also a best practice to include a heartbeat table
in the setup, which is updated again and again
This table is suitable for monitoring purposes
CREATE TABLE heartbeat (
site VARCHAR2(4000) CONSTRAINT heartbeat_pk PRIMARY KEY,
stamp DATE);
INSERT INTO heartbeat (site, stamp)
SELECT dbms_reputil.global_name, sysdate FROM dual;
COMMIT;
BEGIN
dbms_scheduler.create_job(
job_name => 'heartbeat_update_job',
job_type => 'plsql_block',
job_action => 'UPDATE heartbeat SET stamp = sysdate
WHERE site = dbms_reputil.global_name;',
repeat_interval => 'freq=minutely;bysecond=0,15,30,45',
comments => 'heartbeat for goldengate replication',
enabled => TRUE
);
END;
/
GoldenGate34 11-17-2015
4. Be Prepared to Verify the Replicated Data
GoldenGate35 11-17-2015
Compare data between source and destination
Most setups aim to have same data on different sites (though sometimes this is not
the case, sometimes it is intentionally different (transformations))
So keeping the data in sync can be a considered as a general wish in many setups
You should be able to check for synchronicity/consistency and know how to
synchronize/rectify
If data differs at different sites we call it: data diverges, we will have data divergence
Often we want to have the opposite: convergent data, convergence
Compare 2 tables like this (base algorithm)
∖ ∪ ∖
Does not work for LOB and LONG columns (but there are workarounds if needed)
If too much data is transferred – think about
– comparing only PKs and “important” columns
– generate hashes based on row data to reduce network bandwidth
– partition the data and checks, e.g. compare only latest month
SELECT count(*) FROM (
(SELECT * FROM tab@vizrtdb1
MINUS
SELECT * FROM tab@vizrtdb2)
UNION ALL
(SELECT * FROM tab@vizrtdb2
MINUS
SELECT * FROM tab@vizrtdb1)
)
The brackets matter ☺
Compare Tables
GoldenGate36 11-17-2015
Function code is PL/SQL and generated by PL/SQL
– LOBs are excluded, LONG does not exist
– 1 reference site, 4 comparison sites, 51 tables
CREATE OR REPLACE FUNCTION compare RETURN NUMBER AS
v_sum NUMBER; v_count NUMBER;
BEGIN
v_sum := 0;
SELECT count(*) INTO v_count FROM (( SELECT ... FROM
PILOT.CATEGORY@VIZRTDB1 MINUS SELECT ... FROM
PILOT.CATEGORY@VIZRTDB2 ) UNION ALL ( SELECT ... FROM
PILOT.CATEGORY@VIZRTDB2 MINUS SELECT ... FROM
PILOT.CATEGORY@VIZRTDB1)); v_sum := v_sum + v_count;
... /* 204 (51 x 4) selects in total */
RETURN v_sum;
END;
/
-- runs for some time depending on data amount
-- should return zero and be included in monitoring
SELECT compare FROM dual;
Example: Generate Compare Code –
Compare (nearly) everything
GoldenGate37 11-17-2015
Other Verification and Converge Options/Tools
GoldenGate38 11-17-2015
Basic approach is always the same (see previous slide)
Available tools and packages:
– Oracle GoldenGate Veridata: GUI and CLI, extra licensable, complex
– DBMS_COMPARISON: integrated in DB / PL/SQL
– Older: DBMS_RECTIFIER_DIFF
5. Be able to Synchronize Replicated Data and to
Re-Setup
GoldenGate39 11-17-2015
You should be able to rectify (make convergent) divergent data incrementally
In some cases you will even need a complete re-setup (deinstall and install) possibly
with new data instantiation
one-button-approach would be aimed, but is hard to realize with GoldenGate
You can use converge tools as mentioned on previous slide to overcome need of
complete instantiations
Use them in combination with the process description in the section
“Resynchronizing an out-of-sync table” of “GoldenGate Configuration for Stability and
Recovery (Doc ID 1451514.1)”
– bypass table in question at regular replicat
– manual rectify of table
– create a temporary replicat which handles the rectified object
(HANDLECOLLISIONS)
– several adaptions of replicats and restarts of replicats and extract
– removal of temporary replicat
6. Perform Different Kind of Recoveries with Involved
Databases
GoldenGate40 11-17-2015
Complete recovery of source / target databases
Incomplete recovery of source / target databases
Repair GoldenGate / some scenarios would need a re-setup
Document this process carefully
7. Training for Operation
GoldenGate41 11-17-2015
Install and deinstall the replication again and again before going to production and
later on the test system
Establish a process for cloning the production environment to test system again and
again with a representative set of data and replication components
Do failure tests
Provoke some conflicts
Repair some error situations, e.g. truncate a table at target
Get familiar with log messages in ggserr.log
Get familiar with your scripts and improve continuously
8. Documentation and Operation Manual
GoldenGate42 11-17-2015
It is essential to have an up-to-date documentation and manual
All setup steps
All about monitoring
Howto’s
– (Re-)setup
– (Re-)instantiate
– Check for convergence
– Rectify / Resynchronize
– Clone to test system
– Recoveries: Complete and PITR
Agenda
GoldenGate43 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate44 11-17-2015
Conflict Resolution
Conflict Detection and Resolution
GoldenGate45 11-17-2015
What is a conflict?
– mismatch between old data (before image of row) and actual data at destination
database (update / delete)
– typically introduced if same data is changed at almost the same time at different
sites
– uniqueness conflicts can happen if using same IDs/PKs at different sites
– can also happen just because of asynchronous transmission
In case you are dealing with setups, which bear a risk for conflicts, consider the
following
Avoid conflicts by application
– Partition your data
– Avoid insert/uniqueness conflicts by generating unique numbers, e.g. SYS_GUID
or sequences with certain increment
Configure a good and exact conflict detection
– this was a matter of course for Advanced Replication and Streams but is not for
GoldenGate!
– GoldenGate: in most (default) setups only PKs are compared
Conflict Detection – The Lazy and the Exact Way
GoldenGate46 11-17-2015
Following statement at origin
Is transported to destination database exactly or kind of lazy
This is exact way (like Advanced Replication and Streams always did by default)
We could even be more accurate by including all old column values
The default way of most GoldenGate deployments – which I also call the "do not
care" logic: only PKs are compared to match the row
UPDATE employees SET job_id='SH_CLERK', salary=salary*1.2
WHERE first_name='TJ' AND last_name='Olson'
UPDATE employees SET job_id='SH_CLERK', salary=2520
WHERE employee_id=132
AND job_id='ST_CLERK'
AND salary=2100
UPDATE employees SET job_id='SH_CLERK', salary=2520
WHERE employee_id=132
Exact Conflict Detection in GoldenGate
GoldenGate47 11-17-2015
To get an accurate conflict detection in GoldenGate – which is recommended – you
need to configure
– UPDATERECORDFORMAT COMPACT in extract
– Setting of
• LOGALLSUPCOLS in extract (database level) or
• GETBEFORECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL) in
extract (table level)
– COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL) in replicat
– This works for Oracle databases as of release 11.2.0.4 and for GoldenGate as of
release 12.1.2
For details see “My conflict with the default conflict detection of Oracle
GoldenGate”
http://blog.trivadis.com/b/mathiaszarick/archive/2015/04/17/my-conflict-with-the-
default-conflict-detection-of-oracle-goldengate.aspx
Conflict is Detected – And Now?
GoldenGate48 11-17-2015
Let it crash?
Or continue?
1. We are used to have an error logged in databases (accessible by SQL) and
2. The option to stop application of newly arriving data (at least with Streams)
1. Can be done with exception table(s)
2. Can be done with REPERROR (DEFAULT, ABEND) which is default, error is
logged in ggserr.log only
2015-09-03 17:45:50 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle,
rep_c_v.prm: Aborted grouped transaction on 'S.HEARTBEAT', Database error 1403
(OCI Error ORA-01403: no data found, SQL <UPDATE "S"."HEARTBEAT" x SET
x."STAMP" = :a3 WHERE x."SITE" = :b0 AND x."STAMP" = :b1>).
…
2015-09-03 17:45:50 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle,
rep_c_v.prm: PROCESS ABENDING.
Exception Table Management Can Get Painful
GoldenGate49 11-17-2015
An exception table for each target table?
– MAP statement for each table in replicat’s param file
– What has to be done after DDL, e.g. column add or modify?
– How to query on this from a central point of view?
– only useful chance to log column values from failed transaction in the database
A single generic exception table
– MAPEXCEPTION method, you need to have all possible columns in a very wide
table in most cases absolutely impractical
– handle exceptions with a MACRO here you have a central queryable table, but
you do not have logged all column values of the failed transaction, only the SQL,
which shows only bind variables and maybe gets truncated (4000 Bytes restriction)
You set REPERROR (DEFAULT, EXCEPTION) to implement this.
Problem: after an error, the replicat continues
“Log to DB and stop afterwards” is impossible (at least I have to clue how to do this)
Example: Exception Table for a Specific Target Table
GoldenGate50 11-17-2015
Create an exception table for each target table
Map the failed transaction to exception table
CREATE TABLE hr.employees_exception
AS SELECT * FROM hr.employees WHERE 1=2;
ALTER TABLE hr.employees_exception ADD (
error_date DATE, -- protocolled date and time of error occurrence
optype VARCHAR2(20), -- operation type
errno NUMBER, -- error number
errmsg VARCHAR2(4000) -- error message and failing SQL
);
REPERROR (DEFAULT, EXCEPTION)
MAP hr.employees, TARGET hr.employees,
COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL);
MAP hr.employees, TARGET hr.employees_exception,
EXCEPTIONSONLY,
INSERTALLRECORDS
COLMAP (USEDEFAULTS,
ERROR_DATE = @DATENOW (),
optype = @GETENV ('LASTERR', 'OPTYPE'),
errno = @GETENV ('LASTERR', 'DBERRNUM'),
errmsg = @GETENV ('LASTERR', 'DBERRMSG'));
Expansion of Example: Before Images are also Logged
GoldenGate51 11-17-2015
ALTER TABLE hr.employees_exception ADD (
b_employee_id NUMBER(6),
...
b_department_id NUMBER(4)
);
Add the BEFORE columns to exceptions table
Map to them using @BEFORE
REPERROR (DEFAULT, EXCEPTION)
MAP hr.employees, TARGET hr.employees,
COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL);
MAP hr.employees, TARGET hr.employees_exception,
EXCEPTIONSONLY, INSERTALLRECORDS
COLMAP (USEDEFAULTS,
ERROR_DATE = @DATENOW (),
optype = @GETENV ('LASTERR', 'OPTYPE'),
errno = @GETENV ('LASTERR', 'DBERRNUM'),
errmsg = @GETENV ('LASTERR', 'DBERRMSG')
b_employee_id = @BEFORE (employee_id),
...
b_department_id = @BEFORE (department_id)
);
Single Generic Exception Table
GoldenGate52 11-17-2015
MACRO #exc_handler
BEGIN
TARGET ggadm.exceptions
, EXCEPTIONSONLY , INSERTALLRECORDS
, COLMAP (
replicat_name = @GETENV ('GGENVIRONMENT', 'GROUPNAME')
, table_name = @GETENV ('GGHEADER', 'TABLENAME')
, optype = @GETENV ('LASTERR', 'OPTYPE')
, errno = @GETENV ('LASTERR', 'DBERRNUM')
, errmsg = @GETENV ('LASTERR', 'DBERRMSG')
, errtype = @GETENV ('LASTERR', 'ERRTYPE')
, logrba = @GETENV ('GGHEADER', 'LOGRBA')
, logposition = @GETENV ('GGHEADER', 'LOGPOSITION')
, committimestamp = @GETENV ('GGHEADER', 'COMMITTIMESTAMP')
);
END;
MAP hr.employees, TARGET hr.employees,
COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL);
...
MAP hr.employees, #exc_handler() ;
MAP hr.departments, #exc_handler() ;
...
You can use a macro to avoid repetition of same instructions for all tables
Conflict Resolution Methods are there, But Configuring
them Can Easily Get Hard Work
GoldenGate53 11-17-2015
Example using a max timestamp column for resolution (largest wins)
Confirm the successful resolution in GGSCI
MAP hr.employees, TARGET hr.employees,
COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL),
RESOLVECONFLICT (UPDATEROWEXISTS, (DEFAULT, USEMAX (stamp)))
;
GGSCI (zam33) 6> stats replicat rep_c_v, reportcdr
…
*** Latest statistics since 2015-09-08 11:38:39 ***
Total inserts 0.00
Total updates 7.00
Total deletes 0.00
Total discards 0.00
Total operations 7.00
Total CDR conflicts 2.00
CDR resolutions succeeded 2.00
CDR UPDATEROWEXISTS conflicts 2.00
…
Other Conflict Resolution Methods
GoldenGate54 11-17-2015
INSERTROWEXISTS
– Uniqueness problem, should not be necessary, better avoid
UPDATEROWEXISTS
– Classic update conflict
UPDATEROWMISSING
– There is no row which matches PK from trail, another variant of update conflict
DELETEROWEXISTS
– Classic delete conflict (introduced by concurrent delete or update)
DELETEROWMISSING
– There is no row which matches PK from trail, another variant of delete conflict
SQLEXEC
– Custom action for a trail which can contain also conflict handling
And Now? – Any Recommendations?
GoldenGate55 11-17-2015
Recommendation regarding conflict resolution!
– No Multi-master replication use exact conflict detection, no exception table, no
automatic conflict resolution, leave default setting of REPERROR (DEFAULT,
ABEND)
– Multi-master replication use exact conflict detection and following iterative
approach
1. start completely without automatic conflict resolution
2. get to know the different variants of your application’s conflicts and understand
why they happen, try to avoid those conflicts from application side
3. work with dedicated exception tables for affected tables
4. resolve conflicts which cannot be avoided by application in a first step manually
and document this carefully
5. ONLY for those types of conflicts
• for which you know why they happen and
• which cannot be avoided by application design and
• for which you know how to resolve them correctly
implement an automatic resolution
Agenda
GoldenGate56 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate57 11-17-2015
Some More Tips
Documentation Download?
GoldenGate58 11-17-2015
For database docs we are used to be able to download it for offline browsing
But for GoldenGate this is not possible like this (only for older releases)
Workaround:
wget 
--recursive 
--no-clobber 
--page-requisites 
--html-extension 
--convert-links 
--restrict-file-names=windows 
--domains docs.oracle.com 
--no-parent 
http://docs.oracle.com/goldengate/1212/gg-winux/index.html
Ggsci Call is Kind of Strange
GoldenGate59 11-17-2015
Isn’t this strange / non-intuitive?
My solution:
I use ggh
Key file for rlwrap
# which ggsci
/u00/app/ggadm/product/ogg12.1.2/ggsci
# ggsci
Cannot load ICU resource bundle 'ggMessage', error code 2 - No
such file or directory
Aborted
vi ${GG_HOME}/ggh
#!/bin/sh
oldpwd=$(pwd)
cd ${GG_HOME}
rlwrap -i -f ${GG_HOME}/ggsci.key ./ggsci
cd ${oldpwd}
chmod +x ggh
grep '[A-Z][A-Z]' help.txt | tr ' ' 'n' | 
grep '[A-Z][A-Z]' | tr '[A-Z]' '[a-z]' | 
sort | uniq > ${GG_HOME}/ggsci.key
vi ${GG_HOME}/ggsci.key # manual removals of nonsense
# and special characters
Implement Restarts for Crashed GoldenGate Processes
GoldenGate60 11-17-2015
By default crashed processes do not try to restart, e.g. a network outage will crash a
data pump process
You should implement AUTORESTART, maybe also AUTOSTART
Example for manager params file mgr.prm
AUTORESTART ER *,RETRIES 3, WAITMINUTES 4
AUTOSTART ER *
ERROR OGG-01232 Receive TCP params error: TCP/IP error
104 (Connection reset by peer), endpoint: zam33:7819.
Agenda
GoldenGate61 11-17-2015
1. What is Replication and GoldenGate?
2. Possible Topologies and Usecases
3. Rules for Successful Replication Setups
4. Conflict Resolution
5. Some More Tips
6. Conclusion
GoldenGate62 11-17-2015
Conclusion
Conclusion
GoldenGate63 11-17-2015
GoldenGate is an advanced replication technology
Some things that just worked easily with Streams / Advanced Replication seem
complicated with GoldenGate
Follow the 8 mentioned rules for successful setups and operation: KISS
Conflict detection and resolution:
– Use exact detection!
– Better avoid conflicts by application if impossible use an iterative approach to
get closer and closer right to the perfect resolution
GoldenGate64 11-17-2015
Further information…
• Oracle GoldenGate 12c (12.1.2)
http://docs.oracle.com/goldengate/1212/gg-winux/index.html
• Oracle GoldenGate 12c Implementer's Guide – John P Jeffries
• Oracle Goldengate 11g Complete Cookbook – Ankur Gupta
• Expert Oracle GoldenGate – Ben Prusinski, Steve Phillips, Shing Chung
Questions and Answers
Mathias Zarick
Principal Consultant
Mathias.Zarick@trivadis.com
11-17-2015 GoldenGate65
GoldenGate66 11-17-2015
Trivadis an der DOAG 2015
Ebene 3 - gleich neben der
Rolltreppe
Wir freuen uns auf Ihren Besuch.
Denn mit Trivadis gewinnen Sie
immer.

More Related Content

Viewers also liked

Introducing Nozipho Construction
Introducing Nozipho ConstructionIntroducing Nozipho Construction
Introducing Nozipho Construction
Alicia Prins (nee Welch)
 
MobAir_Presentation_2016
MobAir_Presentation_2016MobAir_Presentation_2016
MobAir_Presentation_2016
Oles Dziub
 
SKMBT_C36415111917560
SKMBT_C36415111917560SKMBT_C36415111917560
SKMBT_C36415111917560baloyi doctor
 
BAIT1003 Tutorial 3
BAIT1003 Tutorial 3BAIT1003 Tutorial 3
BAIT1003 Tutorial 3
limsh
 
HACCP Quality Management certificate 2014_1
HACCP Quality Management certificate 2014_1HACCP Quality Management certificate 2014_1
HACCP Quality Management certificate 2014_1
Duncan Githae
 
Certificate of service ....
Certificate of service ....Certificate of service ....
Certificate of service ....Duncan Githae
 
Hablar sobre los estilos de aprendizaje3
Hablar sobre los estilos de aprendizaje3Hablar sobre los estilos de aprendizaje3
Hablar sobre los estilos de aprendizaje3
yeniffer casas pabon
 
analisis urbano
analisis urbanoanalisis urbano
analisis urbano
johanr94
 
Construcción- Variables urbanas
Construcción- Variables urbanasConstrucción- Variables urbanas
Construcción- Variables urbanas
Lorena Buontempo
 
BAIT1003 Chapter 8
BAIT1003 Chapter 8BAIT1003 Chapter 8
BAIT1003 Chapter 8
limsh
 

Viewers also liked (12)

Introducing Nozipho Construction
Introducing Nozipho ConstructionIntroducing Nozipho Construction
Introducing Nozipho Construction
 
MobAir_Presentation_2016
MobAir_Presentation_2016MobAir_Presentation_2016
MobAir_Presentation_2016
 
Doc 3
Doc 3Doc 3
Doc 3
 
SKMBT_C36415111917560
SKMBT_C36415111917560SKMBT_C36415111917560
SKMBT_C36415111917560
 
BAIT1003 Tutorial 3
BAIT1003 Tutorial 3BAIT1003 Tutorial 3
BAIT1003 Tutorial 3
 
HACCP Quality Management certificate 2014_1
HACCP Quality Management certificate 2014_1HACCP Quality Management certificate 2014_1
HACCP Quality Management certificate 2014_1
 
Certificate of service ....
Certificate of service ....Certificate of service ....
Certificate of service ....
 
Hablar sobre los estilos de aprendizaje3
Hablar sobre los estilos de aprendizaje3Hablar sobre los estilos de aprendizaje3
Hablar sobre los estilos de aprendizaje3
 
Image-1
Image-1Image-1
Image-1
 
analisis urbano
analisis urbanoanalisis urbano
analisis urbano
 
Construcción- Variables urbanas
Construcción- Variables urbanasConstrucción- Variables urbanas
Construcción- Variables urbanas
 
BAIT1003 Chapter 8
BAIT1003 Chapter 8BAIT1003 Chapter 8
BAIT1003 Chapter 8
 

Similar to Golden Gate - How to start such a project?

Doag data replication with oracle golden gate: Looking behind the scenes
Doag data replication with oracle golden gate: Looking behind the scenesDoag data replication with oracle golden gate: Looking behind the scenes
Doag data replication with oracle golden gate: Looking behind the scenes
Trivadis
 
Greenplum Architecture
Greenplum ArchitectureGreenplum Architecture
Greenplum Architecture
Alexey Grishchenko
 
Get the most out of Oracle Data Guard - POUG version
Get the most out of Oracle Data Guard - POUG versionGet the most out of Oracle Data Guard - POUG version
Get the most out of Oracle Data Guard - POUG version
Ludovico Caldara
 
Insync10 goldengate
Insync10 goldengateInsync10 goldengate
Insync10 goldengate
InSync Conference
 
Get the most out of Oracle Data Guard - OOW version
Get the most out of Oracle Data Guard - OOW versionGet the most out of Oracle Data Guard - OOW version
Get the most out of Oracle Data Guard - OOW version
Ludovico Caldara
 
Application High Availability and Upgrades Using Oracle GoldenGate
Application High Availability and Upgrades Using Oracle GoldenGateApplication High Availability and Upgrades Using Oracle GoldenGate
Application High Availability and Upgrades Using Oracle GoldenGate
Shane Borden
 
Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15
Bobby Curtis
 
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
Spark Summit
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
Bobby Curtis
 
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12cGoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
Michael Rainey
 
Postgres-XC: Symmetric PostgreSQL Cluster
Postgres-XC: Symmetric PostgreSQL ClusterPostgres-XC: Symmetric PostgreSQL Cluster
Postgres-XC: Symmetric PostgreSQL Cluster
Pavan Deolasee
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environments
DLT Solutions
 
Oracle Solaris 11.1 New Features
Oracle Solaris 11.1 New FeaturesOracle Solaris 11.1 New Features
Oracle Solaris 11.1 New Features
Orgad Kimchi
 
Microservices in Clojure
Microservices in ClojureMicroservices in Clojure
Microservices in Clojure
Lucas Cavalcanti dos Santos
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky
 
You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?
Aerospike, Inc.
 
Aerospike AdTech Gets Hacked in Lower Manhattan
Aerospike AdTech Gets Hacked in Lower ManhattanAerospike AdTech Gets Hacked in Lower Manhattan
Aerospike AdTech Gets Hacked in Lower Manhattan
Aerospike
 
Optimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with AlluxioOptimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with Alluxio
Alluxio, Inc.
 
Greenplum feature
Greenplum featureGreenplum feature
Greenplum feature
Ahmad Yani Emrizal
 
Con1741 mcintosh top 10 database performance tips for sparc systems running o...
Con1741 mcintosh top 10 database performance tips for sparc systems running o...Con1741 mcintosh top 10 database performance tips for sparc systems running o...
Con1741 mcintosh top 10 database performance tips for sparc systems running o...
Jimmy He
 

Similar to Golden Gate - How to start such a project? (20)

Doag data replication with oracle golden gate: Looking behind the scenes
Doag data replication with oracle golden gate: Looking behind the scenesDoag data replication with oracle golden gate: Looking behind the scenes
Doag data replication with oracle golden gate: Looking behind the scenes
 
Greenplum Architecture
Greenplum ArchitectureGreenplum Architecture
Greenplum Architecture
 
Get the most out of Oracle Data Guard - POUG version
Get the most out of Oracle Data Guard - POUG versionGet the most out of Oracle Data Guard - POUG version
Get the most out of Oracle Data Guard - POUG version
 
Insync10 goldengate
Insync10 goldengateInsync10 goldengate
Insync10 goldengate
 
Get the most out of Oracle Data Guard - OOW version
Get the most out of Oracle Data Guard - OOW versionGet the most out of Oracle Data Guard - OOW version
Get the most out of Oracle Data Guard - OOW version
 
Application High Availability and Upgrades Using Oracle GoldenGate
Application High Availability and Upgrades Using Oracle GoldenGateApplication High Availability and Upgrades Using Oracle GoldenGate
Application High Availability and Upgrades Using Oracle GoldenGate
 
Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15Extreme replication at IOUG Collaborate 15
Extreme replication at IOUG Collaborate 15
 
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
Highlights and Challenges from Running Spark on Mesos in Production by Morri ...
 
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and ConfigurationIOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
IOUG Data Integration SIG w/ Oracle GoldenGate Solutions and Configuration
 
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12cGoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
GoldenGate and Oracle Data Integrator - A Perfect Match- Upgrade to 12c
 
Postgres-XC: Symmetric PostgreSQL Cluster
Postgres-XC: Symmetric PostgreSQL ClusterPostgres-XC: Symmetric PostgreSQL Cluster
Postgres-XC: Symmetric PostgreSQL Cluster
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environments
 
Oracle Solaris 11.1 New Features
Oracle Solaris 11.1 New FeaturesOracle Solaris 11.1 New Features
Oracle Solaris 11.1 New Features
 
Microservices in Clojure
Microservices in ClojureMicroservices in Clojure
Microservices in Clojure
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?You Snooze You Lose or How to Win in Ad Tech?
You Snooze You Lose or How to Win in Ad Tech?
 
Aerospike AdTech Gets Hacked in Lower Manhattan
Aerospike AdTech Gets Hacked in Lower ManhattanAerospike AdTech Gets Hacked in Lower Manhattan
Aerospike AdTech Gets Hacked in Lower Manhattan
 
Optimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with AlluxioOptimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with Alluxio
 
Greenplum feature
Greenplum featureGreenplum feature
Greenplum feature
 
Con1741 mcintosh top 10 database performance tips for sparc systems running o...
Con1741 mcintosh top 10 database performance tips for sparc systems running o...Con1741 mcintosh top 10 database performance tips for sparc systems running o...
Con1741 mcintosh top 10 database performance tips for sparc systems running o...
 

More from Trivadis

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Trivadis
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Trivadis
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Trivadis
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Trivadis
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Trivadis
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Trivadis
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Trivadis
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Trivadis
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Trivadis
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Trivadis
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
Trivadis
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
Trivadis
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
Trivadis
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
Trivadis
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
Trivadis
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
Trivadis
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
Trivadis
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
Trivadis
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
Trivadis
 

More from Trivadis (20)

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
 

Recently uploaded

Gregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics PresentationGregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics Presentation
gharris9
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Rosie Wells
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussionPro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptxThe remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
JiteshKumarChoudhary2
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
ToshihiroIto4
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Ben Linders
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
samililja
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
gpww3sf4
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
Frederic Leger
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
OECD Directorate for Financial and Enterprise Affairs
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
kainatfatyma9
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
Claudio Gallicchio
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 

Recently uploaded (20)

Gregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics PresentationGregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics Presentation
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussionPro-competitive Industrial Policy – LANE – June 2024 OECD discussion
Pro-competitive Industrial Policy – LANE – June 2024 OECD discussion
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptxThe remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
 
XP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to LeadershipXP 2024 presentation: A New Look to Leadership
XP 2024 presentation: A New Look to Leadership
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
 
Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
 

Golden Gate - How to start such a project?

  • 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH GoldenGate How to start such a project? Mathias Zarick Nuremberg, Nov. 17th 2015
  • 2. Principal Consultant at Trivadis Delphi GmbH in Vienna Graduated from University of Rostock / Computer Science Trainer – Data Guard, Architecture and Internals for advanced DBAs, Maximum Availability Architecture Workshop, Grid Infrastructure E-Mail: Mathias.Zarick@trivadis.com Main focus: – Oracle database – Oracle high availability projects (Real Application Clusters, Data Guard, Maximum Availability Architecture, Replication with Streams and GoldenGate) – Backup/Recovery – Development Lead of Trivadis Toolbox – Developer of TVD-Standby – Research projects in Trivadis Technology Center (TTC) Introduction – Mathias Zarick GoldenGate2 11-17-2015
  • 3. Unser Unternehmen. Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution Engineering und der Erbringung von IT-Services mit Fokussierung auf - und -Technologien in der Schweiz, Deutschland, Österreich und Dänemark. Trivadis erbringt ihre Leistungen aus den strategischen Geschäftsfeldern: Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme. B E T R I E B GoldenGate3 11-17-2015
  • 4. KOPENHAGEN MÜNCHEN LAUSANNE BERN ZÜRICH BRUGG GENF HAMBURG DÜSSELDORF FRANKFURT STUTTGART FREIBURG BASEL WIEN Mit über 600 IT- und Fachexperten bei Ihnen vor Ort. 14 Trivadis Niederlassungen mit über 600 Mitarbeitenden. Über 200 Service Level Agreements. Mehr als 4'000 Trainingsteilnehmer. Forschungs- und Entwicklungsbudget: CHF 5.0 Mio. Finanziell unabhängig und nachhaltig profitabel. Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden. GoldenGate4 11-17-2015
  • 5. Agenda GoldenGate5 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 6. GoldenGate6 11-17-2015 What is Replication and GoldenGate?
  • 7. What is Replication? (1) GoldenGate7 11-17-2015 Wikipedia: – sharing information so as to ensure consistency between redundant resources – improve reliability, fault-tolerance, or accessibility Types with Oracle database – physical replica: • physical standby database with media recovery (Active Data Guard / ADG) • easier to maintain/operate – logical replica: • apply SQL (using own programs or provided tools/technology) • harder to maintain/operate
  • 8. What is Replication? (2) GoldenGate8 11-17-2015 Evolution at Oracle: – Materialized view (snapshot) replication – Advanced replication – Logical Standby – Oracle Streams – Oracle GoldenGate Third Party – Shareplex (Quest now Dell) – DataMirror / Rocket iCluster
  • 9. Why Replication? GoldenGate9 11-17-2015 (Zero-Downtime) Migrations – change OS/platform – change DB Version or even DB vendor – endianness changes – character set changes – etc. High availability / run several replica – to be able to failover to a standby system – or even to be able to update all of them simultaneously to avoid SPOFs introduced by one central database (Multimaster replication) Offload productive transactional systems – read-only reporting systems – staging area for a data warehouse Other – historify – centralization / consolidation of data – …
  • 10. Why GoldenGate? GoldenGate10 11-17-2015 All following pros and cons are summed up in comparison to former Oracle database replication technologies Pros – current and most up-to-date replication technology by Oracle (Streams is deprecated) – better transaction throughput / performance in comparison to Streams: but in most cases only if using classic processes – heterogeneous replication support: e.g. replicate data from DB/2 to Oracle – only committed transactions are transferred to target (in contrast to Streams) Cons – separately licensable product (Oracle Fusion Middleware product suite) – own proprietary interface and language – can get more complex easily – external processes to be run and operated Hint: see “Oracle Streams to GoldenGate Migration Utility (Doc ID 1912338.1)”
  • 11. GoldenGate Architecture GoldenGate11 11-17-2015 3 types of processes / similar to Streams Capture – Extract – capture transactions/changes – can be classic/integrated – downstream configurations are supported (transfer redo logs and capture on another system/database) – writes to local (recommended) or remote trails Propagation – Data Pump Extract – optional but recommended – reads local trails and writes remote trails – no database link but an own TCP/IP protocol based communication is used Apply – Replicat – can be classic/integrated – reads data from trails – construct and process SQL (classic) or LCR (integrated) Transformations, mappings, filters can be applied on all those processes
  • 12. GoldenGate Architecture (2) GoldenGate12 11-17-2015 Source Destination Extract Trail files Data Pump Extract Remote Trail files SQL or LCR Manager Monitor / Operation Manager Monitor / Operation Redo Logs Extract
  • 13. Classic vs. Integrated Capture Why? What to choose? GoldenGate13 11-17-2015 Classic Capture reads online redo logs directly – good performance! – restrictions: some data types / structures are unsupported, e.g. compressed tables, CDBs – no good integration with other HA technologies, e.g. RAC and Data Guard – special DDL triggers (DDL support objects) needed Integrated Capture internally creates a Streams-like capture which starts LogMiner – LCRs are created and written to queues, those LCRs are transformed to trails – everything which was already resolved with Streams is resolved now as well – LogMiner Performance – less restrictions, e.g. CDB support, one extract can read from several PDBs – better integration with RAC/ASM, Data Guard, Transparent Data Encryption In most setups you would choose integrated, because – it offers better support and has less limitations – it allows to combine with HA components easier – Oracle always emphasizes this technology regarding future developments
  • 14. Classic vs. Integrated Apply Why? What to choose? GoldenGate14 11-17-2015 Nonintegrated/Classic Apply = Replicat reads trails, constructs SQL and performs it via OCI connection – parallelization with coordinated replicat configuration Integrated Replicat internally creates a Streams-like apply – trails LCR AQ Queue Apply (with parallelism) – better suited for heavy workloads (parallelization with preserving of integrity and atomicity of source transactions) – better integration with RAC/ASM, Data Guard, Transparent Data Encryption In most setups you would choose integrated, because – it offers better support and has less limitations – it allows to combine with HA components easier – Oracle always emphasizes this technology regarding future developments In any case you need one replicat for one target database, in a Multitenant configuration, one replicat can only write to one PDB
  • 15. Okay – You want a Setup Example with Syntax? GoldenGate15 11-17-2015 GGSCI (zam32) 1> DBLOGIN USERID ggadm@nad GGSCI (zam32) 2> ADD TRANDATA zam.tab1 GGSCI (zam32) 3> EDIT PARAMS epn EXTRACT epn USERID ggadm@nad, PASSWORD ********* TRANLOGOPTIONS EXCLUDEUSER GGADM LOGALLSUPCOLS UPDATERECORDFORMAT COMPACT DDL INCLUDE MAPPED EXTTRAIL /home/oracle/ggtrail/NAD/ep TABLE zam.*; GGSCI (zam32) 4> EDIT PARAMS de EXTRACT de USERID ggadm@nad, PASSWORD ********* RMTHOST zam33, MGRPORT 7809 RMTTRAIL /home/oracle/ggtrail/ZERATUL/rp TABLE zam.*;
  • 16. Syntax Example Continuation GoldenGate16 11-17-2015 GGSCI (zam32) 5> REGISTER EXTRACT epn DATABASE GGSCI (zam32) 6> ADD EXTRACT epn, INTEGRATED TRANLOG, BEGIN NOW GGSCI (zam32) 7> ADD EXTTRAIL /…/ggtrail/NAD/ep, EXTRACT epn GGSCI (zam32) 8> ADD EXTRACT de, EXTTRAILSOURCE /…/ggtrail/NAD/ep GGSCI (zam32) 9> ADD RMTTRAIL /…/ggtrail/ZERATUL/rp, EXTRACT de GGSCI (zam33) 1> DBLOGIN USERID ggadm@zeratul GGSCI (zam33) 2> EDIT PARAMS app REPLICAT app USERID ggadm@zeratul, PASSWORD ********* ASSUMETARGETDEFS MAP zam.*, TARGET zam.*, COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL);; GGSCI (zam33) 3> ADD REPLICAT app, INTEGRATED, EXTTRAIL /home/oracle/ggtrail/ZERATUL/rp
  • 17. Agenda GoldenGate17 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 19. Topologies There are infinite possibilities for GoldenGate topologies Remember: flexible is good, but you need to operate and therefore understand it as well Complexity is the biggest enemy of high availability So try to design it as simple as possible KISS: keep it small and simple GoldenGate19 11-17-2015
  • 20. Staging Area for Data Warehouse GoldenGate20 11-17-2015 Online Transactional Database Replica as Staging Area Core DWH Often used like that with Streams or GoldenGate But there is a better solution, which uses physical replication instead of logical: Combination of Data Guard Snapshot Standby and Transportable Tablespaces See http://www.trivadis.com/sites/default/files/downloads/WhitePaper_Solution_for_Staging_Area_01.pdf Replication ETL
  • 21. Hub and Spoke Replication Spokes or satellites are connected to central hub Conflicts can occur – it is a variant of a multi-master replication Can provide HA Overall availability dependent on hub availability GoldenGate21 11/10/201511-17-2015
  • 22. Multi-master Replication 1 reg. Extract 4 Pump Extracts 4 Replicats DO NOT FEAR! ☺ Conflicts can occur Can provide HA Docs have an example for DBFS GoldenGate22 11-17-2015 1 reg. Extract 4 Pump Extracts 4 Replicats 1 reg. Extract 4 Pump Extracts 4 Replicats 1 reg. Extract 4 Pump Extracts 4 Replicats 1 reg. Extract 4 Pump Extracts 4 Replicats
  • 23. Consolidation of Data Data is transferred to a central location One central reporting / history database Deletes might not be transferred (historify) GoldenGate23 11-17-2015
  • 24. Other Topologies GoldenGate24 11-17-2015 Multi-master Reader farms to reduce workload on source: better use ADG (physical replication) Consolidation of data to central reporting database Historization of changes on OLTP database – DELETE on source is INSERT on destination Bidirectional setups for migrations Cascaded configurations / directed networks with intermediary systems/trails
  • 25. Agenda GoldenGate25 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 26. GoldenGate26 11-17-2015 Rules for Successful Replication Setups
  • 27. Project Plan and Operation GoldenGate27 11-17-2015 1. Define scope 2. Run a “Proof of concept” 3. Design a suitable topology and setup 4. Define rules and processes for the environment, e.g. how to handle DDL or extend the replication setup (new schemas, tables, columns etc.) 5. Prepare a proven set of scripts, programs, documentation etc. for setup and operation (see later) 6. Bring to operation Operational Loop 1. Detect weaknesses in setup and monitoring 2. Improve the setup more and more with the help of suitable test systems
  • 28. Typical Situation after a PoC GoldenGate28 11-17-2015 It is believed, that usecase is suitable and replication process works as intended Some application tests show success Some scripts for replication setup are created Scripts are run, replication is online and productive And now? Is this enough? How to prove that everything is running as intended, even after some weeks? Monitoring? Are you prepared for the first runtime error? What to do then?
  • 29. To be Successful, Certain Rules should be Considered GoldenGate29 11-17-2015 Following 8 Rules are based on experience with a lot of replication setups with different technologies – Advanced Replication – Materialized View Replication – Own PL/SQL based replications – Streams – GoldenGate
  • 30. 1. KISS – KISS – KISS !!! GoldenGate30 11-17-2015 Keep It Small and Simple! Keep It Simple, Stupid! – make sure you really need it that way you design it, e.g. • Is the asynchronous transmission acceptable? • Do you really need a read write database at destination? – make sure, that all replicated tables have a primary key – avoid DDL (even if supported), or at least define a tested process to perform DDL – avoid incremental changes to your replication setup, or at least define a tested process to do so
  • 31. 2. Configure Databases Correctly and Avoid Unnecessary Overhead GoldenGate31 11-17-2015 Capture database: – Archivelog mode – force logging – minimal supplemental logging – As of 11.2.0.4: SET enable_goldengate_replication=TRUE; Table Level: Any additional needed supplemental logging Worst practice: Transmit only data you really need at target database ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS; add trandata hr.employees add trandata hr.heartbeat ...
  • 32. 3. Implement Critical Components GoldenGate32 11-17-2015 a. Latest recommended patches, see “Oracle GoldenGate -- Oracle RDBMS Server Recommended Patches (Doc ID 1557031.1)” b. It is recommended to have an own repository (e.g. in GGADM schema), which describes your setup and can be used to generate scripts, which are used for – (re-)setup of all processes (for all objects) – deinstallation – verify – rectify c. Implement a heartbeat table, job and monitor d. Several different monitors – processes (manager, extract, data pump, replicat) – log files – resource utilization – transport lag – apply lag
  • 33. Example Repo GoldenGate33 11-17-2015 Actual design is dependent on complexity of the replication Again, consider KISS!
  • 34. Heartbeat It is also a best practice to include a heartbeat table in the setup, which is updated again and again This table is suitable for monitoring purposes CREATE TABLE heartbeat ( site VARCHAR2(4000) CONSTRAINT heartbeat_pk PRIMARY KEY, stamp DATE); INSERT INTO heartbeat (site, stamp) SELECT dbms_reputil.global_name, sysdate FROM dual; COMMIT; BEGIN dbms_scheduler.create_job( job_name => 'heartbeat_update_job', job_type => 'plsql_block', job_action => 'UPDATE heartbeat SET stamp = sysdate WHERE site = dbms_reputil.global_name;', repeat_interval => 'freq=minutely;bysecond=0,15,30,45', comments => 'heartbeat for goldengate replication', enabled => TRUE ); END; / GoldenGate34 11-17-2015
  • 35. 4. Be Prepared to Verify the Replicated Data GoldenGate35 11-17-2015 Compare data between source and destination Most setups aim to have same data on different sites (though sometimes this is not the case, sometimes it is intentionally different (transformations)) So keeping the data in sync can be a considered as a general wish in many setups You should be able to check for synchronicity/consistency and know how to synchronize/rectify If data differs at different sites we call it: data diverges, we will have data divergence Often we want to have the opposite: convergent data, convergence
  • 36. Compare 2 tables like this (base algorithm) ∖ ∪ ∖ Does not work for LOB and LONG columns (but there are workarounds if needed) If too much data is transferred – think about – comparing only PKs and “important” columns – generate hashes based on row data to reduce network bandwidth – partition the data and checks, e.g. compare only latest month SELECT count(*) FROM ( (SELECT * FROM tab@vizrtdb1 MINUS SELECT * FROM tab@vizrtdb2) UNION ALL (SELECT * FROM tab@vizrtdb2 MINUS SELECT * FROM tab@vizrtdb1) ) The brackets matter ☺ Compare Tables GoldenGate36 11-17-2015
  • 37. Function code is PL/SQL and generated by PL/SQL – LOBs are excluded, LONG does not exist – 1 reference site, 4 comparison sites, 51 tables CREATE OR REPLACE FUNCTION compare RETURN NUMBER AS v_sum NUMBER; v_count NUMBER; BEGIN v_sum := 0; SELECT count(*) INTO v_count FROM (( SELECT ... FROM PILOT.CATEGORY@VIZRTDB1 MINUS SELECT ... FROM PILOT.CATEGORY@VIZRTDB2 ) UNION ALL ( SELECT ... FROM PILOT.CATEGORY@VIZRTDB2 MINUS SELECT ... FROM PILOT.CATEGORY@VIZRTDB1)); v_sum := v_sum + v_count; ... /* 204 (51 x 4) selects in total */ RETURN v_sum; END; / -- runs for some time depending on data amount -- should return zero and be included in monitoring SELECT compare FROM dual; Example: Generate Compare Code – Compare (nearly) everything GoldenGate37 11-17-2015
  • 38. Other Verification and Converge Options/Tools GoldenGate38 11-17-2015 Basic approach is always the same (see previous slide) Available tools and packages: – Oracle GoldenGate Veridata: GUI and CLI, extra licensable, complex – DBMS_COMPARISON: integrated in DB / PL/SQL – Older: DBMS_RECTIFIER_DIFF
  • 39. 5. Be able to Synchronize Replicated Data and to Re-Setup GoldenGate39 11-17-2015 You should be able to rectify (make convergent) divergent data incrementally In some cases you will even need a complete re-setup (deinstall and install) possibly with new data instantiation one-button-approach would be aimed, but is hard to realize with GoldenGate You can use converge tools as mentioned on previous slide to overcome need of complete instantiations Use them in combination with the process description in the section “Resynchronizing an out-of-sync table” of “GoldenGate Configuration for Stability and Recovery (Doc ID 1451514.1)” – bypass table in question at regular replicat – manual rectify of table – create a temporary replicat which handles the rectified object (HANDLECOLLISIONS) – several adaptions of replicats and restarts of replicats and extract – removal of temporary replicat
  • 40. 6. Perform Different Kind of Recoveries with Involved Databases GoldenGate40 11-17-2015 Complete recovery of source / target databases Incomplete recovery of source / target databases Repair GoldenGate / some scenarios would need a re-setup Document this process carefully
  • 41. 7. Training for Operation GoldenGate41 11-17-2015 Install and deinstall the replication again and again before going to production and later on the test system Establish a process for cloning the production environment to test system again and again with a representative set of data and replication components Do failure tests Provoke some conflicts Repair some error situations, e.g. truncate a table at target Get familiar with log messages in ggserr.log Get familiar with your scripts and improve continuously
  • 42. 8. Documentation and Operation Manual GoldenGate42 11-17-2015 It is essential to have an up-to-date documentation and manual All setup steps All about monitoring Howto’s – (Re-)setup – (Re-)instantiate – Check for convergence – Rectify / Resynchronize – Clone to test system – Recoveries: Complete and PITR
  • 43. Agenda GoldenGate43 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 45. Conflict Detection and Resolution GoldenGate45 11-17-2015 What is a conflict? – mismatch between old data (before image of row) and actual data at destination database (update / delete) – typically introduced if same data is changed at almost the same time at different sites – uniqueness conflicts can happen if using same IDs/PKs at different sites – can also happen just because of asynchronous transmission In case you are dealing with setups, which bear a risk for conflicts, consider the following Avoid conflicts by application – Partition your data – Avoid insert/uniqueness conflicts by generating unique numbers, e.g. SYS_GUID or sequences with certain increment Configure a good and exact conflict detection – this was a matter of course for Advanced Replication and Streams but is not for GoldenGate! – GoldenGate: in most (default) setups only PKs are compared
  • 46. Conflict Detection – The Lazy and the Exact Way GoldenGate46 11-17-2015 Following statement at origin Is transported to destination database exactly or kind of lazy This is exact way (like Advanced Replication and Streams always did by default) We could even be more accurate by including all old column values The default way of most GoldenGate deployments – which I also call the "do not care" logic: only PKs are compared to match the row UPDATE employees SET job_id='SH_CLERK', salary=salary*1.2 WHERE first_name='TJ' AND last_name='Olson' UPDATE employees SET job_id='SH_CLERK', salary=2520 WHERE employee_id=132 AND job_id='ST_CLERK' AND salary=2100 UPDATE employees SET job_id='SH_CLERK', salary=2520 WHERE employee_id=132
  • 47. Exact Conflict Detection in GoldenGate GoldenGate47 11-17-2015 To get an accurate conflict detection in GoldenGate – which is recommended – you need to configure – UPDATERECORDFORMAT COMPACT in extract – Setting of • LOGALLSUPCOLS in extract (database level) or • GETBEFORECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL) in extract (table level) – COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL) in replicat – This works for Oracle databases as of release 11.2.0.4 and for GoldenGate as of release 12.1.2 For details see “My conflict with the default conflict detection of Oracle GoldenGate” http://blog.trivadis.com/b/mathiaszarick/archive/2015/04/17/my-conflict-with-the- default-conflict-detection-of-oracle-goldengate.aspx
  • 48. Conflict is Detected – And Now? GoldenGate48 11-17-2015 Let it crash? Or continue? 1. We are used to have an error logged in databases (accessible by SQL) and 2. The option to stop application of newly arriving data (at least with Streams) 1. Can be done with exception table(s) 2. Can be done with REPERROR (DEFAULT, ABEND) which is default, error is logged in ggserr.log only 2015-09-03 17:45:50 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rep_c_v.prm: Aborted grouped transaction on 'S.HEARTBEAT', Database error 1403 (OCI Error ORA-01403: no data found, SQL <UPDATE "S"."HEARTBEAT" x SET x."STAMP" = :a3 WHERE x."SITE" = :b0 AND x."STAMP" = :b1>). … 2015-09-03 17:45:50 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_c_v.prm: PROCESS ABENDING.
  • 49. Exception Table Management Can Get Painful GoldenGate49 11-17-2015 An exception table for each target table? – MAP statement for each table in replicat’s param file – What has to be done after DDL, e.g. column add or modify? – How to query on this from a central point of view? – only useful chance to log column values from failed transaction in the database A single generic exception table – MAPEXCEPTION method, you need to have all possible columns in a very wide table in most cases absolutely impractical – handle exceptions with a MACRO here you have a central queryable table, but you do not have logged all column values of the failed transaction, only the SQL, which shows only bind variables and maybe gets truncated (4000 Bytes restriction) You set REPERROR (DEFAULT, EXCEPTION) to implement this. Problem: after an error, the replicat continues “Log to DB and stop afterwards” is impossible (at least I have to clue how to do this)
  • 50. Example: Exception Table for a Specific Target Table GoldenGate50 11-17-2015 Create an exception table for each target table Map the failed transaction to exception table CREATE TABLE hr.employees_exception AS SELECT * FROM hr.employees WHERE 1=2; ALTER TABLE hr.employees_exception ADD ( error_date DATE, -- protocolled date and time of error occurrence optype VARCHAR2(20), -- operation type errno NUMBER, -- error number errmsg VARCHAR2(4000) -- error message and failing SQL ); REPERROR (DEFAULT, EXCEPTION) MAP hr.employees, TARGET hr.employees, COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL); MAP hr.employees, TARGET hr.employees_exception, EXCEPTIONSONLY, INSERTALLRECORDS COLMAP (USEDEFAULTS, ERROR_DATE = @DATENOW (), optype = @GETENV ('LASTERR', 'OPTYPE'), errno = @GETENV ('LASTERR', 'DBERRNUM'), errmsg = @GETENV ('LASTERR', 'DBERRMSG'));
  • 51. Expansion of Example: Before Images are also Logged GoldenGate51 11-17-2015 ALTER TABLE hr.employees_exception ADD ( b_employee_id NUMBER(6), ... b_department_id NUMBER(4) ); Add the BEFORE columns to exceptions table Map to them using @BEFORE REPERROR (DEFAULT, EXCEPTION) MAP hr.employees, TARGET hr.employees, COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL); MAP hr.employees, TARGET hr.employees_exception, EXCEPTIONSONLY, INSERTALLRECORDS COLMAP (USEDEFAULTS, ERROR_DATE = @DATENOW (), optype = @GETENV ('LASTERR', 'OPTYPE'), errno = @GETENV ('LASTERR', 'DBERRNUM'), errmsg = @GETENV ('LASTERR', 'DBERRMSG') b_employee_id = @BEFORE (employee_id), ... b_department_id = @BEFORE (department_id) );
  • 52. Single Generic Exception Table GoldenGate52 11-17-2015 MACRO #exc_handler BEGIN TARGET ggadm.exceptions , EXCEPTIONSONLY , INSERTALLRECORDS , COLMAP ( replicat_name = @GETENV ('GGENVIRONMENT', 'GROUPNAME') , table_name = @GETENV ('GGHEADER', 'TABLENAME') , optype = @GETENV ('LASTERR', 'OPTYPE') , errno = @GETENV ('LASTERR', 'DBERRNUM') , errmsg = @GETENV ('LASTERR', 'DBERRMSG') , errtype = @GETENV ('LASTERR', 'ERRTYPE') , logrba = @GETENV ('GGHEADER', 'LOGRBA') , logposition = @GETENV ('GGHEADER', 'LOGPOSITION') , committimestamp = @GETENV ('GGHEADER', 'COMMITTIMESTAMP') ); END; MAP hr.employees, TARGET hr.employees, COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL); ... MAP hr.employees, #exc_handler() ; MAP hr.departments, #exc_handler() ; ... You can use a macro to avoid repetition of same instructions for all tables
  • 53. Conflict Resolution Methods are there, But Configuring them Can Easily Get Hard Work GoldenGate53 11-17-2015 Example using a max timestamp column for resolution (largest wins) Confirm the successful resolution in GGSCI MAP hr.employees, TARGET hr.employees, COMPARECOLS (ON UPDATE KEYANDMOD, ON DELETE ALL), RESOLVECONFLICT (UPDATEROWEXISTS, (DEFAULT, USEMAX (stamp))) ; GGSCI (zam33) 6> stats replicat rep_c_v, reportcdr … *** Latest statistics since 2015-09-08 11:38:39 *** Total inserts 0.00 Total updates 7.00 Total deletes 0.00 Total discards 0.00 Total operations 7.00 Total CDR conflicts 2.00 CDR resolutions succeeded 2.00 CDR UPDATEROWEXISTS conflicts 2.00 …
  • 54. Other Conflict Resolution Methods GoldenGate54 11-17-2015 INSERTROWEXISTS – Uniqueness problem, should not be necessary, better avoid UPDATEROWEXISTS – Classic update conflict UPDATEROWMISSING – There is no row which matches PK from trail, another variant of update conflict DELETEROWEXISTS – Classic delete conflict (introduced by concurrent delete or update) DELETEROWMISSING – There is no row which matches PK from trail, another variant of delete conflict SQLEXEC – Custom action for a trail which can contain also conflict handling
  • 55. And Now? – Any Recommendations? GoldenGate55 11-17-2015 Recommendation regarding conflict resolution! – No Multi-master replication use exact conflict detection, no exception table, no automatic conflict resolution, leave default setting of REPERROR (DEFAULT, ABEND) – Multi-master replication use exact conflict detection and following iterative approach 1. start completely without automatic conflict resolution 2. get to know the different variants of your application’s conflicts and understand why they happen, try to avoid those conflicts from application side 3. work with dedicated exception tables for affected tables 4. resolve conflicts which cannot be avoided by application in a first step manually and document this carefully 5. ONLY for those types of conflicts • for which you know why they happen and • which cannot be avoided by application design and • for which you know how to resolve them correctly implement an automatic resolution
  • 56. Agenda GoldenGate56 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 58. Documentation Download? GoldenGate58 11-17-2015 For database docs we are used to be able to download it for offline browsing But for GoldenGate this is not possible like this (only for older releases) Workaround: wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --domains docs.oracle.com --no-parent http://docs.oracle.com/goldengate/1212/gg-winux/index.html
  • 59. Ggsci Call is Kind of Strange GoldenGate59 11-17-2015 Isn’t this strange / non-intuitive? My solution: I use ggh Key file for rlwrap # which ggsci /u00/app/ggadm/product/ogg12.1.2/ggsci # ggsci Cannot load ICU resource bundle 'ggMessage', error code 2 - No such file or directory Aborted vi ${GG_HOME}/ggh #!/bin/sh oldpwd=$(pwd) cd ${GG_HOME} rlwrap -i -f ${GG_HOME}/ggsci.key ./ggsci cd ${oldpwd} chmod +x ggh grep '[A-Z][A-Z]' help.txt | tr ' ' 'n' | grep '[A-Z][A-Z]' | tr '[A-Z]' '[a-z]' | sort | uniq > ${GG_HOME}/ggsci.key vi ${GG_HOME}/ggsci.key # manual removals of nonsense # and special characters
  • 60. Implement Restarts for Crashed GoldenGate Processes GoldenGate60 11-17-2015 By default crashed processes do not try to restart, e.g. a network outage will crash a data pump process You should implement AUTORESTART, maybe also AUTOSTART Example for manager params file mgr.prm AUTORESTART ER *,RETRIES 3, WAITMINUTES 4 AUTOSTART ER * ERROR OGG-01232 Receive TCP params error: TCP/IP error 104 (Connection reset by peer), endpoint: zam33:7819.
  • 61. Agenda GoldenGate61 11-17-2015 1. What is Replication and GoldenGate? 2. Possible Topologies and Usecases 3. Rules for Successful Replication Setups 4. Conflict Resolution 5. Some More Tips 6. Conclusion
  • 63. Conclusion GoldenGate63 11-17-2015 GoldenGate is an advanced replication technology Some things that just worked easily with Streams / Advanced Replication seem complicated with GoldenGate Follow the 8 mentioned rules for successful setups and operation: KISS Conflict detection and resolution: – Use exact detection! – Better avoid conflicts by application if impossible use an iterative approach to get closer and closer right to the perfect resolution
  • 64. GoldenGate64 11-17-2015 Further information… • Oracle GoldenGate 12c (12.1.2) http://docs.oracle.com/goldengate/1212/gg-winux/index.html • Oracle GoldenGate 12c Implementer's Guide – John P Jeffries • Oracle Goldengate 11g Complete Cookbook – Ankur Gupta • Expert Oracle GoldenGate – Ben Prusinski, Steve Phillips, Shing Chung
  • 65. Questions and Answers Mathias Zarick Principal Consultant Mathias.Zarick@trivadis.com 11-17-2015 GoldenGate65
  • 66. GoldenGate66 11-17-2015 Trivadis an der DOAG 2015 Ebene 3 - gleich neben der Rolltreppe Wir freuen uns auf Ihren Besuch. Denn mit Trivadis gewinnen Sie immer.