You are on page 1of 32

Oracle GoldenGate on Linux: Bidirectional Replication from Oracle 11gR2 to Oracle 11gR2

Overview

Purpose

This Oracle­By­Example (OBE) tutorial covers installing, configuring, and managing Oracle GoldenGate version 11.2.1.0.2 on a pair of Linux Oracle
11gR2 databases.

Time to Complete

Approximately 3 hours

Introduction

Oracle GoldenGate provides very fast replication of heterogeneous databases by reading transaction logs and writing the changes to one or more
target databases. There are five processes involved in a typical environment:

Manager:
Starts and stops the other processes on both the source and target hosts. Not required once Extract or Replicat is running.
Initial Load:
Optional. Used to populate the target tables one time. It can read either from the source tables directly or from ASCII files. This OBE will not
use an Initial Load.
Extract:
Runs on the source to capture transaction data to trail files. There are two versions of Extract: Classic (this OBE) and Integrated.
Data Pump:
Optional, but highly recommended. Sends trail files from the source to the target over an IP network. Technically it is a secondary Extract.
Replicat:
Delivers data to the target database. Normally the Replicat runs on the target.

Scenario

There are two Linux hosts running Oracle 11gR2: host01 (red) and host02 (green). Host01 has a user/schema ogguser1 with a password of
pswd1u, and an administrator with a user/schema oggadm1 with a password of pswd1a.

Host02 has a user/schema ogguser2 with a password of pswd2u, and an administrator with a user/schema oggadm2 with a password of pswd2a.
There are tables on host01 (TCUSTMER and TCUSTORD) that need to be replicated to host02. Pay attention to the color of the screen banners to know
which commands are going to which host. Also note whether you are entering GGSCI commands, SQL commands, or OS commands (the prompt
will guide you).

Once the unidirectional replication is working, there is an optional desire to go bidirectional. That requires an additional instance of the Oracle
GoldenGate software (a second install directory).

In summary, the environment is:

Host Name Color OS SID User Password Port Install Directory

Host Name Color OS SID User Password Port Install Directory
ogguser1  pswd1u 
host01 Red Linux 64­bit orcl01 15001 /u01/app/oracle/ogg01
oggadm1 pswd1a

host02 Green Linux 64­bit orcl02 ogguser2  pswd2u  15002 /u01/app/oracle/ogg02
oggadm2 pswd2a

Hardware and Software Requirements

The following is a list of hardware and software requirements:

Hardware

Two Linux hosts: one source and one target. The example uses Oracle Enterprise Linux OEL 5.7, 64­bit. A different version of the Oracle
GoldenGate software will run on Windows, or 32­bit Linux as well. It is possible to have the source and target be on the same host, but that is
conceptually harder to visualize what is happening. If you do have only one host, it may be helpful to change the /etc/hosts file to make
aliases for host01.example.com and host02.example.com.

Software

Oracle GoldenGate on Oracle, Linux­64 ( Oracle Software Delivery Cloud ), version 11.2.1.0.2, part number V34339­01. This is the part
number for 64­bit Linux.
Oracle 11gR2 Database installed on both hosts.

Prerequisites

Before starting this tutorial, you should:

Have root access to the Linux software (write access to /etc)
Have web access to download the software and documentation.
Create a database instance with SID=orcl01 on host01, and a database instance with SID=orcl02 on host02.
Modify tnsnames.ora on both hosts so that they can talk to each other by SID.

Bear in mind that there are two hosts: host01 and host02; and that each host has three environment prompts: OS, GGSCI, and SQL. That makes six
different places in which you could be typing! Try to be extra careful about which command you enter in which location. The wrong command in the
wrong context is the most common error.

Typographic Conventions

Text color and font in the directions and in the screens should be interpreted as follows:

Some_Command
You type this as a command or a value. Example:
“ Enter ./ggsci to start the command line interpreter. ”
Some_Prompt
The system responds with this as a prompt or reply. Example:
“ After the welcome splash banner, you can enter commands at the GGSCI (host01) 1> prompt. ”
Some_Button
Click this on­screen button. Example: 
“ After selecting the version you want, click Continue to start the download. ”
Some_Variable
A variable that you substitute with a real value. Example:
“ Enter your userid/password at the prompt. ”
Some_Filename
A filename, path, or folder/directory. Example:
“ Edit the hosts file in the /etc directory. ”
Some_Code
A keyword or code element. Example:
“ Change the parameter HandleCollisions to NoHandleCollisions after the initial load. ”

Also be careful about letter "oh" versus number "zero." The SID is orcl01 (leading oh and trailing zero­one).

File and Process Naming Conventions

File and process naming conventions can be whatever works for you or your company. Here are the sample conventions used in this OBE: 
  pxxxxhh.ext 
where:

p=process=
e(xtract), p(ump), r(eplicat), i(nitial), d(efgen), s(tartup).
xxxx=project=
All files related to a common project xxxx, for example hr, sales, engr.
hh=host­to­host=
aa, ab, ba, bb, as indicated by source and target host names where a=host01, and b=host02. Later on you will see that you cannot use
numbers as part of some file names, so better not to go there at all.
ext=extension=
prm=parameter (stored in dirprm/), dsc=discard, rpt=report (stored in dirrpt/), def=definition (stored in dirdef/), oby=obey (stored in
installation directory), sql=SQL (stored in dirsql/).

1. Installing the Softw are

The installation of the software is simply fetching the zip files from the web and unzipping them. To install the Oracle GoldenGate software, perform

The installation of the software is simply fetching the zip files from the web and unzipping them. To install the Oracle GoldenGate software, perform
the following steps:

1.1 Accessing Oracle GoldenGate Documentation
1.  Access the documentation library.

Using a web browser, go to http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.html. You have the
option to either read the documents online, or to download the library to your local workstation as either PDF or HTML format.

Click View Library.

Click Oracle Installation and Setup Guide. Read the Installation Guide for Oracle.

You have successfully accessed Oracle GoldenGate documentation as a prerequisite for installing the software.

1.2 Installing Oracle GoldenGate on Linux
1.  Copy the software from Oracle Software Delivery Cloud.

Using a web browser, go to https://edelivery.oracle.com and click Sign In. On the Terms and Conditions page, select Yes for both
agreements, and click Continue.

On the Media Pack Search page, select Product Pack = Oracle Fusion Middleware, and Platform = Linux x86­64.

Click Continue. Create the installation directory to receive the Oracle GoldenGate software. Unzip it and untar (extract) it.0. Click Go.  Unpack the software in its directory on host01 (red)." Click Download.2. Host01 ­ Linux . Make sure you are looking at part number V34339­01 for "Oracle GoldenGate V11. Host01 ­ Linux [oggadm1@host01 /]$ cd /u01/app/oracle  [oggadm1@host01 oracle]$ mkdir ogg01  [oggadm1@host01 ogg01]$ cd ogg01/  [oggadm1@host01 ogg01]$                                                          Copy the downloaded zip from wherever you downloaded it to ogg01/.1.1 Media Pack for Linux x86­64.3 for Oracle 11g on Linux x86­64. Select Oracle GoldenGate on Oracle v11. 2.2.

[oggadm1@host01 ogg01]$ cp /stage/V34339­01.0...txt [oggadm1@host01 ogg01]$                                                          Be mindful of the trailing dot in the copy command.zip .1. Oracle and/or its affiliates.tar     inflating: Oracle_GoldenGate_11.2. Unpack the software in its directory on host02 (green).  [oggadm2@host02 ogg02]$ unzip V34339­01.  [oggadm1@host01 ogg01]$ unzip V34339­01.3.2.1.0. Create the installation directory to receive the Oracle GoldenGate software. All rights reserved. Create the default empty subdirectories.HPUX  .  ulg.. 2012.sql usrdecs.2.pdf   [oggadm2@host02 ogg02]$ tar ­xvpf fbo_ggs_Linux_x64_ora11g_64bit.doc     inflating: Oracle GoldenGate_11. Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995. GGSCI (host01) 1> Create Subdirs  Creating subdirectories under current directory /u01/app/oracle/ogg01 Parameter files            /u01/app/oracle/ogg01/dirprm: already exists Report files               /u01/app/oracle/ogg01/dirrpt: created Checkpoint files           /u01/app/oracle/ogg01/dirchk: created Process status files       /u01/app/oracle/ogg01/dirpcs: created SQL script files           /u01/app/oracle/ogg01/dirsql: created Database definitions files /u01/app/oracle/ogg01/dirdef: created Extract data files         /u01/app/oracle/ogg01/dirdat: created Temporary files            /u01/app/oracle/ogg01/dirtmp: created Stdout files               /u01/app/oracle/ogg01/dirout: created GGSCI (host01) 2> Exit  [oggadm1@host01 ogg01]$                                                          If a directory already exists..txt .3_PLATFORMS_120823.1.. 4.0.1258_FBO Linux.tar     inflating: Oracle_GoldenGate_11. the installation leaves the contents of that directory alone.h zlib.0.HPUX  ..h zlib. Host02 ­ Linux [oggadm2@host02 /]$ cd /u01/app/oracle  [oggadm2@host02 oracle]$ mkdir ogg02  [oggadm2@host02 ogg02]$ cd ogg02/  [oggadm2@host02 ogg02]$                                                          Copy the downloaded zip from wherever you downloaded it to ogg02/.1.1.zip   inflating: fbo_ggs_Linux_x64_ora11g_64bit.3_README. x64.0.sql usrdecs.3.2.1..2.txt     inflating: OGG_WinUnix_Rel_Notes_11.tar  UserExitExamples/ UserExitExamples/ExitDemo_more_recs/ UserExitExamples/ExitDemo_more_recs/Makefile_more_recs. Unzip it and untar (extract) it./ggsci  Oracle GoldenGate Command Interpreter for Oracle Version 11.txt     inflating: OGG_WinUnix_Rel_Notes_11.0.  Start the GoldenGate Software Command Interface (GGSCI). Host01 ­ Linux [oggadm1@host01 ogg01]$ ..1.zip   inflating: fbo_ggs_Linux_x64_ora11g_64bit.  Do the same steps for the other host.1. 3.3_README.2. 64bit (optimized).0.tar  UserExitExamples/ UserExitExamples/ExitDemo_more_recs/ UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.doc     inflating: Oracle GoldenGate_11.3_README.2.0. many lines omitted for clarity .zip   Archive:  V34339‐01.  ulg.3 14400833 OGGCORE_11. many lines omitted for clarity .2.pdf   [oggadm1@host01 ogg01]$ tar ­xvpf fbo_ggs_Linux_x64_ora11g_64bit. Host02 ­ Linux [oggadm2@host02 ogg02]$ cp /stage/V34339­01.zip .zip   Archive:  V34339‐01.3_README.

