Tag Archives: GoldenGate

如何在11gR2 RAC上配置GoldenGate (上)

Oracle 11gR2 RAC和GoldenGate都是Oracle比较热门的产品,经过简单的学习和阅读文档,配置单节点的GoldenGate进行数据的复制相信不是什么太有难度的事情,但是对于利用GoldenGate进行RAC系统到RAC系统的复制,还是有些配置的技巧和策略设置的,前阵子就遇到一个这样一个问题:假设源和目标分别是两节点的RAC系统,如何保证目标部分节点失效的时候replicate会自动切换? 其实如果了解GG的工作机制和RAC的资源管理,问题的解决就十分清晰了。

今天就从系统的介绍下11gR2 RAC上OGG (Oracle GoldenGate的简称,下同)的完整配置步骤,并简单谈谈如何解决上面这个场景的问题。

第一阶段:下载OGG(可以参考之前的单节点的复制例子,不再赘述)
OGG的下载地址

第二阶段:OGG的安装

1)登录源端的RAC系统中的任一个节点,并在ACFS上建立一个供OGG使用的共享目录,比如叫/cloudfs/goldengate

2)解压OGG的安装包到/cloudfs/goldengate目录

3) 设置好OGG工作的环境变量,比如

export LIBRARY_PATH=/cloudfs/goldengate:$ORACLE_HOME/lib:$LD_LIBRARY_PATH

4)启动ggsci并创建目录,然后进行必要的设置,启动manager

$ ggsci

GGSCI > create subdirs

(optional, support for DDL/Sequence)
Create and edit the parameter file for GLOBALS:

GGSCI > EDIT PARAMS ./GLOBALS
Add this line to GLOBALS parameter file:

GGSCHEMA ggs

NOTE: 'ggs' is the example OGG user and will be used in the rest of this document.

GGSCI > EDIT PARAMS mgr

Add the following lines to Manager parameter file:

PORT 7809
AUTOSTART ER *
AUTORESTART ER *

GGSCI > START mgr

5)在目标端重复上面的步骤1-4,注意目录名的使用,我们在目标端使用/mycloudfs/goldengate以示区分。

第三阶段:源和目标RAC数据库准备步骤


1) Create OGG user 'ggs' on both the source and target database, connect to database using SQL*Plus as SYSDBA:

SQL> CREATE USER ggs IDENTIFIED BY ggs;
SQL> GRANT CONNECT,RESOURCE,DBA TO ggs;

2)(optional, add Oracle sequence replication support) On both source and target database, go to OGG directory and run this SQL, enter OGG user 'ggs' as prompted:
SQL> @sequence.sql

3) Enable supplemental logging on source ODA database:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER SYSTEM SWITCH LOGFILE;

(Optional) Add Oracle DDL replication support
4) On the source system, go to OGG directory, connect to database using SQL*Plus as SYSDBA.

SQL> GRANT EXECUTE ON utl_file TO ggs;

5 On the source system, run the following script, provide OGG user 'ggs' as prompted.

SQL> @marker_setup.sql
SQL> @ddl_setup.sql

NOTE: enter 'INITIALSETUP' when prompted for the mode of installation.

SQL> @role_setup.sql
SQL> @ddl_enable.sql
SQL> @ddl_pin ggs

NOTE: 'ggs' here is the OGG user.

第四阶段:配置源端的extract group

1) Issue the following command to log on to the database.
GGSCI > DBLOGIN USERID ggs, PASSWORD ggs

2) Create a primary Extract group 'myext':

GGSCI > ADD EXTRACT myext, TRANLOG, BEGIN NOW, THREADS 2
NOTE: THREADS value is the number of your RAC instances.

3) Create a local trail. The primary Extract writes to this trail, and the data-pump Extract reads it.

GGSCI > ADD EXTTRAIL /cloudfs/goldengate/dirdat/et, EXTRACT myext
NOTE: 'et' is the example trail identifier for Extract 'myext'.

4) Create and edit the parameter file for Extract 'myext':

GGSCI > EDIT PARAMS myext
Add following lines to this parameter file:

EXTRACT myext
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggs@ggdb, PASSWORD ggs
TRANLOGOPTIONS DBLOGREADER
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 20000
EXTTRAIL /cloudfs/goldengate/dirdat/et
DYNAMICRESOLUTION
DDL INCLUDE ALL
TABLE hr.*;

