3节点rac基础上配置goldengate(单实例)

来源:互联网 发布:淘宝hd 2.6.1版本 编辑:程序博客网 时间:2024/05/16 04:40

应公司业务需要,打算另外做一套oracle goldengate作为报表数据库,目前线上环境有点复杂:

主站:3节点RAC,oracle版本:10.2.0.5.4,OS:linux x86-64

DG:主站基础上,有个单实例的物理dataguard,oracle版本:10.2.0.5.0,OS:linux x86-64

酒窖库:在之前主站+DG的基础上,表级别下游实时捕获的stream,oracle版本:10.2.0.5.0,OS:linux x86-64

报表库:在之前主站+DG+stream的配置基础上,配置oracle goldengate,oracle版本:10.2.0.5.0,OS:linux x86-64(本周四凌晨刚刚部署完成)

需要说明一下:

由于我们的rac 3个节点的归档都是放在本地的,在配置gg的时候,需要能够同时访问到3个节点上的归档日志,我们这里采取的方法是:从另外一台服务器上以nfs的方式挂载一个磁盘到其中的一个节点,然后goldengate的相关软件和进程都安装在这个共享磁盘上,同时在该节点上挂载另外2个节点的归档路径,为了冗余,可以在另外2个节点做同样的配置,当其中一个节点不可访问的时候,可以切换到另外的2个节点进行后续操作,话不多说,以下进入正题(我们的实际情况是在节点3--rac3上配置的,如无特别说明,都是在该节点上操作):

准备阶段:

1. nfs配置:

编辑exports文件,内容如下(另外2个节点也要配置):

/arch/rac3 rac1(rw,async,no_root_squash)
/arch/rac3 rac2(rw,async,no_root_squash)

启动portmap和nfs服务:

[root@rac3 ~]# service portmap start
[root@rac3 ~]# service nfs start

具体mount命令类似如下(rac3上操作):

 mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 xx.xx.xx.xx:/xxx/xxx /xxx/xxx

同时节点3上有可能会要开启nfslock服务,我这里在挂载nfs共享磁盘的时候出现过挂载不上的情况,报错获取不到锁,解决方法就是在rac3上开启nfslock服务。

挂载另外2个节点的归档路径和共享磁盘:

[root@rac3 ~]# df -h
驿欢绯荤?             瀹归  宸茬?瀵绋 宸茬? 骅浇绻
/dev/sda1             587G  205G  352G  37% /
/dev/sda3             473G   34G  416G   8% /arch
tmpfs                  12G     0   12G   0% /dev/shm
10.1.8.45:/arch/rac1   95G   56G   34G  63% /arch/rac1    --节点1的归档路径
10.1.8.47:/arch/rac2   99G   57G   37G  61% /arch/rac2    --节点2的归档路径
10.1.8.52:/backup/rac_share_disk/
                      1.4T  469G  799G  37% /share_disk          --共享磁盘(用来安装goldengate)

以下是共享磁盘所在服务器的nfs配置:

[root@DBMON ~]# cat /etc/exports 
/backup/rac_share_disk 10.1.8.0/24(rw,async,no_root_squash)

同时也要启动nfs服务,这样才能保证rac的3个节点都能挂载该磁盘!

2.数据库:

在源端和目标端创建用户,用于管理GoldenGate:

省略。。。

赋予相关权限,包括环境变量的配置,省略,详见:http://space.itpub.net/25618347/viewspace-719359 中的相关部分!

数据库方面:

确保源库打开归档模式:

[oracle@rac3 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 15:56:02 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SYS@ yesmynet3 >archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /share_disk/rac3
Oldest online log sequence     16474
Next log sequence to archive   16477
Current log sequence           16477
SYS@ yesmynet3 >

这里显示的是归档到了共享存储上,实际上是归档到本地的/arch/rac3目录下的,如下:

SYS@ yesmynet3 >show parameter log_archive_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string      LOCATION=/arch/rac3 VALID_FOR=
                                                 (ALL_LOGFILES,ALL_ROLES) DB_UN
                                                 IQUE_NAME=yesmynet_rac

这个不重要,没什么影响的,忽略!

确保源库打开了force logging:


SYS@ yesmynet3 >select force_logging from v$database;

FOR
---
YES

确保源库打开supplemental log:

SYS@ yesmynet3 >select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$database;

SUPPLEME SUP SUP
-------- --- ---
YES      YES YES

确保源库关闭回收站功能:

官方说明,由于一个已知的问题,回收站会对DDL触发器产生影响,因此需要关闭。由此可见,我们只需要在源库中关闭回收站即可。

SYS@ yesmynet3 >show parameter recyclebin

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      OFF

确保goldengate用户能够连接到所有的ASM实例:

rac中3个节点都要配置:

TNSNAMES:

YESMYNET_ASM =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1515))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1515))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac3-vip)(PORT = 1515))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = +ASM)
    )
  )