zlib. Host02 ­ Linux [oggadm2@host02 ogg02]$ .1 Configuring the Oracle 11gR2 Databases 1. the installation leaves the contents of that directory alone.3. If it is.1. SQL> startup mount  ORACLE instance started.2.1.0.2.  Start the GoldenGate Software Command Interface (GGSCI).0.0.2. 64bit (optimized). Connected to: Oracle Database 11g Enterprise Edition Release 11. Oracle.0 ‐ 64bit Production With the Partitioning.3_PLATFORMS_120823.0. OLAP.txt [oggadm2@host02 ogg02]$                                                          5. verify that LOG_MODE is set to ARCHIVELOG. ORACLE instance shut down. Database dismounted. Total System Global Area 3340451840 bytes Fixed Size                  2232960 bytes Variable Size            1811942784 bytes Database Buffers         1509949440 bytes . then do the following: Host01 ­ Linux LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ NOARCHIVELOG SQL> shutdown immediate  Database closed. Configuring the Environment The configuration of the environment is done by editing ASCII files and running OS utilities./ggsci  Oracle GoldenGate Command Interpreter for Oracle Version 11. Create the default empty subdirectories. GGSCI (host02) 1> Create Subdirs  Creating subdirectories under current directory /u01/app/oracle/ogg02 Parameter files            /u01/app/oracle/ogg02/dirprm: already exists Report files               /u01/app/oracle/ogg02/dirrpt: created Checkpoint files           /u01/app/oracle/ogg02/dirchk: created Process status files       /u01/app/oracle/ogg02/dirpcs: created SQL script files           /u01/app/oracle/ogg02/dirsql: created Database definitions files /u01/app/oracle/ogg02/dirdef: created Extract data files         /u01/app/oracle/ogg02/dirdat: created Temporary files            /u01/app/oracle/ogg02/dirtmp: created Stdout files               /u01/app/oracle/ogg02/dirout: created GGSCI (host02) 2> Exit  [oggadm2@host02 ogg02]$                                                          If a directory already exists. then skip to the next step. If the result is NOARCHIVELOG. On host01. perform the following steps: 2. 2012.1258_FBO Linux.3 14400833 OGGCORE_11. You have successfully installed Oracle GoldenGate on Linux hosts host01 and host02. All rights reserved. 2011. x64.2.0 Production on Mon Sep 17 17:19:01 2012 Copyright (c) 1982. 2.  This section must be done in SQL*Plus as sysdba. Oracle and/or its affiliates.  All rights reserved. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus / as sysdba  SQL*Plus: Release 11. To configure the environment. Data Mining and Real Application Testing options SQL> SELECT log_mode FROM v$database;  LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ ARCHIVELOG SQL>                                                                             The result should be ARCHIVELOG. Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995.3.

 and the administrator would have less privileges. SQL> ALTER DATABASE OPEN;  Database altered. Oddly. SQL> ALTER SYSTEM SWITCH LOGFILE;  System altered. 3.  SQL> GRANT dba TO oggadm1;  Grant succeeded.GRANT_ADMIN_PRIVILEGE (grantee=>'OGGADM1'.  SQL> EXEC DBMS_GOLDENGATE_AUTH. SQL> ALTER DATABASE ARCHIVELOG;  Database altered. the user/schema owner would probably have more privileges.grant_select_privileges=>true. supplemental_log_data_min FROM v$database; FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ YES YES SQL>                                                                             There is no harm in doing the commands twice. SQL> ALTER DATABASE FORCE LOGGING;  Database altered. If it is. In real life. Host01 ­ Linux SQL> SELECT force_logging. SQL> SELECT log_mode FROM v$database;  LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ ARCHIVELOG SQL>                                                                             2. UNLIMITED TABLESPACE TO ogguser1;  Grant succeeded. SQL> SELECT force_logging. the DBA role is not sufficient for advanced scenarios; you must also run the DBMS_GOLDENGATE_AUTH package. so it is a good idea to see it here. then skip to the next step. Host01 ­ Linux SQL> CREATE USER ogguser1 IDENTIFIED BY pswd1u;  User created. SQL> CREATE USER oggadm1 IDENTIFIED BY pswd1a;  User created. If either result is NO. When keying in the DBMS_GOLDENGATE_AUTH command. RESOURCE. supplemental_log_data_min FROM v$database; FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ YES YES SQL>                                                                             The results should both be YES. SQL> exit  [oggadm1@host01 ogg01]$                                                          . then do the following: Host01 ­ Linux FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ NO  NO SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;  Database altered.  Verify that supplemental logging and forced logging are set properly. SQL> GRANT CONNECT. the entire string after EXEC is without spaces or line breaks.  Create the administrator and user/schema owners on host01.privile ge_type=>'capture'. do_grants=>TRUE);  PL/SQL procedure successfully completed. but is commonly used in more advanced configurations. Database Buffers         1509949440 bytes Redo Buffers               16326656 bytes Database mounted. The DBMS_GOLDENGATE_AUTH package is not needed for this OBE.

 then skip to the next step.0 ‐ Production on 17‐SEP‐2012 18:52 Copyright (c) 1997.com)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = orcl02.0/dbhome_ 1/network/admin/tnsnames.2. then do the following to examine tnsnames.0. Data Mining and Real Application Testing options SQL> SELECT log_mode FROM v$database;  LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ ARCHIVELOG SQL>                                                                             The result should be ARCHIVELOG.ora. OLAP. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)( HOST = host02. If it is not OK.3.0. Oracle.3. If it is.  Everything you did for the database orcl01 on host01 needs to be done for orcl02 on host02.0 ‐ 64bit Production With the Partitioning. 2011. example. then do the following: . Oracle. verify that LOG_MODE is set to ARCHIVELOG.ora  # tnsnames.com)     )   ) ORCL01 =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = host01.0.0 ‐ Production on 17‐SEP‐2012 18:52 Copyright (c) 1997. 2011. Test inter­database communication with tnsping.example.3. then skip to the next step.com))) OK (10 msec) [oggadm1@host01 ogg01]$                                                          The results should be OK.2. Host01 ­ Linux [oggadm1@host01 ogg01]$ tnsping orcl01  TNS Ping Utility for Linux: Version 11. On host02.0 Production on Mon Sep 17 17:19:01 2012 Copyright (c) 1982. If the result is NOARCHIVELOG.  All rights reserved.3.2. ORCL02 =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = host02.  All rights reserved.0.  Verify that both databases can talk to each other.2.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl02. Host01 ­ Linux [oggadm1@host01 ogg01]$ more $ORACLE_HOME/network/admin/tnsnames.example. example.com)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = orcl01.example.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl01.  All rights reserved.ora # Generated by Oracle configuration tools.example.ora. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)( HOST = host01.ora Network Configuration File: /u01/app/oracle/product/11. 5.4. 2011. If it is.2. Host02 ­ Linux [oggadm2@host02 ogg02] sqlplus / as sysdba  SQL*Plus: Release 11.com))) OK (0 msec) [oggadm1@host01 ogg01]$ tnsping orcl02;  TNS Ping Utility for Linux: Version 11. Oracle.com)     )   ) [oggadm1@host01 ogg01]$                                                          You should have orcl01 and orcl02 defined in tnsnames.example. Connected to: Oracle Database 11g Enterprise Edition Release 11.example.

 If either result is NO. supplemental_log_data_min FROM v$database; FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ YES YES SQL>                                                                             There is no harm in doing the commands twice. SQL> SELECT log_mode FROM v$database;  LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ ARCHIVELOG SQL>                                                                             6. SQL> ALTER DATABASE FORCE LOGGING;  Database altered. supplemental_log_data_min FROM v$database; FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ YES YES SQL>                                                                             The results should both be YES. UNLIMITED TABLESPACE TO ogguser2;  . Database dismounted. SQL> ALTER DATABASE OPEN;  Database altered.  Verify that supplemental logging and forced logging are set properly. 7. SQL> GRANT CONNECT. Host02 ­ Linux SQL> CREATE USER ogguser2 IDENTIFIED BY pswd2u;  User created. If it is. SQL> startup mount  ORACLE instance started. Total System Global Area 3340451840 bytes Fixed Size                  2232960 bytes Variable Size            1811942784 bytes Database Buffers         1509949440 bytes Redo Buffers               16326656 bytes Database mounted. SQL> ALTER DATABASE ARCHIVELOG;  Database altered. then skip to the next step. Host02 ­ Linux LOG_MODE ‐‐‐‐‐‐‐‐‐‐‐‐ NOARCHIVELOG SQL> shutdown immediate  Database closed. RESOURCE. SQL> ALTER SYSTEM SWITCH LOGFILE;  System altered. SQL> CREATE USER oggadm2 IDENTIFIED BY pswd2a;  User created. Host02 ­ Linux SQL> SELECT force_logging.  Create the administrator and user/schema owners on host02. SQL> SELECT force_logging. ORACLE instance shut down. then do the following: Host02 ­ Linux FOR SUPPLEME ‐‐‐ ‐‐‐‐‐‐‐‐ NO  NO SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;  Database altered.

0.ora # Generated by Oracle configuration tools.example.com))) OK (10 msec) [oggadm2@host02 ogg02]$                                                          The results should be OK. SQL> GRANT CONNECT./GLOBALS  except that for it to take effect. Oracle. example. Host02 ­ Linux [oggadm2@host02 ogg02]$ more $ORACLE_HOME/network/admin/tnsnames. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)( HOST = host01.example.ora  # tnsnames.example.3. The databases on host01 and host02 are configured to support Oracle Goldengate. 2011. Oracle.0.com)     )   ) ORCL01 =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = host01.com)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = orcl02.0/dbhome_ 1/network/admin/tnsnames. example.ora.com)     )   ) [oggadm2@host02 ogg02]$                                                          You should have orcl01 and orcl02 defined in tnsnames.  All rights reserved.2.ora Network Configuration File: /u01/app/oracle/product/11. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)( HOST = host02. then do the following to examine tnsnames.2. Users on each database are provisioned: one (or more) user and an administrator for each host.2 Creating Startup Files and Managers 1.  SQL> GRANT dba TO oggadm2;  Grant succeeded. Test inter­database communication with tnsping. It is possible to create and/or edit the GLOBALS file from inside GGSCI by prepending the name with ".com))) OK (0 msec) [oggadm2@host02 ogg02]$ tnsping orcl02;  TNS Ping Utility for Linux: Version 11.  SQL> EXEC DBMS_GOLDENGATE_AUTH. 2.example.  Verify that both databases can talk to each other.example./".0 ‐ Production on 17‐SEP‐2012 18:52 Copyright (c) 1997.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl01. ORCL02 =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = host02. 2011.ora.2.com)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = orcl01.grant_select_privileges=>true. so you might as well do the editing outside GGSCI before you start . then skip to the next step.  Create the GLOBALS file on host01 (red) in the Oracle GoldenGate installation directory using your text editor of choice.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl02. you have to leave and reenter GGSCI. Host02 ­ Linux [oggadm2@host02 ogg02]$ tnsping orcl01  TNS Ping Utility for Linux: Version 11. If it is not OK. UNLIMITED TABLESPACE TO ogguser2;  Grant succeeded. do_grants=>TRUE);  PL/SQL procedure successfully completed. SQL> exit  [oggadm2@host02 ogg02]$                                                          8.0 ‐ Production on 17‐SEP‐2012 18:52 Copyright (c) 1997. If it is.3.privile ge_type=>'capture'.example.  All rights reserved. For example:  GGSCI> Edit Param .GRANT_ADMIN_PRIVILEGE (grantee=>'OGGADM2'. RESOURCE.

  Create the optional startup. 2. You can use any schema and any name.oby (Obey) file on host02 (green) in the Oracle GoldenGate installation directory. Password pswd1a Start Mgr Info Mgr Info CheckpointTable  Set Editor gedit  [oggadm1@host01 ogg01]                                                           DBLogin: Connects to the DB using the userid@SID/password specified.oggchkpt  [oggadm2@host02 ogg02]$                                                          Any change to the GLOBALS file requires a restart of GGSCI.oby. and if so. so you will find yourself entering them many. Host01 ­ Linux [oggadm1@host01 ogg01] vi startup. Host01 ­ Linux [oggadm1@host01 ogg01] .  Create the optional startup. This will be revisited later in the naming conventions of process files. This is persistent between sessions. startup03.prm) file on host01 in dirprm/. 4. Info CheckpointTable: Reports if a checkpoint table (used by Replicat) was found. You can temporarily change that to a GUI editor such as gedit. and it contains only one line (plus ­­comments) defining the checkpoint table schema and name. so you might as well do the editing outside GGSCI before you start GGSCI the first time.  Create the Manager parameter (mgr.  Create the GLOBALS file on host02 (green) in the Oracle GoldenGate installation directory. The GLOBALS file name must be all UPPERCASE. Start Mgr: If the Manager is already started.oby ­­ Created by Joe Admin 10/11/2012 on host02 DBLogin UserID oggadm2@orcl02. Edit the file with no extension.oby (Obey) file on host01 (red) in the Oracle GoldenGate installation directory.oby ­­ Created by Joe Admin 10/11/2012 on host01 DBLogin UserID oggadm1@orcl01. Host02 ­ Linux [oggadm2@host02 ogg02]$ vi startup. Info Mgr: Reports if the Manager started successfully. there is no harm in trying to start it again. and therefore it is convenient to create a startup obey file. many times. The @SID is optional if there is no ambiguity.oggchkpt  [oggadm1@host01 ogg01]                                                           Checkpoint tables are only used by the Replicat. These are GGSCI commands that are done almost every time you start GGSCI. Start GGSCI. except that for it to take effect. and so on. Host02 ­ Linux [oggadm2@host02 ogg02]$ vi GLOBALS ­­ Created by Joe Admin 10/11/2012 on host02 CheckpointTable oggadm2.oby. You can use vi or gedit or any text editor. Host01 ­ Linux [oggadm1@host01 ogg01] vi GLOBALS ­­ Created by Joe Admin 10/11/2012 on host01 CheckpointTable oggadm1. the port number being used. startup02. If you have several different databases or schemas that you login to on a regular basis. you have to leave and reenter GGSCI. Having it present and unused does not hurt anything. and they do not persist between sessions. Add the two lines (plus comments). you may want to make startup01. 3. Password pswd2a Start Mgr Info Mgr Info CheckpointTable  Set Editor gedit  [oggadm2@host02 ogg02]$                                                          5./ggsci  . so this will not be used until the bidirectional section. Set Editor: The default is vi.oby.

15001).1. Checkpoint table oggadm1. GGSCI (host01) 6> Start Mgr Manager started. Oracle and/or its affiliates.1258_FBO Linux. Nevertheless./dirdat/*. GGSCI (host01) 8> Info CheckpointTable  No checkpoint table specified. .0. GGSCI (host02) 1> Edit Param mgr  ­­ Created by Joe Admin 10/11/2012 on host02 Port 15002 PurgeOldExtracts . 64bit (optimized). 7. Host01 ­ Linux GGSCI (host01) 3> Obey startup. you don't have to make the ports different. Oracle and/or its affiliates.oby  GGSCI (host02) 4> ‐‐ Created by Joe Admin 10/11/2012 on host02 GGSCI (host02) 5> DBLogin UserID oggadm2@orcl02. 64bit (optimized). All rights reserved.prm extension and stores the file in the dirprm/ directory. 2012. GGSCI converts the filename to UPPERCASE and stores it in the installation directory which renders the file practically unusable. If the Oracle GoldenGate instances are on different hosts. Alternatively.0. UseCheckpoints  GGSCI (host02) 2> Info mgr  Manager is DOWN! GGSCI (host02) 3>                                                                Notice that the port number is different from host01 to host02.oby  GGSCI (host01) 4> ‐‐ Created by Joe Admin 10/11/2012 on host01 GGSCI (host01) 5> DBLogin UserID oggadm1@orcl01. GGSCI automatically adds the . 8.  Start the Manager on host02 using the Obey files. Password pswd1a Successfully logged into database. Host02 ­ Linux GGSCI (host02) 3> Obey startup.1258_FBO Linux. GGSCI (host01) 7> Info Mgr Manager is running (IP port host01. x64. it is a good practice to make the ports unique.com. x64.oggchkpt).1./ggsci  Oracle GoldenGate Command Interpreter for Oracle Version 11.3_PLATFORMS_120823. Oracle GoldenGate Command Interpreter for Oracle Version 11.2.  Start the Manager on host01 using the Obey files.1./dirdat/*. If you wrongly add the extension yourself. All rights reserved. Password pswd2a Successfully logged into database. using GLOBALS specification (oggadm1. 2012. GGSCI (host01) 9> Set Editor gedit  GGSCI (host01) 10>                                                               You will create the checkpoint table in the next step..  Create the Manager parameter (mgr.example.3 14400833 OGGCORE_11..2.oggchkpt does not exist. Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995. you could type each of the lines every time you start GGSCI.prm) file on host02 in dirprm/.2. Host02 ­ Linux [oggadm2@host02 ogg02]$ . GGSCI (host02) 6> Start Mgr Manager started.0. as long as the comb ination of IP address plus port is unique. 6.0.1.3 14400833 OGGCORE_11. GGSCI (host01) 1> Edit Param mgr  ­­ Created by Joe Admin 10/11/2012 on host01 Port 15001 PurgeOldExtracts . Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995.2. UseCheckpoints  GGSCI (host01) 2> Info mgr  Manager is DOWN! GGSCI (host01) 3>                                                                Note: If you do it correctly.3_PLATFORMS_120823.

Host02 ­ Linux GGSCI (host02) 10>  Add CheckpointTable  No checkpoint table specified. If not.3.0 ‐ 64bit Production With the Partitioning. using GLOBALS specification (oggadm2.3 Creating Tables 1.2. SQL> exit  [oggadm1@host01 ogg01]                                                           .oggchkpt does not exist. Data Mining and Real Application Testing options DROP TABLE tcustmer            * ERROR at line 1: ORA‐00942: table or view does not exist Table created. 2. Oracle. and the background Manager processes are started. If you have no preference.0.oggchkpt).2. You can verify which processes are running at any time by entering the command: GGSCI (host) > Info All 2.  Create empty source sample tables on host01 in schema ogguser1. GGSCI (host02) 8> Info CheckpointTable  No checkpoint table specified.  Create the checkpoint table on host01. Connected to: Oracle Database 11g Enterprise Edition Release 11. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_create. GGSCI (host02) 11>  Exit   [oggadm2@host02 ogg02]$                                                          3.oggchkpt). so this is will not be used for unidirectional replication. using GLOBALS specification (oggadm1.. but will be used for bidirectional replication when host01 becomes the target. The global and startup files are all created.oggchkpt). Oracle GoldenGate software comes with a script demo_ora_create.oggchkpt. Checkpoint table oggadm2.sql to create two small sample tables tcustmer and tcustord. GGSCI (host02) 9> Set Editor gedit  GGSCI (host02) 10>                                                               You will create the checkpoint table in the next step.. Manager started. (This is not needed on the source. You can use any SQL utility you like to run the script.oggchkpt.) Host01 ­ Linux GGSCI (host01) 10>  Add CheckpointTable  No checkpoint table specified.0.0 Production on Tue Sep 18 14:38:50 2012 Copyright (c) 1982. GGSCI (host02) 7> Info Mgr Manager is running (IP port host02.sql  SQL*Plus: Release 11.3. you can use those. use sqlplus. DROP TABLE tcustord            * ERROR at line 1: ORA‐00942: table or view does not exist Table created. Successfully created checkpoint table oggadm1. 2011.15002).  All rights reserved. If you already have sample tables.com.  Create the checkpoint table on host02. Successfully created checkpoint table oggadm2. using GLOBALS specification (oggadm2. OLAP. GGSCI (host01) 11>  Exit   [oggadm1@host01 ogg01]                                                           One checkpoint table will suffice for the whole schema.example.

oby   .TCUST MER. GGSCI (host01) > Info TranData ogguser1. If you run the script a second time you won't see those errors.TCUSTORD Found 2 tables matching list criteria. Data Mining and Real Application Testing options DROP TABLE tcustmer            * ERROR at line 1: ORA‐00942: table or view does not exist Table created. Columns supplementally logged for table OGGUSER1. ORDER_DATE..*  2. it will drop the tables! 4.  Create empty target sample tables on host02 in schema ogguser2.2.tcust*  Logging of supplemental redo log data is already enabled for table OGGUSER1.0. The ORA­00942 "errors" are okay to ignore..0 Production on Tue Sep 18 14:44:06 2012 Copyright (c) 1982. GGSCI (host01) > List Tables ogguser1. and therefore the empty tables could be created on the target in other ways before any DML replication begins.sql  SQL*Plus: Release 11.TCUSTORD: CUST_CODE. Warning! If you run the script a second time.TCUSTMER. Oracle. but make sure everything started.TCUSTMER: CUST_CODE.TCUSTORD.*  OGGUSER1.TCUSTMER. Host02 ­ Linux [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u @demo_ora_create.4 Adding Transaction Data 1. OLAP.TCUSTMER OGGUSER1.. . many lines omitted for clarity . GGSCI (host01) > Add TranData ogguser1.OGGCHKPT_LOX Found 2 tables matching list criteria. GGSCI (host01) > Add TranData ogguser1..3. Logging of supplemental redo data enabled for table OGGUSER1. Host01 ­ Linux [oggadm1@host01 ogg01] . many lines omitted for clarity . SQL> exit  [oggadm2@host02 ogg02]$                                                          Oracle 11gR2 does support replicating DDL such as CREATE TABLE. You can check on the tables available any time GGSCI is running (after you have run Obey startup.. 2011.TCUSTORD.*  Logging of supplemental redo log data is enabled for table OGGUSER1.  Restart GGSCI and run Add TranData for the whole user schema. Logging of supplemental redo log data is enabled for table OGGUSER1... DROP TABLE tcustord            * ERROR at line 1: ORA‐00942: table or view does not exist Table created./ggsci  Oracle GoldenGate Command Interpreter for Oracle  . GGSCI (host01) > List Tables *  OGGADM1.0.OGGCHKPT OGGADM1.oby to login to the database) by entering the commands: GGSCI (host) >  List Tables *  GGSCI (host) >  List Tables ogguser1.  GGSCI (host01) 1> Obey startup.3. Connected to: Oracle Database 11g Enterprise Edition Release 11.2. Columns supplementally logged for table OGGUSER1.tcustmer  Logging of supplemental redo data enabled for table OGGUSER1..  All rights reserved.0 ‐ 64bit Production With the Partitioning.

5 Creating Column Definitions (defgen) 1. Please review the File and Process Naming Conventions in the Overview Topic. GGSCI (host01) xx>                                                             Note that you can add transaction data for an individual table or for wildcards. Password pswd1a Table ogguser1. Any new table added to the schema becomes automatically enabled for transaction data logging (with plain old TranData you would have to manually add new tables each time for supplemental logging. GGSCI (host02) > Add SchemaTranData ogguser2  2012‐09‐18 15:18:34  INFO    OGG‐01788  SCHEMATRANDATA has been added on schema o gguser2. many lines omitted for clarity ./ggsci  Oracle GoldenGate Command Interpreter for Oracle  . many lines omitted for clarity .. many lines omitted for clarity .. The wildcards can be for a whole schema. but is still highly recommended even if the tables have the same (homogeneous) structure.tcust*;  GGSCI (host01) >  Exit  [oggadm1@host01 ogg01] . but they are in fact enabled.. but will be used for bidirectional replication when host02 becomes the source.TCUSTMER OGGUSER2.  PRODUCT_CODE.  Create the column mapping from source to target tables using the OS utility. GGSCI (host02) >  List Tables ogguser2.. GGSCI (host02) xx>                                                             The end result for replication is the same.  Expanding wildcard ogguser1. so this is will not be used for unidirectional replication. ORDER_ID. Columns supplementally logged for table OGGUSER1. 2. 2.TCUSTMER Retrieving definition for OGGUSER1. Purge UserID oggadm1@orcl01. Host02 ­ Linux [oggadm2@host02 ogg02] .. There is no harm in adding transaction data twice.TCUSTORD: CUST_CODE... but make sure everything started.def [oggadm1@host01 ogg01]                                                           You can create definitions for a single table. The transaction data has been enabled for all user tables involved with Oracle GoldenGate.  GGSCI (host02) 1> Obey startup. GGSCI (host02) > Info SchemaTranData ogguser2  2012‐09‐18 15:21:06  INFO    OGG‐01785  Schema level supplemental logging is enab led on schema OGGUSER2. Host01 ­ Linux GGSCI (host01) >  Edit Param dsalesab ­­ defgen column definitions for Sales: tcust* from host01 (a) to host02 (b) ­­ Created by Joe Admin on 10/11/2012 DefsFile dirdef/dsalesab.. you may be able to use the AssumeTargetDefs parameter instead of the SourceDefs parameter. ORDER_DATE.TCUSTORD Definitions generated for 2 tables in dirdef/dsalesab.tcust*: Retrieving definition for OGGUSER1.) Use SchemaTranData instead of just TranData. (This is not needed on the target.  Do almost the same thing on host02. If they do have the same structure. or multiple schemas at a time. but there are several administrative differences when using SchemaTranData: No tables show up when you query Info TranData ogguser2. multiple tables (using wildcards). but there is a better way to do whole schemas.) Not all other OEM databases support SchemaTranData..oby   . .*.prm  ***********************************************************************       Oracle GoldenGate Table Definition Generator for Oracle  .. an entire schema.def. This is covered later. This utility is required if the tables have a different (heterogeneous) structure./defgen paramfile dirprm/dsalesab.*  OGGUSER2...TCUSTORD Found 2 tables matching list criteria.

Use whatever method you wish to copy the . oggadm2@host02's password: ******** dsalesab. To configure data capture.profile or in the UserID or here in the SETENV. known as a Data Pump.tcust*;  GGSCI (host01) >                                                                 Some of the parameters: ­­ : A comment. though if you define it here it overrrides any previous definitions in the . 3. create the primary Extract parameter file. and so on.def files to the target dirdef directory: cut­n­paste.1 Configuring the Primary Extract 1. ftp. All of this is just convention. Password pswd1a ­­ TranLogOptions ExcludeUser oggadm1 Table ogguser1.29' (RSA) to the list of known hosts. Do not break the command line after /u01/app/oracle/og. Using the naming conventions discussed in the Overview. in which case the suffix would be "ab". or multiple schemas at a time. Only one place is necessary. as well as storing parameters inline that may be used later. Host02 ­ Linux [oggadm2@host02 ogg02]$ ls ­l dirdef total 4 ‐rw‐r‐‐r‐‐ 1 oggadm2 oinstall 1877 Sep 18 13:43 dsalesab. unused by Oracle GoldenGate) definitions in the file is not a problem.def before sending it over to host02. also known as Extract.  GGSCI (host01) 1> Obey startup. the path/filename. but make sure everything started... but since it is going to a local data pump before leaving the source host. (The primary extract can write a trail file directly to the target host. is optional but highly recommended.def                                   100% 1877     1. If the table structure changes.  On source host01. GGSCI (host01) > Edit Param esalesaa  ­­ Primary Extract from host01 to host02 ­­ Created by Joe Admin on 10/11/2012 ­­ SETENV(ORACLE_SID = "orcl01") Extract esalesaa ExtTrail .def [oggadm2@host02 ogg02]$                                                          The column definitions are created and copied. You can create definitions for a single table./ggsci  Oracle GoldenGate Command Interpreter for Oracle  . Host01 ­ Linux [oggadm1@host01 ogg01] scp dirdef/dsalesab. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'host02.. an entire schema.. the suffix is "aa". scp.profile. for example pswd2a.. many lines omitted for clarity .. multiple tables (using wildcards). Configuring Data Capture Using Extract Data capture..29)' can't be established.oby   .  Copy the files from source host01 to target host02. is done on the source side. 2.. The path and extension will be added automatically. ExtTrail: Not really "external" if you are using a data pump.def oggadm2@host02:/u01/app/oracle/og g02/dirdef The authenticity of host 'host02 (192.0. Having "excess" (that is. Useful for self­documenting files. perform the following steps: 3. You may want to examine the contents of dirdef/dsalesab. A primary extract is required; a secondary extract. 3.  Make sure the files arrived intact on host02 in the proper directory./dirdat/aa UserID oggadm1@orcl01.2. you can name the processes anything you want. RSA key fingerprint is 8e:60:d0:a7:fc:55:6e:d9:81:bb:c9:90:19:f4:a8:11.) Host01 ­ Linux [oggadm1@host01 ogg01] .prm. The example will use secure shell copy (scp). you need to do this again.8KB/s   00:00 [oggadm1@host01 ogg01]                                                           Of course you replace the asterisks with your password. aa: . the scp command is entered all on one line.2. many lines omitted for clarity .0.192.ext will be dirprm/esalesaa. SETENV: You have to define SID (the Database System Identifier) somewhere: either in the .

 The default is 100 Megabytes. 2. 3.  Create the secondary Extract (data pump) parameter file.  Create the data pump group and the remote Extract trail file. Compress RmtTrail . the trail files are named aa000000. GGSCI (host01) >                                                                 The Megabytes 5 is optional. The secondary Extract has been created and configured. then when that one fills up the next will be dirdat/ab000001./dirdat/aa. but that is beyond the scope of this exercise. ExtTrailSource . but not started.tcust*;  GGSCI (host01) >                                                                 This Table schema is the source. Extract psalesab. GGSCI (host01) >                                                                 The Megabytes 5 is optional. the path/filename. Extract esalesaa. TranLogOptions : Used later by bidirectional replication to prevent loops. Megabytes 5 RMTTRAIL added. You can check your work by entering View Param psalesab any time. but not started. aa000002. Megabytes 5 EXTTRAIL added.  Make sure the Extract processes were created and registered correctly. The primary Extract has been created and configured. MgrPort 15002. each with one table name (with optional wildcards) resolving to zero. You cannot use a wildcard in the schema name. Since the two sets of trail files are on different hosts (even though they are in directories with the same names). and so on.prm. Leave GGSCI running for the next step. For example. TranLog. The data pump reads from the local trail file aa and writes to the remote trail file ab. 2. Table: You can have multiple Table statements. then dirdat/ab000002. Host01 ­ Linux GGSCI (host01) > Edit Param psalesab  ­­ Data pump (secondary Extract) from host01 to host02 ­­ Created by Joe Admin on 10/11/2012 Extract psalesab RmtHost host02. Using the naming conventions discussed in the Overview./dirdat/ab.ext will be dirprm/psalesab. GGSCI (host01) > Add ExtTrail . rolling over as the file grows beyond the specified size (default 100 MB). aa: A sequence number is appendeded to this alphabetic prefix. Host01 ­ Linux GGSCI (host01) > Info All  .3 Verify the Extract Processes (Optional) 1. one. The remote trail file that will be created will be named dirdat/ab000000. The default is 100 Megabytes. The path and extension will be added automatically. You can check your work by entering View Param esalesaa any time. and so on. GGSCI (host01) > Add RmtTrail . Host01 ­ Linux GGSCI (host01) > Add Extract esalesaa. aa000001.  Create the Extract group and the local Extract trail file.2 Configuring the Data Pump 1. or more tables./dirdat/ab Passthru Table ogguser1. 3. The different file name is chosen just to illustrate that the parameter RmtTrail is creating a different trail file. Host01 ­ Linux GGSCI (host01) > Add Extract psalesab. the files could be named the same thing (for example ab)./dirdat/aa  EXTRACT added. Begin Now  EXTRACT added. It is possible to encrypt the passwords in the file. Leave GGSCI running for the next step.

Host02 ­ Linux [oggadm2@host02 ogg02]$ ./dirdat/ab              Extract: PSALESAB                Seqno: 0                  RBA: 0            File Size: 5M GGSCI (host01) >                                                                 Since nothing has started yet. 2. GGSCI (host01) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     STOPPED     ESALESAA    00:00:00      00:03:24 EXTRACT     STOPPED     PSALESAB    00:00:00      00:01:22 GGSCI (host01) >                                                                 Since nothing other than the Manager is started yet. middle_init. Host01 ­ Linux GGSCI (host01) > Info ExtTrail *        Extract Trail: . many lines omitted for clarity . create the Replicat parameter file. GGSCI (host02) >                                                                 You can check your work by entering View Param rsalesab any time. the Extract Status should say STOPPED. is done at the target side. GGSCI (host02) > Edit Param rsalesab ­­ Delivery from host01 to host02 ­­ Created by Joe Admin on 10/11/2012 Replicat rsalesab UserID oggadm2@orcl02.  GGSCI (host02) 1> Obey startup.  On target host02... Host02 ­ Linux GGSCI (host02) > Add Replicat rsalesab. 3.tcustmer; Map ogguser1.  Make sure the trail files were created and registered correctly. transforming columns and fields.*.tcustmer. many lines omitted for clarity . ExtTrail ./dirdat/ab  REPLICAT added. 2. password pswd2a ­­ AssumeTargetDefs SourceDefs dirdef/dsalesab. Append Map ogguser1. For example.  Make sure the Replicat process was created and registered correctly. ./dirdat/aa              Extract: ESALESAA                Seqno: 0                  RBA: 0            File Size: 5M        Extract Trail: .1 Configuring the Replicat 1... 4. Leave GGSCI running for the next step./ggsci  Oracle GoldenGate Command Interpreter for Oracle  . the sequence numbers (Seqno) and relative byte addresses (RBA) should say 0.oby   . To configure data delivery. also known as Replicat (the "e" is left off intentionally). Configuring Data Delivery Using Replicat Data delivery..dsc.  Create the Replicat process. but make sure everything started.*;        GGSCI (host02) >                                                                 The Map statement can be simple (as shown here)...        Target ogguser2.def DiscardFile dirrpt/rsalesab.. perform the following steps: 4. or very complex. you could combine three source columns first_name. last_name into a single target column full_name. Target ogguser2.

Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:03     GGSCI (host02) >                                                                 Display more information. 4. EXTRACT PSALESAB starting GGSCI (host01) >                                                                 Alternatively. you could have entered. the Replicat Status should say STOPPED.  Display information about all processes on the target. 3.. Host02 ­ Linux GGSCI (host02) > Start Replicat * Sending START request to MANAGER . EXTRACT ESALESAA starting Sending START request to MANAGER ..  Make sure the Replicat process was created and registered correctly. Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            REPLICAT    STOPPED     RSALESAB    00:00:00      00:00:33     GGSCI (host02) >                                                                 Since nothing other than the Manager is started yet. Host01 ­ Linux GGSCI (host01) > Start Extract *  Sending START request to MANAGER . Display summary information. Detail  REPLICAT   RSALESAB  Last Started 2012‐09‐19 19:13   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:09 ago) ..../dirdat/bc000001                      First Record  RBA 0 GGSCI (host02) >                                                                 Display the most detailed information.2 Starting All Processes 1. Start *. or Start e* and Start p*.  Start all Extract processes on the source. you could have entered. REPLICAT RSALESAB starting GGSCI (host02) >                                                                 Alternatively. Host02 ­ Linux GGSCI (host02) > Info rsalesab  REPLICAT   RSALESAB  Last Started 2012‐09‐19 19:13   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:04 ago) Log Read Checkpoint  File .  Start all Replicat processes on the target.3. 2. or Start rsales*.. Host02 ­ Linux GGSCI (host02) > Info rsalesab. Start *.

rpt Parameter file       /u01/app/oracle/ogg02/dirprm/rsalesab. The source tables are still empty. and the time since the last update or checkpoint should be under 10 seconds. 5. and the time since the last update or checkpoint should be under 10 seconds.  Display information about all processes on the source. Connected to: Oracle Database 11g Enterprise Edition Release 11.1 Generating INSERTs (Initial Load) 1.sql script in sqlplus.0 ‐ 64bit Production With the Partitioning.prm Checkpoint file      /u01/app/oracle/ogg02/dirchk/RSALESAB. On source host01.0 Production on Wed Sep 19 19:27:03 2012 Copyright (c) 1982.oggchkpt Process file         /u01/app/oracle/ogg02/dirpcs/RSALESAB. Display summary information. Data Mining and Real Application Testing options . To generate sample data against an empty set of tables. There is a difference in how you replicate an existing table (more complicated) versus starting with a new empty table (simpler). Generating Data The Oracle GoldenGate software comes with SQL scripts to generate sample data traffic.2. 2011.  All rights reserved. Checkpoint Lag       00:00:00 (updated 00:00:09 ago) Log Read Checkpoint  File ./dirdat/ab000000                       * Initialized *   First Record       . RBA 29845504                      SCN 0.sql SQL*Plus: Release 11./dirdat/ab000000                       * Initialized *   First Record     Current directory    /u01/app/oracle/ogg02 Report file          /u01/app/oracle/ogg02/dirrpt/RSALESAB./dirdat/ab000000                      First Record  RBA 0   Extract Source                          Begin             End                .3.  Run the SQL script to INSERT rows.pcr Stdout file          /u01/app/oracle/ogg02/dirout/RSALESAB.cpr Checkpoint table     oggadm2. Host01 ­ Linux GGSCI (host01) > Info Extract * EXTRACT    ESALESAA  Last Started 2012‐09‐19 19:12   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:08 ago) Log Read Checkpoint  Oracle Redo Logs                      2012‐09‐19 19:21:49  Seqno 18. run the demo_ora_insert. Oracle.1372459 (1372459) EXTRACT    PSALESAB  Last Started 2012‐09‐19 19:12   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:01 ago) Log Read Checkpoint  File . Host01 ­ Linux GGSCI (host01) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:04 EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:05 GGSCI (host01) >                                                                 Display detailed information.0.2. nothing has replicated yet. perform the following steps: 5.out Error log            /u01/app/oracle/ogg02/ggserr. at the OS prompt.log GGSCI (host02) >                                                                 In all cases. the Status should be RUNNING. OLAP. Everything should show a status of RUNNING. No data has flowed yet. 4. the Status should be RUNNING. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_insert.0./dirdat/ab000000                      First Record  RBA 0 GGSCI (host01) > Exit [oggadm1@host01 ogg01]                                                           Similar to the Replicat.3.

/ggsci  GGSCI (host01) 1> Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:00 EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:06 GGSCI (host01) 2> Exit  [oggadm1@host01 ogg01]                                                           If the Status says ABENDED. 5.  Verify that the target GGSCI Replicat processes are still running. On source host01. With the Partitioning. then check the process reports (covered as a later topic) to see what the error was.               DENVER               CO SQL> SELECT * FROM tcustord;  CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ WILL 30‐SEP‐94 CAR             144         17520              3            100 JANE 11‐NOV‐95 PLANE           256        133300              1            100 SQL> exit  [oggadm1@host01 ogg01]                                                           3. enter the following command: Host01 ­ Linux [oggadm1@host01 ogg01] . OLAP. Host01 ­ Linux SQL> SELECT * FROM tcustmer;  CUST_CODE  NAME                           CITY                 STATE ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ WILL       BG SOFTWARE CO. SQL>                                                                             There should not be any errors. On target host02. 1 row created. GGSCI should still be running. at the OS prompt.  Verify that the rows were inserted into the source tables.  Verify that the source GGSCI Extract processes are still running. 1 row created. Data Mining and Real Application Testing options 1 row created. Leave SQL*Plus running for the next step. 2.                SEATTLE              WA JANE       ROCKY FLYER INC. Commit complete. then check the process reports (covered as a later topic) to see what the error was. On target host02. Enter the following command: Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:05     GGSCI (host02) > Exit  [oggadm2@host02 ogg02]                                                           If the Status says ABENDED. 1 row created.  Verify that rows have been inserted into the target tables. run the following SQL queries: Host02 ­ Linux [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u  SQL> SELECT * FROM tcustmer;  CUST_CODE  NAME                           CITY                 STATE . 4.

sql  .               DENVER               CO SQL> SELECT * FROM tcustord;  CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ WILL 30‐SEP‐94 CAR             144         17520              3            100 JANE 11‐NOV‐95 PLANE           256        133300              1            100 SQL> exit  [oggadm2@host02 ogg02]                                                           The source and target database tcust* tables should match. On source host01. Host01 ­ Linux SQL> SELECT * FROM tcustmer;  CUST_CODE  NAME                           CITY                 STATE ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ WILL       BG SOFTWARE CO. four rows updated in tcustord. at the OS prompt. 3.2 Generating UPDATEs/DELETEs 1. but this is the simplest way when both tables are initially empty. two rows deleted from tcustord.                SEATTLE              WA JANE       ROCKY FLYER INC.               DENVER               CO DAVE       DAVE'S PLANES INC. There are alternative ways of doing the initial load on the target if the source already has rows in it.             TALLAHASSEE          FL BILL       BILL'S USED CARS               DENVER               CO ANN        ANN'S BOATS                    NEW YORK             NY SQL> SELECT * FROM tcustord;  CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ BILL 31‐DEC‐95 CAR             765         14000              3            100 BILL 01‐JAN‐96 TRUCK           333         25000             15            100 WILL 30‐SEP‐94 CAR             144         16520              3            100 SQL> exit  [oggadm1@host01 ogg01]                                                           Three rows inserted into tcustmer.. 3 rows deleted./ggsci  GGSCI (host01) 1> Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     RUNNING     ESALESAB    00:00:00      00:00:09 EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:01 GGSCI (host01) 2>                                                                . On source host01.sql script in sqlplus. enter the following command: Host01 ­ Linux [oggadm1@host01 ogg01] .  Run the SQL script to UPDATE and DELETE rows. 5. CUST_CODE  NAME                           CITY                 STATE ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ WILL       BG SOFTWARE CO.  Verify that the source GGSCI Extract processes are still running.                SEATTLE              WA JANE       ROCKY FLYER INC. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u @demo_ora_misc. SQL>                                                                             There should not be any errors. three rows inserted into tcustord. 2.  Commit complete..  Verify that the rows were updated and deleted in the source tables. Rollback complete.. many lines omitted for clarity .. run the demo_ora_misc.

Host01 ­ Linux GGSCI (host01) 2> Send Extract esalesaa. and Replicat. the odds are that the UPDATEs and DELETEs will work as well.13.6. 5.oby.. 2012.               DENVER               CO DAVE       DAVE'S PLANES INC. 4.2.. To view the reports.3_PLATFORMS_120823. Report  Sending REPORT request to EXTRACT ESALESAA . 6. GGSCI should still be running.  Verify that the target GGSCI Replicat processes are still running. Oracle 11g on Aug 23 2012 20:32:12 Copyright (C) 1995.3 14400833 OGGCORE_11.1. Release 2.0. Oracle and/or its affiliates. Request processed.1. x64.com . On target host02.1 Viewing Reports 1.) If the initial INSERTs worked.             TALLAHASSEE          FL BILL       BILL'S USED CARS               DENVER               CO ANN        ANN'S BOATS                    NEW YORK             NY SQL> SELECT * FROM tcustord;  CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ WILL 30‐SEP‐94 CAR             144         16520              3            100 BILL 31‐DEC‐95 CAR             765         14000              3            100 BILL 01‐JAN‐96 TRUCK           333         25000             15            100 SQL> exit  [oggadm2@host02 ogg02]                                                           This completes the configuration and operation of the basic unidirectional functionality of Oracle GoldenGate: Extract. View the process report for the Extract. On target host02.el5uek Node: host01. you do not need to run Obey startup.                SEATTLE              WA JANE       ROCKY FLYER INC.1258_FBO    Linux. 64bit (optimized).1. perform the following steps: 6.example. though it couldn't hurt. Enter the following command: Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:09     GGSCI (host02) > Exit  [oggadm2@host02 ogg02]                                                           The Status should still be RUNNING. These reports contain information.2.32‐200. GGSCI (host01) 2>                                                                (For something as trivial as this. and errors (if any) related to that run of the process.0.  Verify that rows have been updated and deleted in the target tables.  View the process reports on the source. Data Pump. GGSCI (host01) 3> View Report esalesaa  ***********************************************************************                  Oracle GoldenGate Capture for Oracle  Version 11. All rights reserved.                     Starting at 2012‐09‐19 19:12:33 *********************************************************************** Operating System Version: Linux Version #1 SMP Wed Jul 27 21:02:33 EDT 2011. warnings. run the following SQL queries: Host02 ­ Linux [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u  SQL> SELECT * FROM tcustmer;  CUST_CODE  NAME                           CITY                 STATE ‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ WILL       BG SOFTWARE CO. Managing the Oracle GoldenGate Environment There are reports generated during and after the processes run.

 you do not need to run Obey startup.example. view the process reports for the Replicat. Release 2. Request processed. On the target host02.) Host02 ­ Linux [oggadm2@host02 ogg02]$ .2.1. Go to the bottom of the report.rpt (25%)                                                               You can press [Enter] to move one line at a time.3_PLATFORMS_120823. Oracle 11g on Aug 23 2012 20:37:31 Copyright (C) 1995.TCUSTORD:        #                   inserts:         5        #                   updates:         3        #                   deletes:         2        #                  discards:         0 *********************************************************************** **                     Run Time Warnings                             ** *********************************************************************** GGSCI (host01) 4>                                                                You can do the same thing to view the Data Pump psalesab report.1. 64bit (optimized).0.3 14400833 OGGCORE_11./dirdat/aa: From Table OGGUSER1.  View the process reports for the target.example.32‐200.TCUSTMER:        #                   inserts:         5        #                   updates:         1        #                   deletes:         0        #                  discards:         0 From Table OGGUSER1. 2012. x64. or press [Space] to move a page at a time. Oracle and/or its affiliates.com Machine: x86_64                          soft limit   hard limit Address Space Size   :    unlimited    unlimited Heap Size            :    unlimited    unlimited File Size            :    unlimited    unlimited CPU Time             :    unlimited    unlimited Process id: 23557 Description:  *********************************************************************** **            Running with the following parameters                  ** *********************************************************************** .                     Starting at 2012‐09‐19 19:49:13 *********************************************************************** Operating System Version: Linux Version #1 SMP Wed Jul 27 21:02:33 EDT 2011./ggsci  GGSCI (host02) > Send Replicat rsalesab.oby.1258_FBO    Linux. Node: host01.com Machine: x86_64                          soft limit   hard limit Address Space Size   :    unlimited    unlimited Heap Size            :    unlimited    unlimited File Size            :    unlimited    unlimited CPU Time             :    unlimited    unlimited Process id: 18569 Description:  *********************************************************************** **            Running with the following parameters                  ** *********************************************************************** ESALESAA. GGSCI (host02)> View Report rsalesab  ***********************************************************************                  Oracle GoldenGate Delivery for Oracle  Version 11.6. though it couldn't hurt. Host01 ­ Linux *********************************************************************** *                   ** Run Time Statistics **                         * *********************************************************************** Report at 2012‐09‐19 19:42:10 (activity since 2012‐09‐19 19:27:05) Output to . (For something as trivial as this.13.. All rights reserved. 2.0. Report  Sending REPORT request to REPLICAT RSALESAB .1..2.el5uek Node: host02.

  (x00)     BeforeAfter:     B  (x42)  RecLength  :    61 (x003d)    IO Time    : 2012‐09‐20 02:04:41. current RBA 3932.TCUSTMER:        #                   inserts:         5        #                   updates:         1        #                   deletes:         0        #                  discards:         0 From Table OGGUSER1.000792 Delete             Len    61 RBA 3775 Name: OGGUSER1. or when a process stops.00         Total operations                                   6. Host02 ­ Linux *********************************************************************** *                   ** Run Time Statistics **                         * *********************************************************************** Last record for the last committed transaction is the following:  ___________________________________________________________________ Trail name :  . Stats  Sending STATS request to EXTRACT ESALESAA .  (x04)  UndoFlag   :     . 6./dirdat/aa: Extracting from OGGUSER1.00         Total discards                                     0. *********************************************************************** ­­More­­(25%)                                                                    You can press [Enter] to move one line at a time. 16 records Report at 2012‐09‐20 14:04:52 (activity since 2012‐09‐19 19:49:15) From Table OGGUSER1.TCUSTORD:        #                   inserts:         5        #                   updates:         3        #                   deletes:         2        #                  discards:         0 *********************************************************************** **                     Run Time Warnings                             ** *********************************************************************** GGSCI (host02) >                                                                 The count of inserts/updates/deletes for the Replicat should match the number for the Extract. Output to .TCUSTMER to OGGUSER1.  (x00) AuditRBA   :         20       AuditPos   : 6237080 Continued  :     N  (x00)     RecCount   :     1  (x01) 2012‐09‐20 02:04:41. up to processname9.2 Viewing Statistics 1.TCUSTMER to OGGUSER2.00         Total discards                                     0. Host01 ­ Linux GGSCI (host01) > Send Extract esalesaa. processname1.rpt.  (x02)     FormatType :     R  (x52) SyskeyLen  :     0  (x00)     Incomplete :     ./dirdat/ab000000 Hdr‐Ind    :     E  (x45)     Partition  :     .00         Total updates                                      1.TCUSTMER: *** Total statistics since 2012‐09‐19 19:27:05 ***         Total inserts                                      5.TCUSTORD to OGGUSER2./dirdat/ab000000.rpt for the most current one.rpt for the oldest. they should be examined for the reason why they were discarded. or press [Space] to move a page at a time.rpt.00 .00 *** Daily statistics since 2012‐09‐20 00:00:00 ***         Total inserts                                      3.00         Total deletes                                      0. Reports are generated when you ask for a report to be sent (as you just did). Start of Statistics at 2012‐09‐20 14:08:06.. No more than 11 (the most recent with no number and the previous 0­9) are kept at a time.00         Total updates                                      1.00         Total operations                                   4. processname2. Go to the bottom of the report. all the old reports "move down one" getting renamed/renumbered until the oldest is discarded.00         Total deletes                                      0. and then processname0.  View statistics for the source Extract. If there were any discards..rpt for the most recent. As each new report is created.TCUSTORD ___________________________________________________________________ Reading .000792   IOType     :     3  (x03)     OrigNode   :   255  (xff) TransInd   :     . Reports are named/numbered processname.

00         Total discards                                     0.00         Total operations                                  10. Host02 ­ Linux GGSCI (host02) > Send Replicat rsalesab.00         Total updates                                      1.00         Total operations                                  10.00 *** Hourly statistics since 2012‐09‐20 14:00:00 ***         No database operations have been performed.00         Total deletes                                      0. *** Latest statistics since 2012‐09‐19 19:27:05 ***         Total inserts                                      5.00         Total deletes                                      2.00         Total updates                                      1.00         Total discards                                     0.TCUSTMER: *** Total statistics since 2012‐09‐19 19:49:15 ***         Total inserts                                      5. 2.00         Total updates                                      3.00         Total updates                                      3. Start of Statistics at 2012‐09‐20 14:10:51.00         Total operations                                   4.00 Replicating from OGGUSER1.00         Total operations                                  10. GGSCI (host01) >                                                                 The command Stats esalesaa does the same thing.00 End of Statistics.00         Total operations                                   6.00 *** Hourly statistics since 2012‐09‐20 14:00:00 ***         No database operations have been performed.00         Total discards                                     0. If the process stops for any reason.00         Total deletes                                      2.00         Total discards                                     0. *** Latest statistics since 2012‐09‐19 19:49:15 ***         Total inserts                                      5. *** Latest statistics since 2012‐09‐19 19:27:05 ***         Total inserts                                      5.00         Total discards                                     0.00 Extracting from OGGUSER1.00 .00         Total updates                                      1.  View statistics for the target Replicat. all statistics are lost.00         Total deletes                                      0.TCUSTORD: *** Total statistics since 2012‐09‐19 19:49:15 ***         Total inserts                                      5.00         Total updates                                      3.00         Total operations                                   8. Stats Sending STATS request to REPLICAT RSALESAB .TCUSTORD to OGGUSER1.00         Total operations                                   6.00         Total discards                                     0.00         Total deletes                                      0.00         Total updates                                      3.00         Total deletes                                      2.00         Total discards                                     0. *** Hourly statistics since 2012‐09‐20 14:00:00 ***         No database operations have been performed.TCUSTMER to OGGUSER2.00 *** Daily statistics since 2012‐09‐20 00:00:00 ***         Total inserts                                      3..TCUSTORD to OGGUSER2. Replicating from OGGUSER1.00         Total deletes                                      2.00         Total updates                                      1.00         Total operations                                   6..00 *** Daily statistics since 2012‐09‐20 00:00:00 ***         Total inserts                                      3.TCUSTORD: *** Total statistics since 2012‐09‐19 19:27:05 ***         Total inserts                                      5.00         Total discards                                     0.00         Total deletes                                      0.

00         Total discards                                     0. you must first make sure you are connected to the database (DBLogin) and you enter Delete Extract esalesaa.00         Total discards                                     0. For example.tcust*;  GGSCI (host02) >                                                                 The difference between this Extract parameter file and the one on host01 (other than the obvious name changes) is that TranLogOptions is now active (uncommented). but if you ever needed to stop an individual process.. and the other direction will be the "sales" set of files from "b" to "a" (esalesbb. 2. So." 7.00         Total operations                                  10.. Host02 ­ Linux GGSCI (host02) > Add Extract esalesbb. or Delete ER * to delete all of them on a host. Password pswd2a TranLogOptions ExcludeUser oggadm2 Table ogguser2. There are other kinds of statistics that are available as well.. Begin Now  EXTRACT added. This is almost an exact repeat of Topic 3.1. Megabytes 5  ./dirdat/bb UserID oggadm2@orcl02.00 End of Statistics. or Stop * to stop all of them on a host. rsalesab).  GGSCI (host02) > Edit Param esalesbb  ­­ Primary Extract from host02 to host01 ­­ Created by Joe Admin on 10/11/2012 ­­ SETENV(ORACLE_SID = "orcl02") Extract esalesbb ExtTrail .. you simply enter Stop Extract esalesaa. See that section for additional notes.1 Configuring Extract 1.  On source host02. GGSCI (host02) > Add ExtTrail . rsalesba)./dirdat/bb.00         Total updates                                      3. Host02 ­ Linux [oggadm2@host02 ogg02] .  Do not do this yet. At the simplest implementation. You can eliminate the question by appending an exclamation point to the end of the command.. 6. "Are you sure?" and you say.1. 2.  Create the Extract group and the local Extract trail file. To configure bidirectional replication support.00         Total operations                                   8. psalesba..3 Stopping and Deleting Processes 1. but if you ever needed to delete an individual process.oby   . dsalesab.  Do not do this yet. Here in the Replicat it is clearer that it is from schema OGGUSER1 to OGGUSER2.. y. many lines omitted for clarity . adopting the naming/numbering convention from the Overview. TranLog. Configuring Bidirectional Support You should have unidirectional replication working already. *** Daily statistics since 2012‐09‐20 00:00:00 ***         Total inserts                                      3.00         Total deletes                                      2./ggsci  Oracle GoldenGate Command Interpreter for Oracle  . Extract esalesbb. bidirectional replication is just two unrelated unidirectional replications. perform the following steps: 7. GGSCI (host02) >                                                                 Notice that previously the statistics for the primary Extract were from schema OGGUSER1 to OGGUSER1 since a Data Pump was involved (stayed local to the source host).00         Total updates                                      3. *** Latest statistics since 2012‐09‐19 19:49:15 ***         Total inserts                                      5. one direction will be the "sales" set of files from "a" to "b" (esalesaa.00         Total deletes                                      2. many lines omitted for clarity . Obviously you would replace esalesaa with the process name you wish to stop. dsalesba..00 *** Hourly statistics since 2012‐09‐20 14:00:00 ***         No database operations have been performed.  GGSCI (host02) 1> Obey startup. create the primary Extract parameter file. psalesab. Delete ER * ! assumes the answer is "yes. GGSCI will prompt you.

. but since they happen to be the same table structures. See that section for additional notes.. See that section for additional notes.1.oby   .. Extract esalesbb. Compress RmtTrail .. ExtTrailSource . In fact. GGSCI (host02) > Add ExtTrail . you can use AssumeTargetDefs. create the Replicat parameter file. Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     STOPPED     ESALESBB    00:00:00      00:03:35     EXTRACT     STOPPED     PSALESBA    00:00:00      00:00:15     REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:05     GGSCI (host02) >                                                                 You have successfully configured the Extract from host02 to host01 (the return path of the bidirectional solution). This is almost an exact repeat of Topic 4.  Create the secondary Extract (data pump) parameter file. MgrPort 15001.2 Configuring Replicat 1. password pswd1a AssumeTargetDefs  ­­ SourceDefs dirdef/dsalesab. many lines omitted for clarity ./dirdat/bb  EXTRACT added. you could have used AssumeTragetDefs in rsalesab as well.. .. GGSCI (host02) >                                                                 5.def DiscardFile dirrpt/rsalesba. Megabytes 5  EXTTRAIL added.tcust*;  GGSCI (host02) >                                                                 4. This is almost an exact repeat of Topic 3. Extract psalesba. GGSCI (host02) >                                                                 3. GGSCI (host02) > Add RmtTrail ./dirdat/ba.3./dirdat/ba Passthru Table ogguser2./ggsci  Oracle GoldenGate Command Interpreter for Oracle  .1.tcustmer. Append Map ogguser2.2. Target ogguser1. but make sure everything started. GGSCI (host01) > Edit Param rsalesba ­­ Delivery from host02 to host01 ­­ Created by Joe Admin on 10/11/2012 Replicat rsalesba UserID oggadm1@orcl01.  Create the data pump group and the remote Extract trail file.*.        Target ogguser1. many lines omitted for clarity .tcustmer; Map ogguser2. Host02 ­ Linux GGSCI (host02) > Edit Param psalesba  ­­ Data pump (secondary Extract) from host02 to Host01 ­­ Created by Joe Admin on 10/11/2012 Extract psalesba RmtHost host01.*;  GGSCI (host01) >                                                                 You could define and copy the SourceDefs again from host02 to host01.1. Megabytes 5  RMTTRAIL added.  Make sure the Extract processes were created and registered correctly. Host02 ­ Linux GGSCI (host02) > Add Extract psalesba.  On target host01.1.  GGSCI (host01) 1> Obey startup. Host01 ­ Linux [oggadm1@host01 ogg01]$ . 7. This is almost an exact repeat of Topic 3...dsc./dirdat/bb.

Uncomment the line that enables this feature./dirdat/aa UserID oggadm1@orcl01./dirdat/ba  REPLICAT added.tcust*. Host01 ­ Linux GGSCI (host01) > Add Replicat rsalesba. Sending START request to MANAGER .. Host01 ­ Linux GGSCI (host01) > Info All Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            EXTRACT     STOPPED     ESALESAA    00:00:00      00:04:22     EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:02     REPLICAT    STOPPED     RSALESBA    00:00:00      00:06:57     GGSCI (host01) >                                                                 It is okay for the Time Since Chkpt to exceed 10 seconds if the Status is STOPPED...  Make sure the Replicat process was created and registered correctly.. 5. Host01 ­ Linux GGSCI (host01) > Start *  Sending START request to MANAGER . ExtTrail .. Host02 ­ Linux GGSCI (host02) > Start *  Sending START request to MANAGER . In fact. GGSCI (host01) > edit param esalesaa  ‐‐ Primary Extract from host01 to host02 ‐‐ Created by Joe Admin on 10/11/2012 ‐‐ SETENV(ORACLE_SID = "orcl01") Extract esalesaa ExtTrail . GGSCI (host01) >                                                                 3. you could have used AssumeTragetDefs in rsalesab as well.  Create the Replicat process. This matches the same thing host02.. but if the Status is RUNNING then the time should be less than 10 seconds.  Start all processes on the source host02. REPLICAT RSALESBA starting GGSCI (host01) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            EXTRACT     RUNNING     ESALESAA    00:00:00      00:00:00     EXTRACT     RUNNING     PSALESAB    00:00:00      00:00:02     REPLICAT    RUNNING     RSALESBA    00:00:00      00:00:01     GGSCI (host01) > Exit  [oggadm1@host01 ogg01]                                                           6. Host01 ­ Linux GGSCI (host01) > Stop esalesaa  Sending STOP request to EXTRACT ESALESAA ...  GGSCI (host01) >                                                                 4. EXTRACT ESALESAA starting EXTRACT PSALESAB is already running. 2. Request processed. . can use AssumeTargetDefs. Prevent loopbacks with the ExcludeUser feature. Password pswd1a TranLogOptions ExcludeUser oggadm1  Table ogguser1.  Start all processes on the target host01.  Fix the existing Extract process to acocmodate bidirectional replication.

.             TALLAHASSEE          FL BILL BILL'S USED CARS               DENVER               CO ANN  ANN'S BOATS                    NEW YORK             NY WHIZ WHIZBANG CORP                  HOSTA                AA 6 rows selected. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u  SQL> INSERT INTO tcustmer VALUES ('WHIZ'.  SQL> SELECT * FROM tcustmer;  CUST NAME                           CITY                 ST ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐ DAVE DAVE'S PLANES INC.                SEATTLE              WA JANE ROCKY FLYER INC.3 Generating Traffic 1. GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:01     EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:02     REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:04     GGSCI (host02) >                                                                 All Extract and Replicat processes are configured and started from host02 to host01.'AA');  1 row created. SQL> exit  [oggadm1@host01 ogg01]                                                           Make sure the GGSCI processes are still running on host02.'WHIZBANG CORP'. . Sending START request to MANAGER .             TALLAHASSEE          FL BILL BILL'S USED CARS               DENVER               CO ANN  ANN'S BOATS                    NEW YORK             NY WHIZ WHIZBANG CORP                  HOSTA                AA WILL BG SOFTWARE CO.               DENVER               CO 6 rows selected.. EXTRACT ESALESBB starting Sending START request to MANAGER ..               DENVER               CO DAVE DAVE'S PLANES INC. SQL> commit;  Commit complete. EXTRACT PSALESBA starting REPLICAT RSALESAB is already running.'HOSTA'.. Host02 ­ Linux GGSCI (host02) > Exit  [oggadm2@host02 ogg02] sqlplus ogguser2@orcl02/pswd2u  SQL> SELECT * FROM tcustmer;  CUST NAME                           CITY                 ST ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐ WILL BG SOFTWARE CO.  INSERT a new row on host01. The earlier Extract and replicat from host01 to host02 are still running.                SEATTLE              WA JANE ROCKY FLYER INC. 7. Host02 ­ Linux GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:05     EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:05     REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:06     GGSCI (host02) >                                                                 Verify that the Whizbang row was replicated to host02.

 (If you are curious. 2.  INSERT a new row on host02. the reason the row order is different is because the two rows you inserted went into the "holes" left by earlier deletes and rollbacks that never got replicated. which is beyond the scope of this OBE. SQL>                                                                             Do not worry if the row order is different. Leave SQL*Plus running for the next step. SQL> commit;  Commit complete.'CC');  1 row created. Host02 ­ Linux [oggadm2@host02 ogg02] .             TALLAHASSEE          FL BILL BILL'S USED CARS               DENVER               CO ANN  ANN'S BOATS                    NEW YORK             NY WHIZ WHIZBANG CORP                  HOSTA                AA FOO  FOOBAR INC                     HOSTB                CC WILL BG SOFTWARE CO.  SQL> SELECT * FROM tcustmer;  CUST NAME                           CITY                 ST ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐ WILL BG SOFTWARE CO.                SEATTLE              WA JANE ROCKY FLYER INC. In this tutorial.'FOOBAR INC'. Data Pump.                SEATTLE              WA JANE ROCKY FLYER INC. Summary Oracle GoldenGate can do far more than was demonstrated in this simple exercise./ggsci  GGSCI (host02) > Info All  Program     Status      Group       Lag at Chkpt  Time Since Chkpt MANAGER     RUNNING                                            EXTRACT     RUNNING     ESALESBB    00:00:00      00:00:06     EXTRACT     RUNNING     PSALESBA    00:00:00      00:00:03     REPLICAT    RUNNING     RSALESAB    00:00:00      00:00:04     GGSCI (host02) >                                                                 Verify that the Foobar row was replicated to host01.             TALLAHASSEE          FL BILL BILL'S USED CARS               DENVER               CO ANN  ANN'S BOATS                    NEW YORK             NY WHIZ WHIZBANG CORP                  HOSTA                AA FOO  FOOBAR INC                     HOSTB                CC 7 rows selected. SQL> exit  [oggadm1@host01 ogg01]                                                           Both host01 and host02 should have the same rows. SQL> exit  [oggadm2@host02 ogg02]                                                     Make sure the GGSCI processes are still running on host02. you have learned how to: Install and configure the Oracle GoldenGate software Configure and start Extract. Host01 ­ Linux [oggadm1@host01 ogg01] sqlplus ogguser1@orcl01/pswd1u  SQL> SELECT * FROM tcustmer;  CUST NAME                           CITY                 ST ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐ DAVE DAVE'S PLANES INC.) This does not take into account the possibility of collision detection and resolution (CDR).               DENVER               CO 7 rows selected.               DENVER               CO DAVE DAVE'S PLANES INC. Host02 ­ Linux SQL> INSERT INTO tcustmer VALUES ('FOO'.'HOSTB'. and Replicat processes Generate sample data and test the validity of the replication .

 Hadi Koesnodihardjo.1 (E35209­01) and other older versions Courses from Oracle University External Web sites for related information To learn more about Oracle GoldenGate. Other Contributors: Richard Johnston. Joe deBuzna.2. refer to additional OBEs in the Oracle Learning Library Credits Lead Curriculum Developer: Steve Friedberg. Chris Lawless. Generate sample data and test the validity of the replication Manage the reports produced by the processes Resources Help topics relevant to the topic of this tutorial: Oracle GoldenGate Product Documentation version 11. . Simon Whitworth.