NOTE 1: make sure the SQL*Net connection string 'ggdb' works.
NOTE 2: 'hr' is the example schema which will be synchronized to the target system.

第五阶段:在源端配置data pump extract group

1)Create a data pump group 'mypump':
GGSCI > ADD EXTRACT mypump, EXTTRAILSOURCE /cloudfs/goldengate/dirdat/et, BEGIN now

2) Specify a remote trail that will be created on the target system.

GGSCI > ADD RMTTRAIL /mycloudfs/goldengate/dirdat/rt, EXTRACT mypump
NOTE: 'rt' is the example trail identifier for Extract 'mypump', and use the target OGG directory '/mycloudfs/goldengate' here.

3) Create and edit the parameter file for Extract 'mypump':
GGSCI > EDIT PARAMS mypump

Add following lines to this parameter file:

EXTRACT mypump
RMTHOST rac12box-scan, MGRPORT 7809
RMTTRAIL /mycloudfs/goldengate/dirdat/rt
PASSTHRU
TABLE hr.*;

NOTE: RMTHOST is the target host. If you also prefer to set up HA on the target system, specify the VIP for your target system as RMTHOST,
otherwise just use the IP address/hostname of your target system.

4) Start Extract 'myext' and 'mypump':

GGSCI > START myext
GGSCI > START mypump

5) Check the status of OGG processes:
GGSCI > info all

第六阶段:在目标端配置Replicat group

1) Create a Replicat group 'rept', which reads trails from Extract 'mypump':

GGSCI > ADD REPLICAT rept, EXTTRAIL /mycloudfs/goldengate/dirdat/rt, nodbcheckpoint

2) Create and edit the parameter file for Replicat 'rept':

GGSCI > EDIT PARAMS rept
Add following lines to this parameter file, assume the same ORACLE_HOME and target database 'ggdb' as in source ODA environment:

REPLICAT rept
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
USERID ggs@ggdb,PASSWORD ggs
ASSUMETARGETDEFS
HANDLECOLLISIONS
REPERROR (DEFAULT, DISCARD)
DDLERROR DEFAULT DISCARD
DDLOPTIONS REPORT
DISCARDFILE /mycloudfs/goldengate/repsz.dsc,append,megabytes 100
MAP hr.*, TARGET hr.*;

NOTE: make sure the SQL*Net connection string 'ggdb' works.

3) Start Replicat 'rept':

GGSCI > START rept

4) Check the status of OGG processes:
GGSCI > info all

第七阶段:验证Goldengate功能

1) Log on to source database as user 'hr', do some simple DDL and DML operations.
2) Check the data change has been captured by Extract on source system:

GGSCI > STATS myext
GGSCI > STATS mypump

3)Log on to target system as oracle user, check the status of Replicat 'rept':

GGSCI > STATS rept

4) Compare the output and make sure data change is synchronized.
5)(optional, for further HA setup) Stop OGG on source system:

GGSCI > STOP myext
GGSCI > STOP mypump
GGSCI > STOP mgr

6)(optional, for further HA setup) Stop OGG on target system:

GGSCI > STOP rept
GGSCI > STOP mgr

关于HA的设置,请继续关注下篇。

Oracle GoldenGate配置过程

在同一个库的不同schema之间进行GoldenGate的配置,下面是详细的步骤。

1, 解压ogg的zip包,ogg是绿色软件,直接解压即可。
2,建立ogg所需的目录,直接用ggsci,然后命令create subdirs


[oracle@localhost base]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
Linux, x64, 64bit (optimized), Oracle 11g on Oct  4 2011 23:49:46

Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.

GGSCI (localhost.localdomain) 1> create subdirs

Creating subdirectories under current directory /u01/app/base

Parameter files                /u01/app/base/dirprm: created
Report files                   /u01/app/base/dirrpt: created
Checkpoint files               /u01/app/base/dirchk: created
Process status files           /u01/app/base/dirpcs: created
SQL script files               /u01/app/base/dirsql: created
Database definitions files     /u01/app/base/dirdef: created
Extract data files             /u01/app/base/dirdat: created
Temporary files                /u01/app/base/dirtmp: created
Veridata files                 /u01/app/base/dirver: created
Veridata Lock files            /u01/app/base/dirver/lock: created
Veridata Out-Of-Sync files     /u01/app/base/dirver/oos: created
Veridata Out-Of-Sync XML files /u01/app/base/dirver/oosxml: created
Veridata Parameter files       /u01/app/base/dirver/params: created
Veridata Report files          /u01/app/base/dirver/report: created
Veridata Status files          /u01/app/base/dirver/status: created
Veridata Trace files           /u01/app/base/dirver/trace: created
Stdout files                   /u01/app/base/dirout: created

