X

Welcome to All Things Data Integration: Announcements, Insights, Best Practices, Tips & Tricks, and Trend Related...

Oracle GoldenGate 12c for Oracle Database - Integrated Capture sharing capture session

Nisharahmed Soneji
Senior Principal Product Manager, Oracle GoldenGate

Oracle
GoldenGate for Oracle Database has introduced several features in Release
12.1.2.1.0. In this blog post I would like to explain one of the interesting
features:  “Integrated Capture (a.k.a.
Integrated Extract) sharing capture session”. This feature allows making the
creation of additional Integrated Extracts faster by leveraging existing
LogMiner dictionaries. As Integrated Extract requires registering the Extract let’s
first see what is ‘Registering the Extract’?

REGISTER
EXTRACT EAMER DATABASE

The
above command registers the Extract process with the database for what is
called “Integrated Capture Mode”. In this mode the Extract interacts directly
with the database LogMining server to receive data changes in the form of
logical change records (LCRs).

When
you create Integrated Extract prior to release Oracle GoldenGate 12.1.2.1.0,
you might have seen the delay in registering the Extract with database. It is
mainly because the creation of Integrated Extract involves dumping the
dictionary and then processing that dictionary to populate LogMiner tables for
each session, which causes overhead to online systems and hence it requires
extra time to startup. The same process is being followed when you create additional
Integrated Extract.

What
if you could use the existing LogMiner dictionaries to create the additional Integrated
Extract? This is what it has been done in this release. Additional Integrated Extract
creation can be made faster significantly by leveraging existing LogMiner
dictionaries which have been mined already. Hence no more separate copy of the LogMiner
dictionaries to be dumped with each Integrated Extract. As a result, it will
make the creation of additional Integrated Extracts much faster and helps avoid
significant database overhead caused by dumping and processing the dictionary.

In
order to use the feature, you should have Oracle DB version 12.1.0.2 or higher,
and Oracle GoldenGate for Oracle version 12.1.2.1.0 or higher. The feature is currently
supported for non-CDB databases only.

Command
Syntax:

REGISTER EXTRACT group_mame
DATABASE

..

{SHARE
[AUTOMATIC | extract | NONE]}

It
has primarily three options to select with; NONE is default if you don’t
specify anything.

AUTOMATIC option will clone/share the LogMiner dictionary from the existing closest capture. If no suitable clone
candidate is found, then a new LogMiner dictionary is created.

Extract option will clone/share from the capture
session associated for the specified Extract. If this is not possible, then an
error occurs the register does not complete.

NONE option does not clone or create a new LogMiner
dictionary; this is the default.

While you use the feature, the SHARE options
should be followed by SCN and s
pecified SCN must be greater than or equal to
at least one of the first SCN of existing captures and specified SCN should be
less than current SCN.

Let’s see few behaviors prior to 12.1.2.1.0
release
and with SHARE options. 'Current SCN’ indicates the current SCN
value when register Extract command was executed in following example scenario.

Capture Name

LogMiner ID

First SCN

Start SCN

LogMiner Dictionary ID (LM-DID)

EXT1

1

60000

60000

1

EXT2

2

65000

65000

2

EXT3

3

60000

60000

3

EXT4

4

65000

66000

2

EXT5

5

60000

68000

1

EXT6

6

70000

70000

4

EXT7

7

60000

61000

1

EXT8

8

65000

68000

2

Behavior
Prior to 12.1.2.1.0 – No Sharing

Register
extract EXT1 with database (current
SCN: 60000)

Register
extract EXT2 with database (current
SCN: 65000)

Register
extract EXT3 with database SCN 60000 (current SCN: 65555)

Register
extract EXT4 with database SCN 61000   
à Error!!

Registration of Integrated Extract EXT1, EXT2
and EXT3 happene
d successfully where as EXT4 fails because the LogMiner server
does not exist at SCN 61000.

Also take a note that all Integrated Extract
(EXT1 – EXT3) created dictionaries separately (LogMiner Dictionary IDs are
different, now onwards I’ll call them LM-DID).

New
behavior with different SHARE options

  • Register extract EXT4 with database
    SHARE AUTOMATIC (current SCN: 66000)

EXT4
automatically chose the capture session EXT2 as it has Start SCN 65000 which is
nearer to current SCN 66000. Hence EXT4 & EXT3 capture sessions would share
the same LM-DID 2.

  • Register extract EXT5 with database
    SHARE EXT1 (current SCN: 68000)

EXT5
is sharing the capture session EXT1. Since EXT1 is up and running, it doesn’t
give any error. LM-DID 1 would be shared across EXT 5 and EXT1 capture
sessions.

  • Register extract EXT6 with database
    SHARE NONE (current SCN: 70000)

EXT6
is being registered with SHARE NONE option; hence the new LogMiner dictionary will
be created or dumped. Please see LM-DID column for EXT6 in above table. It
contains LM-DID value 4.

  • Register extract EXT7 with database
    SCN 61000 SHARE NONE (current SCN: 70000)

It
would generate an error as similar to EXT4 @SCN61000. The LogMiner Server
doesn’t exist at SCN 61000 and since the SHARE option is NONE, it won’t share
the existing LogMiner dictionaries as well. This is same behavior as prior to
12.1.2.1.0 release.

  • Register extract EXT7 with database
    SCN 61000 SHARE AUTOMATIC (current SCN: 72000)

EXT7
is sharing the capture session EXT1 as it is the closest for SCN61000. You must
have noticed that the EXT7 @SCN61000 scenario has passed with SHARE AUTOMATIC
option, which was not the case earlier (EXT4 @61000).

  • Register extract EXT8 with database
    SCN 68000 SHARE EXT2 (current SCN:
    76000)

EXT8
extract is sharing EXT2 capture session. Hence sharing of LogMiner dictionaries
happens between EXT8 & EXT2

This
feature is not only providing you faster start up for additional Integrated Extract,
but also resolves few scenarios which wasn’t possible earlier. If you are
using this feature and had questions or comments, please let me know by leaving
your comments below. I’ll reply to you as soon as possible.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.