LISTENER:

SID_LIST_LISTENER_RAC3 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = yesmynet)
      (ORACLE_HOME = /oracle/product/10.2.0/db_1)
      (SID_NAME = yesmynet3)  --这里要根据具体的节点来进行调整
    )
    (SID_DESC =
      (GLOBAL_DBNAME = +ASM)
      (ORACLE_HOME = /oracle/product/10.2.0/db_1)
      (SID_NAME = +ASM3)     --这里要根据具体的节点来进行调整
    )
  )

[oracle@rac3 ~]$ export ORACLE_SID=+ASM3
[oracle@rac3 ~]$ sqlplus sys@yesmynet_asm as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 16:13:54 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SYS@ yesmynet_asm >show parameter instance

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
active_instance_count                integer
cluster_database_instances           integer                3
instance_groups                      string
instance_name                        string                 +ASM3
instance_number                      integer                3
instance_type                        string                 asm
open_links_per_instance              integer                4
parallel_instance_group              string
parallel_server_instances            integer                3

然后重启监听:

[oracle@rac3 bin]$ ./crs_stat -v -t
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1        
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2        
ora....SM3.asm application    0/5    0/0    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    0/5    0/0    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    0/5    0/0    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    0/3    0/0    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    0/0    0/0    ONLINE    ONLINE    rac3        
ora....ynet.db application    0/0    0/1    ONLINE    ONLINE    rac1        
ora....t1.inst application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....t2.inst application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....t3.inst application    0/5    0/0    ONLINE    ONLINE    rac3        
[oracle@rac3 bin]$ srvctl stop listener -n rac3
[oracle@rac3 bin]$ srvctl start listener -n rac3

字符集(后面配置goldengate会用到):