3,建立所需要的三个用户,ggate用户,源和目标用户jss和jst。

create user ggate identified by ggate;
grant dba to ggate;

create user jss identified by jss;
grant connect, resource to jss;

create user jst identified by jst;
grant connect, resource to jst;

4, 用jss登录,在源上建立一个测试表,并灌入一部分测试数据。

conn jss/jss
create table test as select * from user_objects where 1=2;
insert into test select * from user_objects ;
commit;

至此,所需要的准备工作完成,这里为了简化操作,我们只做最简单的dml的复制操作。

5,登录ggsci,配置manager所需要的端口并启动manager

GGSCI (localhost.localdomain) 4> edit params mgr

PORT 7809

GGSCI (localhost.localdomain) 5> start mgr
MGR is already running.

6,登录ggsci,连接进源数据库,并添加一个源复制队列和目标复制队列

GGSCI (localhost.localdomain) 6> dblogin userid ggate,password ggate
Successfully logged into database.

GGSCI (localhost.localdomain) 9> add extract ext1 ,tranlog,begin now
EXTRACT added.

GGSCI (localhost.localdomain) 10> add exttrail ./dirdat/lt ,extract ext1
EXTTRAIL added.

GGSCI (localhost.localdomain) 11> edit params ext1

extract ext1
userid ggate@orcldb,password ggate
rmthost 127.0.0.1,mgrport 7809
RMTTASK REPLICAT, GROUP rep1
table jss.*;

GGSCI (localhost.localdomain) 12> add replicat rep1,exttrail ./dirdat/lt,checkpointtable ggate.checkpo
int
REPLICAT added.

GGSCI (localhost.localdomain) 13> edit params rep1

REPLICAT rep1
ASSUMETARGETDEFS
USERID ggate@orcldb,PASSWORD ggate
DISCARDFILE ./dirrpt/rep1_gg2.dsc,PURGE
MAP jss.*, TARGET jst.*;

7,启动源和目标队列,并查看


GGSCI (localhost.localdomain) 30> start ext1

Sending START request to MANAGER ...
EXTRACT EXT1 starting

GGSCI (localhost.localdomain) 31> start rep1

Sending START request to MANAGER ...
REPLICAT REP1 starting

8,查看源和目标的复制结果


GGSCI (localhost.localdomain) 40> view report ext1

2011-11-25 13:16:54  INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is
used.

***********************************************************************
                 Oracle GoldenGate Capture for Oracle
     Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
   Linux, x64, 64bit (optimized), Oracle 11g on Oct  7 2011 05:37:17

Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.

                    Starting at 2011-11-25 13:16:54
***********************************************************************

Operating System Version:
Linux
Version #1 SMP Mon Mar 29 22:10:29 EDT 2010, Release 2.6.18-194.el5
Node: localhost.localdomain
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: 4765

Description:

***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
extract ext1
userid ggate@orcldb,password *****
rmthost 127.0.0.1,mgrport 7809
RMTTASK REPLICAT, GROUP rep1
table jss.*;
TABLEWildcard  resolved (entry JSS.*):
  table JSS.J1;

Using the following key columns for source table JSS.J1: ID.
TABLEWildcard  resolved (entry JSS.*):
  table JSS.J2;

2011-11-25 13:16:55  WARNING OGG-00869  No unique key is defined for table J2. All viable columns will
 be used to represent the key, but may not guarantee uniqueness.  KEYCOLS may be used to define the ke
y.

Using the following key columns for source table JSS.J2: ID, VL.
TABLEWildcard  resolved (entry JSS.*):
  table JSS.TEST;

2011-11-25 13:16:55  WARNING OGG-00869  No unique key is defined for table TEST. All viable columns wi
ll be used to represent the key, but may not guarantee uniqueness.  KEYCOLS may be used to define the
key.

Using the following key columns for source table JSS.TEST: ID.

CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE:                         64K
CACHESIZE:                                8G
CACHEBUFFERSIZE (soft max):               4M
CACHEPAGEOUTSIZE (normal):                4M
PROCESS VM AVAIL FROM OS (min):          16G
CACHESIZEMAX (strict force to disk):  13.99G

