轉自:https://blog.csdn.net/liuzhijian2008x/article/details/79224308
1.檢視程序狀态
GGSCI (PONY) 2> info all
2.檢視程序詳細狀态,有助于排錯
GGSCI (PONY) 2> view report +程序名稱
3.檢視告警日志資訊
GGSCI (PONY) 2> view ggsevt
4. 檢視延時,以及檔案抽取應用情況
GGSCI> lag <程序名稱> 可以檢視詳細的延時資訊。
例如:
GGSCI (db4) 11> lag rep1
Sending GETLAG request to REPLICAT REP1 …
No records yet processed.
At EOF, no more records to process.
看到At EOF, no more records to process.表名所有的抽取都已經應用完畢
5.檢視統計資訊
GGSCI> stats <程序名稱>,<時間頻度>,table . 可以檢視程序處理的記錄數。該報告會詳細的列出處理的類型和記錄數。
如:GGSCI> stats edr, total列出自程序啟動以來處理的所有記錄數。
GGSCI> stats edr, daily, table gg.test列出當天以來處理的有關gg.test表的所有記錄數。
stats MGOUPEXT, daily, table group.t_f_records
stats MGOUPEXT, HOURLY, table group.t_f_records
6.檢視詳細處理過的事物記錄
GGSCI> info <程序名稱> showch
7.檢視更詳細的資訊,包括所使用的trail檔案,參數檔案,報告檔案,告警日志檔案位置等
GGSCI> info <程序名稱> detail
8.檢視長交易
GGSCI> send extract ext1,showtrans
Ggsci> send extract <程序名> , showtrans [thread n] [count n]
其中,<程序名>為所要察看的程序名,如extsz/extxm/extjx等;
Thread n是可選的,表示隻檢視其中一個節點上的未送出交易;
Count n也是可選的,表示隻顯示n條記錄。
例如,檢視extsz程序中節點1上最長的10個交易,可以通過下列指令:
Ggsci> send extract extsz , showtrans thread 1 count 10
輸出結果是以時間降序排列的所有未送出交易清單,通過xid可以查找到對應的事務,查找出未送出原因,通過資料庫予以送出或者復原後GoldenGate的checkpoint會自動向前滾動。
9.使用GoldenGate指令跳過或接受長交易的方法
在GoldenGate中強制送出或者復原指定事務,可以通過以下指令(<>中的為參數):
Ggsci> SEND EXTRACT <程序名>, SKIPTRANS <5.17.27634> THREAD <2> //跳過交易
Ggsci> SEND EXTRACT <程序名>, FORCETRANS <5.17.27634> THREAD <1> //強制認為該交易已經送出
說明:使用這些指令隻會讓GoldenGate程序跳過或者認為該交易已經送出,但并不改變資料庫中的交易,他們依舊存在于資料庫中。是以,強烈建議使用資料庫中送出或者復原交易而不是使用GoldenGate處理。
10. 配置長交易告警
可以在extract程序中配置長交易告警,參數如下所示:
extract extsz
……
warnlongtrans 12h, checkintervals 10m
exttrail /backup/goldengate/dirdat/sz
….
以上表示GoldenGate會每隔10分鐘檢查一下長交易,如果有超過12個小時的長交易,GoldenGate會在根目錄下的ggserr.log裡面加入一條告警資訊。可以通過察看ggserr.log或者在ggsci中執行view ggsevt指令檢視這些告警資訊。以上配置可以有助于及時發現長交易并予以處理。
說明:在OGG 11g中,extract提供了BR參數可以設定每隔一段時間(預設4小時)将長交易緩存到本地硬碟(預設dirtmp目錄下),是以extract隻要不停止一般需要的歸檔日志不超過8個小時(極限情況)。但是如果extract停掉後,便無法再自動緩存長交易,需要的歸檔日志就會依賴于停機時間變長。
11. –重置抽取程序,本地檔案序列号從0開始生成。
alter extract ext1,extseqno 0,extrba 0
12.–重置讀取程序,重新從0号trial檔案開始讀取。
alter replicat rep1,extseqno 0,extrba 0
13.檢視幫助
help, help add exttrail
14.啟動和停止服務
start mgr,stop mgr
start extract einikk,stop extract einikk
start replicat rinikk,stop replicat rinikk
15.修改參數檔案
edit params <group name>
16.顯示目前的GoldenGate環境資訊
show
17.曆史指令
history
18.使用shell腳本
[email protected] ggs]$ cat /home/gdora/ggs/yzhq.txt
status manager
status mgr
[[email protected] ggs]$
Using UNIX batch and shell scripts
On a UNIX system, you can issue GoldenGate commands from a script such as a startup
script, shutdown script, or failover script by running GGSCI and calling an input file. Use
the following syntax:
ggsci < <input_file>
[[email protected] ggs]$ ggsci < yzhq.txt
GoldenGate Command Interpreter for Oracle
Version 10.4.0.12 Build 001
Linux, x86, 32bit (optimized), Oracle 10 on Aug 21 2009 14:34:04
Copyright (C) GoldenGate Software, Inc. 1995-2009.
The GoldenGate software may include other code written by third parties;
details regarding such third party code, including applicable copyright,
legal and licensing notices are available at http://support.goldengate.com.
GGSCI (testdb11.zhyhl.com) 1>
Manager is running (IP port testdb11.zhyhl.com.7809).
GGSCI (testdb11.zhyhl.com) 2>
Manager is running (IP port testdb11.zhyhl.com.7809).
GGSCI (testdb11.zhyhl.com) 3> [[email protected] ggs]$
[[email protected] ggs]$
18.檢視參數檔案的内容
view params mgr
19.添加程序
select log_mode,supplemental_log_data_min,force_logging from v$database;
GGSCI (node3) 10> view params ./GLOBALS
GGSCHEMA ggs
CHECKPOINTTABLE ggs.ggschkpt
1、抽取程序
add extract gpyun,tranlog,begin now
add exttrail /opt/ggs/dirdat/bl,extract gpyun
edit params gpyun
GGSCI (gg1) 28> view params ext01
extract ext01 --提取程序組的名字
userid ggtest, password oracle --同步使用者
exttrail /u01/ggate/dirdat/sd --trail 檔案目錄和辨別(類似于sd*這樣檔案),命名隻能是2個字元。
tranlogoptions excludeuser ggtest --避免循環複制的出現
DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA
table ssgg.*; --同步的表或使用者下所有的表
當你需要同步除Goldengate和Oracle資料庫自帶的使用者外所有使用者的DDL操作時,可在源端主抽取程序中加入下面的内容
ddl include all
然後再在目标端Replicat程序參數檔案中加入DDL錯誤的處理語句即可。
2、傳輸程序
add extract gptosz,exttrailsource /opt/ggs/dirdat/bl,begin now
add rmttrail /opt/ggs/dirdat/bl,extract gptosz
edit params gptosz
GGSCI (gg1) 29> view params p01
extract p01
userid ggtest,password oracle
rmthost 192.168.50.231,mgrport 7809 --指定遠端IP和MGR端口
rmttrail /u01/ggate/dirdat/pd
table ssgg.*;
3、應用程序
為replicat程序建立checkpoint表:
GGSCI (gg2) 1> dblogin userid ggtest,password ggtest
Successfully logged into database.
GGSCI (gg2) 2> add checkpointtable ggs.ggschkpt
Successfully created checkpoint table goldengate.rep_demo_ckpt.
add replicat gprep,exttrail /opt/ggs/dirdat/nl,checkpointtable ggs.ggschkpt
add replicat repbj,exttrail /opt/ggs/dirdat/bl,checkpointtable ggs.ggschkpt
edit parmas gprep
edit params repbj
實作雙向複制,一般用于雙業務中心環境下在實際應用中。雙向複制(DDL+DML)面臨着許多問題,主要有如下幾點:
1. 如果兩個庫同時更新同一條記錄如何處理?調整業務規則
2. 如果網絡出現失敗如何處理?支援斷點續傳
3. 如果資料不同步後如何修複?導出源端,導入目标端
總結:
雙向複制避免資料沖突是難點,解決這個難點根本還是調整業務:
a) 隻在一端開展業務
b) 兩端開展不同業務,涉及不同資料集
c) 兩端開展相同業務,但依據地域或其他條件對資料予以區分,兩邊不操作同一條資料
add replicat repbj,exttrail /opt/ggs/dirdat/mdgroup/bj,checkpointtable ggs.ggschkpt
GGSCI (qfangbj2) 2> view params repbj
REPLICAT repbj
ASSUMETARGETDEFS
SETENV(NLS_/oracle/database/product/11.2.0/dbhome_1")
USERID ggs, PASSWORD oracleggs
APPLYNOOPUPDATES
REPERROR DEFAULT, DISCARD
discardfile ./dirrpt/repbj.dsc,APPEND,MEGABYTES 1024
DYNAMICRESOLUTION
DDL INCLUDE MAPPED
DDLERROR DEFAULT IGNORE RETRYOP
MAP GROUP.t_person, TARGET group.t_person;
MAP GROUP.t_org, TARGET group.t_org;
MAP GROUP.t_store, TARGET group.t_store;
MAP GROUPUSER.* , TARGET GROUPUSER.* ;
alter EXTRACT MODTOSH begin 2016-01-19 17:59:10
alter EXTRACT MGOUPEXT begin 2016-01-28 03:10:10
alter REPLICAT MSZGREP begin 2016-07-25 10:50:00
alter REPLICAT MSZGREP begin now
Alter extract E2,etrollover #具體作用了解下
加密:
[[email protected] ggs]$ ./keygen 192 4
mykey1 0x63E3C4423A054D1FADA86118960F9B7416731D7B4E0C4931
mykey2 0x4477853632F5E47AD58B2B0C2E1A9E23AEC65C7C7DD9483B
mykey3 0x250B462A2BE57C56FC6EF57FC524A152461A9C7DACA64845
mykey4 0x069F061E24D514322452BF735D2FA401DE6DDB7EDB73484F
DBOPTIONS DECRYPTPASSWORD AADAAAAAAAAAAAOAYHMDTEVFJJEIKEOHCBXIGAEAJEYAYHEEFDRDWEZGBIJAFEQIGJUDHBIDMGQJCJGBYELABGPEAGBCNDIH AES192 encryptkey mykey1
排除某張表:
TABLEEXCLUDE fin.TEST
TABLE fin.*