應公司業務需要,打算另外做一套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操作都沒什麼問題,就此略過~
觀察一段時間,資料同步沒什麼問題的話,估計下周會正式上線,終于寫完了,累死了~~