Database Version:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

Database Language and Character Set:
NLS_LANG environment variable specified has invalid format, default value will be used.
NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.
NLS_LANGUAGE     = "AMERICAN"
NLS_TERRITORY    = "AMERICA"
NLS_CHARACTERSET = "WE8MSWIN1252"

Warning: your NLS_LANG setting does not match database server language setting.
Please refer to user manual for more information.

Processing table JSS.J1

Processing table JSS.J2

Processing table JSS.TEST

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************

Report at 2011-11-25 13:17:00 (activity since 2011-11-25 13:16:54)

Output to rep1:

From Table JSS.J1:
       #                   inserts:         4
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0

REDO Log Statistics
  Bytes parsed                    0
  Bytes output                  316

GGSCI (localhost.localdomain) 41> view report rep1

***********************************************************************
                 Oracle GoldenGate Delivery for Oracle
     Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
   Linux, x64, 64bit (optimized), Oracle 11g on Oct  7 2011 05:44:59

Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.

                    Starting at 2011-11-25 13:16:55
***********************************************************************

Operating System Version:
Linux
Version #1 SMP Mon Mar 29 22:10:29 EDT 2010, Release 2.6.18-194.el5
Node: localhost.localdomain
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: 4771

Description:

***********************************************************************
**            Running with the following parameters                  **
***********************************************************************
REPLICAT rep1
ASSUMETARGETDEFS
USERID ggate@orcldb,PASSWORD *****
DISCARDFILE ./dirrpt/rep1_gg2.dsc,PURGE
MAP jss.*, TARGET jst.*;

CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE:                         64K
CACHESIZE:                              512M
CACHEBUFFERSIZE (soft max):               4M
CACHEPAGEOUTSIZE (normal):                4M
PROCESS VM AVAIL FROM OS (min):           1G
CACHESIZEMAX (strict force to disk):    881M

Database Version:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

Database Language and Character Set:
NLS_LANG environment variable specified has invalid format, default value will be used.
NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.
NLS_LANGUAGE     = "AMERICAN"
NLS_TERRITORY    = "AMERICA"
NLS_CHARACTERSET = "WE8MSWIN1252"

Warning: your NLS_LANG setting does not match database server language setting.
Please refer to user manual for more information.

***********************************************************************
**                     Run Time Messages                             **
***********************************************************************

Wildcard MAP resolved (entry JSS.*):
  MAP JSS.J1, TARGET jst.J1;
Using following columns in default map by name:
  ID, VL

Using the following key columns for target table JST.J1: ID.

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************

Report at 2011-11-25 13:17:05 (activity since 2011-11-25 13:17:00)

From Table JSS.J1 to JST.J1:
       #                   inserts:         4
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         0

CACHE OBJECT MANAGER statistics

CACHE MANAGER VM USAGE
vm current     =      0    vm anon queues =      0
vm anon in use =      0    vm file        =      0
vm used max    =      0    ==> CACHE BALANCED

CACHE CONFIGURATION
cache size       = 512M   cache force paging = 881M
buffer min       =  64K   buffer highwater   =   4M
pageout eligible size =   4M

================================================================================
RUNTIME STATS FOR SUPERPOOL

CACHE Transaction Stats
trans active   =      0    max concurrent =      0
non-zero total =      0    trans total    =      0

CACHE File Caching
disk current   =      0    disk total  =      0
disk caching   =      0    file cached =      0
file retrieves =      0

CACHE MANAGEMENT
buffer links  =      0   anon gets   =      0
forced unmaps =      0   cnnbl try   =      0
cached out    =      0   force out   =      0

Allocation Request Distribution
< 128B:       0
 128B:        0         0     | 512B:        0         0
   2K:        0         0     |   8K:        0         0
  32K:        0         0     | 128K:        0         0
 512K:        0         0     |   2M:        0         0
   8M:        0         0     |  32M:        0         0
 128M:        0         0     | 512M:        0         0
   2G:        0         0     |   8G:        0

Cached Transaction Size Distribution
    0:        0
 < 4K:        0
   4K:        0         0     |  16K:        0         0
  64K:        0         0     | 256K:        0         0
   1M:        0         0     |   4M:        0         0
  16M:        0         0     |  64M:        0         0
 256M:        0         0     |   1G:        0         0
   4G:        0         0     |  16G:        0         0
  64G:        0         0     | 256G:        0         0
   1T:        0         0     |   4T:        0         0
  16T:        0         0     |  64T:        0         0
 256T:        0         0     |1024T:        0         0

