天天看點

3節點rac基礎上配置goldengate(單執行個體)

應公司業務需要,打算另外做一套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服務:

[[email protected] ~]# service portmap start

[[email protected] ~]# 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個節點的歸檔路徑和共享磁盤:

[[email protected] ~]# 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配置:

[[email protected] ~]# 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 中的相關部分!

資料庫方面:

確定源庫打開歸檔模式:

[[email protected] ~]$ 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

[email protected] 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

[email protected] yesmynet3 >

這裡顯示的是歸檔到了共享存儲上,實際上是歸檔到本地的/arch/rac3目錄下的,如下:

[email protected] 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:

[email protected] yesmynet3 >select force_logging from v$database;

FOR

---

YES

確定源庫打開supplemental log:

[email protected] yesmynet3 >select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$database;

SUPPLEME SUP SUP

-------- --- ---

YES      YES YES

確定源庫關閉資源回收筒功能:

官方說明,由于一個已知的問題,資源回收筒會對DDL觸發器産生影響,是以需要關閉。由此可見,我們隻需要在源庫中關閉資源回收筒即可。

[email protected] 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)     --這裡要根據具體的節點來進行調整

    )

  )

[[email protected] ~]$ export ORACLE_SID=+ASM3

[[email protected] ~]$ sqlplus [email protected]_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

[email protected] 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

然後重新開機監聽:

[[email protected] 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        

[[email protected] bin]$ srvctl stop listener -n rac3

[[email protected] bin]$ srvctl start listener -n rac3

字元集(後面配置goldengate會用到):

[[email protected] ~]$ 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

[email protected] yesmynet3 >set line 250

[email protected] yesmynet3 >show parameter nls_lang

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

nls_language                         string      AMERICAN  ---顯示SIMPLIFIED CHINESE 也行

[email protected] yesmynet3 >show parameter nls_terr

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

nls_territory                        string      AMERICA   ---顯示 CHINA也行

[email protected] yesmynet3 >col name for a20

[email protected] yesmynet3 >col value$ for a50

[email protected] yesmynet3 >select name,value$ from PROPS$ WHERE name = 'NLS_CHARACTERSET';

NAME                 VALUE$

-------------------- --------------------------------------------------

NLS_CHARACTERSET     ZHS16GBK

[email protected] yesmynet3 >

準備階段到此結束,下面開始配置goldengate:

1.執行支援ddl複制的相關腳本,具體如何執行,以及每個腳本的作用詳見:     ---源庫執行http://space.itpub.net/25618347/viewspace-719359 中的相關部分!

在此不再贅述

2.安裝goldengate産品:

源庫和目标庫都要執行,以下示例是在源庫執行:

[[email protected] ~]$ cd /share_disk/ggs/

[[email protected] ggs]$ pwd

/share_disk/ggs

[[email protected] 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檔案存放位置(源庫和目标庫):

[[email protected] trails]$ ll ../ | grep trails

drwxr-xr-x 2 oracle oinstall      4096 Apr 20 16:14 trails

[[email protected] 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 [email protected]_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值并記錄下來:

[email protected] yesmynet3 >col current_scn for 999999999999999999999

[email protected] yesmynet3 >select current_scn from v$database;

           CURRENT_SCN

----------------------

           77318008898

[email protected] 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操作都沒什麼問題,就此略過~

觀察一段時間,資料同步沒什麼問題的話,估計下周會正式上線,終于寫完了,累死了~~