Chrysopylae, Part 2
April 17th, 2011 — ddelmoliPart 2 of my review of the Oracle GoldenGate 11g Implementer’s Guide begins with Chapter 5, Configuration Options.
The Configuration options chapter deals with more advanced options like batching, compression, encryption, triggering events, loop and conflict detection and DDL replication.
Batching and how SQL statements are cached to support batching, along with error handling and fallback processing are thoroughly explained.
Compression is also covered in some detail, with information about how GoldenGate cannot replicate data from Oracle compressed tables (including the EHCC compression from Exadata database machines).
In-flight (message) encryption and at-rest (trail) encryption is covered as well.
Event triggering is covered at a basic level, but gives a good insight as to what is possible – including the ability to have GoldenGate fire off a shell script in response to a particular set of values being detected in the capture process.
The discussion of bi-directional replication begins with a thorough list of items to be considered, including loops, conflict detection and resolution, sequences and triggers.
Conflict resolution options are slightly limited, and aren’t clearly defined – for example, applying a net difference instead of the after image is only useful in a subset of mathematical operations on numerical columns. And there is no mention of prioritization by site (by which some sites updates always take precedence). In truth, conflict resolution procedures can get pretty complicated, and I’m surprised there isn’t more information about them in this section or a referral to a later section (For example, Chapter 7 on Advanced Configuration).
The section on sequences is equally lacking in options, starting with a rather unclear statement about not supporting the replication of sequence values – what is really meant is that sequences themselves are not synchronized across multiple databases. And the recommendation to use odd / even strategies is also rather simplistic – missing out on multi-master scenarios. One can always reserve lower digits to enable more than 2 sites, and technically one can set up sequences to allow for an infinite number of sites as well…
Trigger handling advice is also rather simplistic – leading to more questions than answers as it talks about disabling triggers during the application of replicated data – there isn’t a mention of how that will affect an active / active system where local transactions are occurring.
There is a good discussion on DDL replication, with the information that the RECYCLEBIN must be disabled.
Chapter 6 – Configuring GoldenGate for HA
This chapter talks about GoldenGate in RAC environments, including the need for shared filesystems, and configuring GoldenGate with VIPs and with clusterware. Sample scripts and commands are included – overall this chapter stays on point.
Chapter 7 – Advanced Configuration
In reality I’d call this chapter Configuration Details, but it does a very nice job of going through details around how to map objects in a replication configuration, as well as exploring the ability for GoldenGate to detect errors and execute SQL and/or stored procedures in response to those conditions.
Basic transformation is also covered.
Chapter 8 – Managing Oracle GoldenGate
This chapter covers basic command level security and spends a lot of time on the command interpreter GGSCI. Also nice is a set of scripts and instructions to take performance output and format it for graphing in Excel.
Chapter 9 – Performance Tuning
The performance tuning chapter focuses on how to parallelize replication traffic and thoroughly exploit all system resources to increase throughput. It also make mention of the 11.1 release of GoldenGate. Details about tuning DBFS are also included.
Like a lot of Performance Tuning advice, this section is more about throughput than performance optimization – in that vein it succeeds in covering ways to push more data more quickly.
Chapter 10 – Troubleshooting GoldenGate
The troubleshooting chapter begins with a good section on tracking down why replication may not be working – getting statistics on every process to see if they think they are capturing or sending data. There is also good information on the CHECKPARAMS command which can be used to validate configuration files and the author also covers potential issues with the command.
The author covers the looking at checkpoints and networks as well.
There is a good section on creating exception handlers to capture and diagnose duplicate and missing record errors, including capture of before and after images.
Finally the chapter goes into detail on the LOGDUMP utility which can be used to examine trail files for error conditions.
Summary
Overall I found the book to be a good companion to the GoldenGate manuals and training materials. It’s obvious that the author has a lot of configuration and operational experience with GoldenGate. I found the book weak on design and planning for replication environments, so if you’re new to replication I’d suggest adding another book to your library above and beyond this one.