================================================================================
CUMULATIVE STATS FOR SUPERPOOL

CACHE Transaction Stats
trans active   =      0    max concurrent =      0
non-zero total =      0    trans total    =      0

CACHE File Caching
disk current   =      0    disk total  =      0
disk caching   =      0    file cached =      0
file retrieves =      0

CACHE MANAGEMENT
buffer links  =      0   anon gets   =      0
forced unmaps =      0   cnnbl try   =      0
cached out    =      0   force out   =      0

Allocation Request Distribution
< 128B:       0
 128B:        0         0     | 512B:        0         0
   2K:        0         0     |   8K:        0         0
  32K:        0         0     | 128K:        0         0
 512K:        0         0     |   2M:        0         0
   8M:        0         0     |  32M:        0         0
 128M:        0         0     | 512M:        0         0
   2G:        0         0     |   8G:        0

Cached Transaction Size Distribution
    0:        0
 < 4K:        0
   4K:        0         0     |  16K:        0         0
  64K:        0         0     | 256K:        0         0
   1M:        0         0     |   4M:        0         0
  16M:        0         0     |  64M:        0         0
 256M:        0         0     |   1G:        0         0
   4G:        0         0     |  16G:        0         0
  64G:        0         0     | 256G:        0         0
   1T:        0         0     |   4T:        0         0
  16T:        0         0     |  64T:        0         0
 256T:        0         0     |1024T:        0         0

QUEUE Statistics:
num queues    =     15     default index =      0
cur len       =      0     max len       =      0
q vm current  =      0     vm max        =      0
q hits        =      0     q misses      =      0

queue size  q hits  curlen  maxlen     cannibalized
  0   64K      0       0       0       0
  1  128K      0       0       0       0
  2  256K      0       0       0       0
  3  512K      0       0       0       0
  4    1M      0       0       0       0
  5    2M      0       0       0       0
  6    4M      0       0       0       0
  7    8M      0       0       0       0
  8   16M      0       0       0       0
  9   32M      0       0       0       0
 10   64M      0       0       0       0
 11  128M      0       0       0       0
 12  256M      0       0       0       0
 13  512M      0       0       0       0
 14    1G      0       0       0       0

================================================================================
RUNTIME STATS FOR CACHE POOL #0
POOL INFO   group: rep1  id: p4771_BLOB
trans active  =       0   trans concurrent (max) =     0
trans total   =       0   (0 )
flag          = 0x00000030
last error    = (0=)

Allocation Request Distribution
< 128B:       0
 128B:        0         0     | 512B:        0         0
   2K:        0         0     |   8K:        0         0
  32K:        0         0     | 128K:        0         0
 512K:        0         0     |   2M:        0         0
   8M:        0         0     |  32M:        0         0
 128M:        0         0     | 512M:        0         0
   2G:        0         0     |   8G:        0

================================================================================
CUMULATIVE STATS FOR CACHE POOL #0
POOL INFO   group: rep1  id: p4771_BLOB
trans active  =       0   trans concurrent (max) =     0
trans total   =       0   (0 )
flag          = 0x00000030
last error    = (0=)

Allocation Request Distribution
< 128B:       0
 128B:        0         0     | 512B:        0         0
   2K:        0         0     |   8K:        0         0
  32K:        0         0     | 128K:        0         0
 512K:        0         0     |   2M:        0         0
   8M:        0         0     |  32M:        0         0
 128M:        0         0     | 512M:        0         0
   2G:        0         0     |   8G:        0

QUEUE Statistics:
num queues    =     15     default index =      0

GoldenGate常见异常处理

今天花了整整一天,把Oracle GoldenGate配置了起来,期间遇到无数的问题,但是都是逢凶化吉,通过文档和Google搞定了,如下做个小小的总结。至于GoldenGate的配置过程暂且不表,待后续在做详细介绍。

源数据库在OEL5.4 64bit的虚拟机上,数据库版本是11.2.0.3
目标数据库也是同一个虚拟机上的数据库。
建了两个不同的schema,jjs和jjt

遇到的几个异常和解决方法在这篇中都有记载,现在转录如下:

Scenario 1: Extract parameter file is invalid.

