天天看點

OGG常用指令整理

轉自: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.*

繼續閱讀