[oracle@rac3 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 16:18:38 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SYS@ yesmynet3 >set line 250
SYS@ yesmynet3 >show parameter nls_lang

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_language                         string      AMERICAN  ---显示SIMPLIFIED CHINESE 也行
SYS@ yesmynet3 >show parameter nls_terr

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_territory                        string      AMERICA   ---显示 CHINA也行
SYS@ yesmynet3 >col name for a20
SYS@ yesmynet3 >col value$ for a50
SYS@ yesmynet3 >select name,value$ from PROPS$ WHERE name = 'NLS_CHARACTERSET';

NAME                 VALUE$
-------------------- --------------------------------------------------
NLS_CHARACTERSET     ZHS16GBK

SYS@ yesmynet3 >

准备阶段到此结束,下面开始配置goldengate:

1.执行支持ddl复制的相关脚本,具体如何执行,以及每个脚本的作用详见:     ---源库执行http://space.itpub.net/25618347/viewspace-719359 中的相关部分!

在此不再赘述

2.安装goldengate产品:

源库和目标库都要执行,以下示例是在源库执行:

[oracle@rac3 ~]$ cd /share_disk/ggs/
[oracle@rac3 ggs]$ pwd
/share_disk/ggs
[oracle@rac3 ggs]$ ./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 10g on Oct  4 2011 23:50:20

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

 

GGSCI (rac3) 1> create subdirs

3.创建trail文件存放位置(源库和目标库):

[oracle@rac3 trails]$ ll ../ | grep trails
drwxr-xr-x 2 oracle oinstall      4096 Apr 20 16:14 trails
[oracle@rac3 trails]$ pwd
/share_disk/ggs/trails

注:如果此步不执行的话,trail文件默认存放在goldengate安装目录下的dirdat目录下~

4.配置manager进程(源库和目标库):

GGSCI (rac3) 14> view params mgr                                               

DYNAMICPORTLIST 7840-7914
PORT 6511
PURGEOLDEXTRACTS /share_disk/ggs/trails/s1*, USECHECKPOINTS, MINKEEPFILES 10
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

参数说明:

DYNAMICPORTLIST   ---使用的动态端口范围
PURGEOLDEXTRACTS   ---当根据checkpoint发现已经完成抽取和复制的trail文件将被自动删除,但保留最近10个
AUTORESTART ER  ---使抽取/复制进程失败后自动重启
PURGEDDLHISTORY和PURGEMARKERHISTORY分别删除DDL历史表和marker表中的过期数据,以控制它们不会变得过于庞大。

全局参数配置(源):

GGSCI (rac3) 45> view params ./GLOBAL

GGSCHEMA *******

配置源库的extract进程:

由于主站是3节点的rac,所以在配置抽取进程组的时候,要指定threads 3选项:

GGSCI (rac3) 47> add extract extksr1,tranlog,threads 3,begin now
EXTRACT added.

GGSCI (rac3) 48> add exttrail /share_disk/ggs/trails/s1,extract extksr1, MEGABYTES 100
EXTRACT added.


GGSCI (rac3) 46> view params extksr1

EXTRACT extksr1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
USERID ******, PASSWORD ******************
EXTTRAIL /share_disk/ggs/trails/s1
DISCARDFILE extksr1dcf,APPEND,MEGABYTES 10
TRANLOGOPTIONS ALTARCHIVELOGDEST primary instance yesmynet1 /arch/rac1,ALTARCHIVELOGDEST primary instance yesmynet2 /arch/rac2,ALTARCHIVELOGDEST primary instance yesmynet3 /arch/rac3
TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT %t_%s_%r.dbf
TRANLOGOPTIONS ASMUSER SYS@YESMYNET_ASM,ASMPASSWORD ***********
DYNAMICRESOLUTION
DDL INCLUDE MAPPED
DDLOPTIONS ADDTRANDATA,REPORT
FETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORT
STATOPTIONS REPORTFETCH
WARNLONGTRANS 1H, CHECKINTERVAL 5M
GETTRUNCATES
TABLE mynet_app.*;

参数说明:

1. EXTTRAIL参数指定该抽取进程对应的exttrail
2. DISCARDFILE参数指定一个文件,用来记录不能正常处理的记录,这里使用追加方式,最大为10MB
3. TRANLOGOPTIONS ALTARCHIVELOGDEST指定源数据库归档所在的路径。如果不确定,使用该SQL*Plus命令:show parameter log_archive_dest_1
4. TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT指定了归档文件的命名格式,可以通过SQL*Plus命令show parameter log_archive_format 来确定该格式
5. 由于源数据使用了ASM,这里通过tranlogoptions asmuser来提供登录ASM实例的用户名和密码(用户名必须是SYS)
6. DDL INCLUDE MAPPED表示只捕获MAPPED范围内的DDL操作
7. DDLOPTIONS ADDTRANDATA :当创建新的表时,自动为其启用追加日志
8. FETCHOPTIONS:MISSINGROW REPORT表示当extract需要获取的行在源库中无法定位时,extract进程继续运行,相关的错误信息会保存在discardfile参数指定的文件中;USESNAPSHOT表示extract使用flashback查询来从undo从获取一些数据,比如无法从redo中直接获取的UDT、嵌套表、XMLtype以及9i中的LOB;NOUSELATESTVERSION使得extract当无法从undo中获取数据时,忽略该条件而不是从源表中获取当前值。
9. STATOPTIONS REPORTFETCH:使用ggsci命令stats时,显示获取的行的统计信息
10. WARNLONGTRANS 1H, CHECKINTERVAL 5M:当发现超过1个小时的长事务时,会在错误日志中产生一条warning,5分钟检测一次

需要强调一点的是,上面代码部分标注为红色的就是与我之前准备阶段里查看的字符集相一致的,否则,导入到目标库后,有可能出现乱码!

配置源库的pump进程:

GGSCI (rac3)>ADD EXTRACT dpksr1, EXTTRAILSOURCE /share_disk/ggs/trails/s1, BEGIN now

EXTRACT added

GGSCI (rac3)>add rmttrail /home/oracle/ggs/trails/t1,extract dpksr1, megabytes 100

RMTTRAIL added.

GGSCI (rac3) 47> view params dpksr1

EXTRACT dpksr1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
USERID *****, PASSWORD ************************
RMTHOST 10.1.8.56, MGRPORT 6511
RMTTRAIL /home/oracle/ggs/trails/t1
DISCARDFILE dpksr1dcf,APPEND,MEGABYTES 10
GETTRUNCATES
table mynet_app.*;

参数比较简单,就不一一说明了

目标端配置全局参数:

创建一个checkpoint表
replicat通过这个表来维护trail文件中的read position。这不是个必须的操作,如果没有这个表,则通过一个磁盘文件来维护

GGSCI (rptdb) 24> dblogin userid *****,password ********
Successfully logged into database.

GGSCI (rptdb) 24> add checkpointtable ****.chkpoint

GGSCI (rptdb) 25> view params ./GLOBAL

GGSCHEMA *****
CHECKPOINTTABLE *****.chkpoint

配置replicate进程:

GGSCI (rptdb) 25>add replicat repksr1,exttrail /home/oracle/ggs/trails/t1,checkpointtable *****.chkpoint

REPLICAT added.

GGSCI (rptdb) 26> view params repksr1

REPLICAT repksr1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
ASSUMETARGETDEFS
USERID ******, PASSWORD *******************
DISCARDFILE repksr1dcf,APPEND,MEGABYTES 10
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
BATCHSQL
DBOPTIONS SUPPRESSTRIGGERS
DBOPTIONS DEFERREFCONST
DBOPTIONS LOBWRITESIZE 102400
--HANDLECOLLISIONS
DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20
APPLYNOOPUPDATES
GETTRUNCATES
MAP mynet_app.*, TARGET mynet_app.*;

参数说明:

1. ASSUMETARGETDEFS:由于在这里我们源端和目标端的表结构是完全一致的,因此使用这个参数来使replicat不用去查看相关的定义文件,从而提高效率
2. DDLOPTIONS REPORT:将ddl的具体信息写入到报告文件中
3. BATCHSQL:将相似的SQL语句放到一个数组中以加快执行速度。在normal模式下,repliat同一时间只应用一条sql语句。
4. DBOPTIONS DEFERREFCONST:将完整性约束推迟到replicat事务提交以后再检测
5. 如果数据库版本在10.2.0.5或11.2.0.2以后,可以使用DBOPTIONS SUPPRESSTRIGGERS在replicat会话中禁用触发器。如果不是,应该在目标端数据库中禁用触发器(触发器产生的DML操作会从源端同步到目标端)
6. DBOPTIONS LOBWRITESIZE :将要写入目标库的LOB数据缓存在内存中,当达到参数中指定的大小时写入数据,以减少I/O。这个值的范围是2KB到1MB,默认为32KB
7. DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20:当出现DDL错误,重试5次,时间间隔为20秒。如果失败,replicat会继续运行,但相关信息会记录在discardfile中。
8. HANDLECOLLISIONS:当replicat往表中插入一条记录,而该记录已经存在,则进行覆盖;当replicat在表中试图更新或删除一条记录,而该记录不存在,则该操作被丢弃。这个参数一般在initial-data load中使用,在源和目标端的数据同步之后应该将该参数删除
9. MAP TARGET:源表和目标表之间的映射,可以使用通配符
10.DBOPTIONS SUPPRESSTRIGGERS 在目标库禁用trigger

配置goldengate结束,下面开始数据的同步操作:

GGSCI (rac3) 48> add trandata mynet_app.*   ---源库操作(启用追加日志)

输出太多,省略

之后开始数据的初始化导入:

方法跟之前测试库一样,impdp方式,至于有哪些方法,都有什么区别,详见:

http://space.itpub.net/25618347/viewspace-719359 中的相关部分

初始化导入之前,在源库启用mgr、ext和pump进程:

GGSCI (rac3) 48> info all                

Program     Status      Group       Lag           Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DPKSR1      00:00:00      00:00:06    
EXTRACT     RUNNING     EXTKSR1     00:00:00      00:00:01 

目标库启用mgr进程:

GGSCI (rptdb) 28> info all

Program     Status      Group       Lag           Time Since Chkpt

MANAGER     RUNNING 

源库查询当前scn值并记录下来:

SYS@ yesmynet3 >col current_scn for 999999999999999999999
SYS@ yesmynet3 >select current_scn from v$database;

           CURRENT_SCN
----------------------
           77318008898

SYS@ yesmynet3 >

执行导入操作:

impdp ogg directory = DPDATA1 network_link = yesmynet schemas=mynet_app flashback_scn=77318008898 TABLE_EXISTS_ACTION =replace

。。。漫长的等待。。。

导入完毕后,目标库启用replicat进程:

GGSCI (rptdb) 28> start repksr1,aftercsn 77318008898

GGSCI (rptdb) 28> info all

Program     Status      Group       Lag           Time Since Chkpt

MANAGER     RUNNING                                           
REPLICAT    RUNNING     REPKSR1     00:00:00      00:00:00 

等待数据同步完成:

目标库errlog如下:

2012-04-19 04:23:30  INFO    OGG-01738  Oracle GoldenGate Capture for Oracle, extksr1.prm:  BOUNDED RECOVERY: CHECKPOINT: for object pool 3: p20517_Redo Thread 3: start=SeqNo: 16378, RBA: 12319760, SCN: 17.4265175431 (77279619463), Timestamp: 2012-04-19 04:16:49.000000, end=SeqNo: 16379, RBA: 51712, SCN: 17.4265432195 (77279876227), Timestamp: 2012-04-19 04:23:15.000000.
2012-04-19 04:23:30  INFO    OGG-01738  Oracle GoldenGate Capture for Oracle, extksr1.prm:  BOUNDED RECOVERY: CHECKPOINT: for object pool 1: p20517_Redo Thread 1: start=SeqNo: 29172, RBA: 12503568, SCN: 17.4265432207 (77279876239), Timestamp: 2012-04-19 04:23:19.000000, end=SeqNo: 29172, RBA: 22286336, SCN: 17.4265442036 (77279886068), Timestamp: 2012-04-19 04:23:24.000000.
2012-04-19 04:23:30  INFO    OGG-01738  Oracle GoldenGate Capture for Oracle, extksr1.prm:  BOUNDED RECOVERY: CHECKPOINT: for object pool 2: p20517_Redo Thread 2: start=SeqNo: 27652, RBA: 3600, SCN: 17.4265442049 (77279886081), Timestamp: 2012-04-19 04:23:25.000000, end=SeqNo: 27652, RBA: 12288, SCN: 17.4265442063 (77279886095), Timestamp: 2012-04-19 04:23:25.000000.
2012-04-19 04:25:25  INFO    OGG-00538  Oracle GoldenGate Capture for Oracle, extksr1.prm:  Metadata not invalidated for [MYNET_APP.M_GOODS_STOCK2] because of TRUNCATE.
2012-04-19 04:25:25  INFO    OGG-01487  Oracle GoldenGate Capture for Oracle, extksr1.prm:  DDL found, operation [truncate table m_goods_stock2  (size 30)], start SCN [77279876241], commit SCN [77279876395] instance [yesmynet1 (1)], DDL seqno [1029], marker seqno [1029].
2012-04-19 04:25:25  INFO    OGG-00487  Oracle GoldenGate Capture for Oracle, extksr1.prm:  DDL operation included [INCLUDE MAPPED], optype [TRUNCATE], objtype [TABLE], objowner [MYNET_APP], objname [M_GOODS_STOCK2].
2012-04-19 04:25:25  INFO    OGG-00497  Oracle GoldenGate Capture for Oracle, extksr1.prm:  Writing DDL operation to extract trail file.
2012-04-19 04:25:26  INFO    OGG-01026  Oracle GoldenGate Capture for Oracle, extksr1.prm:  Rolling over remote file /share_disk/ggs/trails/s1000004.
2012-04-19 04:29:08  INFO    OGG-00538  Oracle GoldenGate Capture for Oracle, extksr1.prm:  Metadata not invalidated for [MYNET_APP.M_GOODS_STOCK2] because of TRUNCATE.
2012-04-19 04:29:08  INFO    OGG-01487  Oracle GoldenGate Capture for Oracle, extksr1.prm:  DDL found, operation [truncate table m_goods_stock2  (size 30)], start SCN [77279894528], commit SCN [77279894688] instance [yesmynet1 (1)], DDL seqno [1030], marker seqno [1030].

待数据同步完成之后,在目标库关闭handlecollisions参数: 先使用SEND REPLICAT命令使之对运行中的replicat生效,然后修改参数文件,使其在下一次启动时生效。

GGSCI (rptdb) 28> SEND REPLICAT repksr1, NOHANDLECOLLISIONS

然后修改replicat进程,去掉HANDLECOLLISIONS参数

测试:

可以试着在源数据库中进行一些ddl或dml操作,在目标端使用ggsci命令stats或在数据库中查看更改是否被应用了,

我这里测试下来,dml和ddl操作都没什么问题,就此略过~

观察一段时间,数据同步没什么问题的话,估计下周会正式上线,终于写完了,累死了~~

0 0
原创粉丝点击