EXTRACT ext1
USERID ggate, PASSWORD ggate
TABLE jjs.j1
Source Context :
SourceModule : [ggapp.parmscn]
SourceID : [$Id: //depot/releases/OpenSys/v10.4.0/src/gglib/ggapp/parmscn.c#1 $]
SourceFunction : [ci_get_next_cmd]
SourceLine : [1800]
ThreadBacktrace : [1] elements
: [C:\GoldenGate\extract.exe(ERCALLBACK+0x1193d0) [0x00589300]]

2010-04-13 13:20:12 GGS ERROR 101 Parameter unterminated.
2010-04-13 13:20:12 GGS ERROR 190 PROCESS ABENDING.

The parameter file should be terminated with a semi colon.
参数文件最后必须以一个分号结束。

Scenario 2: RMTTRAIL not specified

EXTRACT ext1
USERID ggate,PASSWORD ggate
TABLE jjs.j1;
Source Context :
SourceModule : [er.main]
SourceID : [$Id: //depot/releases/OpenSys/v10.4.0/src/app/er/rep.c#19 $]
SourceFunction : [get_infile_params]
SourceLine : [10436]
ThreadBacktrace : [1] elements
: [C:\GoldenGate\extract.exe(ERCALLBACK+0x1193d0) [0x00589300]]

2010-04-13 13:22:51 GGS ERROR 101 RMTTRAIL must be specified before FILE/TABLE/SEQUENCE.
2010-04-13 13:22:51 GGS ERROR 190 PROCESS ABENDING.
错误提示十分清楚了,RMTTRAIL必须在FILE/TABLE/SEQUENCE之前定义。

Scenario 3:- RMTHOST not specified

EXTRACT ext1
USERID ggate,PASSWORD *****
RMTTRAIL c:\purge

Source Context :
SourceModule : [er.extrout]
SourceID : [$Id: //depot/releases/OpenSys/v10.4.0/src/app/er/extrout.c#4 $]
SourceFunction : [get_ext_params]
0ASource Context :
SourceModule : [er.main]
SourceID : [$Id: //depot/releases/OpenSys/v10.4.0/src/app/er/rep.c#19 $]
SourceFunction : [get_infile_params]
SourceLine : [10436]
ThreadBacktrace : [1] elements
: [C:\GoldenGate\extract.exe(ERCALLBACK+0x1193d0) [0x00589300]]

2010-04-13 13:22:51 GGS ERROR 101 RMTTRAIL must be specified before FILE/TABLE/SEQUENCE.
2010-04-13 13:22:51 GGS ERROR 190 PROCESS ABENDING.
错误提示十分清楚了,RMTTRAIL必须在FILE/TABLE/SEQUENCE之前定义。

Scenario 3:- RMTHOST not specified

EXTRACT ext1
USERID ggate,PASSWORD *****
RMTTRAIL c:\purge

Source Context :
SourceModule : [er.extrout]
SourceID : [$Id: //depot/releases/OpenSys/v10.4.0/src/app/er/extrout.c#4 $]
SourceFunction : [get_ext_params]
SourceLine : [2788]
ThreadBacktrace : [1] elements
: [C:\GoldenGate\extract.exe(ERCALLBACK+0x1193d0) [0x00589300]]

2010-04-13 13:32:21 GGS ERROR 101 No RMTHOST has been specified yet.
2010-04-13 13:32:21 GGS ERROR 190 PROCESS ABENDING.
错误明显,必须定义RMTHOST参数,指定目标在哪里。

Scenario 4: – After specifying RMTHOST, came to know that

2010-04-13 13:37:18 GGS ERROR 101 Trails cannot be used when SOURCEISTABLE/SOURCEISFILE is specified.
2010-04-13 13:37:18 GGS ERROR 190 PROCESS ABENDING.

经历这么多错误之后,最后来看看成功的配置文件是如何写的。

EXTRACT ext1
USERID ggate,PASSWORD ggate
RMTHOST localhost, MGRPORT 9500
RMTFILE c:\purge\rmtfilerr
TABLE jss.j1;

支持extract可以成功起来,但是replicat还是有问题,数据无法成功复制。

第二阶段,尝试了把源和目标分开,目标设定在了宿主Windows7的机器上,目标数据库是一个Windows7 64bit平台上的11.2.0.1版本。
但是在把源和目标好之后,发现每次启动extract的时候,Windows7上的replicat