Oracle GoldenGate OGG管理員手冊

kunlunzhiying發表於2016-11-26

第一章 系統實現簡述

  1. 前言

編寫本手冊的目的是為系統管理員以及相關操作人員提供 Oracle  Goldengat  軟

件的日常維護和使用的技術參考;

 

 

3

 

ORACLE

第二章 OGG 日常維護操作指南

  1. 啟動 Goldenagate
    1.  oracle 使用者登入生產資料庫主機系統
    2. 進入 OGG 安裝目錄/ggs,執行./ggsci 進入命令列模式;
    3. 啟動源端管理程式

Copyright OGG Software, Inc.   1995-2007

GGSCI > start mgr          //  啟動 manager 程式

  1. 啟動所有程式

Copyright OGG Software, Inc.   1995-2007

GGSCI > start ext *         //啟動所有抽取程式

  1. 檢視程式狀態是否為 Running(表示已經啟動);

Copyright OGG Software, Inc.   1995-2007

 

GGSCI > info ext *//檢視所有程式資訊
   
SCI > start rep * //啟動所有投遞程式
   

 

  1. 檢視程式狀態是否為 Running(表示已經啟動);

Copyright OGG Software, Inc.   1995-2007

GGSCI > info er *   //檢視所有程式資訊

說明:GGSCI > start er *是啟動所有程式,如果只啟動一個程式命令為 start <

程式名>。例如程式名稱為 dpesz,則啟動命令為 start dpesz。

  1. 停止 OGG
    1.  oracle 使用者登陸主機系統;

 

 

4

 

ORACLE

  1. 進入 OGG 安裝目錄/ggs,執行./ggsci 進入命令列模式
  2. 驗證 OGG 的抽取程式重起所需的日誌是否存在,對各個 extXX 程式分別執 行命令:

Copyright OGG Software, Inc.   1995-2007

GGSCI>info extXX,showch       //查詢 extXX 程式回滾檢查點

Read Checkpoint #1

Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1

Sequence #: 9671                           //在節點 1 上回滾需要的檢查點日誌序列號

RBA: 239077904

Timestamp: 2008-05-20 11:39:07.000000

SCN: 2195.1048654191

Redo File: Not available

Current Checkpoint (position of last record read in the data source): Thread #: 1

Sequence #: 9671 RBA: 239377476

Timestamp: 2008-05-20 11:39:10.000000

SCN: 2195.1048654339

Redo File: Not Available

Read Checkpoint #2

Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

Thread #: 2

Sequence #: 5287                        //在節點 2 上回滾需要的檢查點日誌序列號

RBA: 131154160

Timestamp: 2008-05-20 11:37:42.000000

SCN: 2195.1048640151

Redo File: /dev/rredo07

Current Checkpoint (position of last record read in the data source):

Thread #: 2

Sequence #: 5287

 

 

5

 

ORACLE

RBA: 138594492

Timestamp: 2008-05-20 11:39:14.000000

SCN: 2195.1048654739

Redo File: /dev/rredo07

檢視 Recovery Checkpoint 所需要讀取的最古老日誌序列號“9671”“5287”標

明的歸檔日誌以及以後的日誌檔案在當前的歸檔目錄中是否完全存在;如果存在則

可以停止生產資料庫主機上的 ext 程式;

  1. 停止生產中心的相關程式;

Copyright OGG Software, Inc.   1995-2007

1)檢查 exthy 程式是否將資料全部抓取出來

進入 OGG 控制檯,執行:info all 檢視 OGG 程式狀態。再執行:lag ext exthy 確

認結果為:At EOF, no more records to process.          再執行 send ext exthy,showtrans 如

果沒有查到結果,(關鍵顯示資訊如下: not transaction founds)則可進行下一步,執

行:info exthy,detail,記錄下顯示內容的 remote 部分顯示的 seqno 和 extrba 的數值;

再執行 info dpehy ,記錄下顯示的 seqno 和 extrba 的數值,和上一步執行的結果進

行比較,兩個結果相同,表示 exthy 程式處理完所有的資料。

2)  info dpehy,detail,記錄下顯示內容的 remote 部分顯示的 seqno 和 extrba 的數

值,提供給 rephy 來使用。

3)檢查 dpe 是否將資料全部傳輸到目標端

登陸 OGG 控制檯執行 info rephy 記錄下顯示的 seqno 和 extrba 的數值,如果兩個

結果相同,表示 dpewf 程式處理完所有資料

4)停止 exthy 和 dpehy 程式

GGSCI>stop exthy

GGSCI>stop dpehy

5)多次執行 Info rephy,檢查佇列的 rba 的數值是否還在變化,如果無變化 ,表

示資料已經都同步完畢 則可進行下一步

 

 

6

 

ORACLE

6)stop rephy

7)執行 info all,所有程式都是 STOPPED,表示正常

4、執行 info all,所有程式都是 STOPPED,表示正常

說明:只有在需要停止 ext 程式時,才需要如此檢測,dpe、rep 程式則不需要;

stop er *表示停止所有程式,只停止一個程式命令為 stop <程式名>。例如程式名稱

為 dpesz,則啟動命令為 start dpehy;

  1. 檢視程式資訊

OGG 所有程式狀態共有 3 種:

  • Running:正常執行
  • Stopped:正常停止或未能啟動
  • Abended:異常中斷;

正常的情況下,程式為 Running 或則 Stopped 狀態;一旦出現 Abended 狀態,需

查詢相關的報告檔案和 dsc 檔案以定位錯誤;

進入 OGG 安裝目錄並執行./ggsci 進入命令列模式;

 

3.1 查詢所有程式狀態        
命令:GGSCI > info all        
     
Copyright OGG Software, Inc.   1995-2007    
GGSCI (P595B_ctaisdb) 2> info all //查詢所有程式資訊  
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING        
EXTRACT RUNNING EXTKJ 00:00:00 00:00:07
EXTRACT RUNNING   DPEKJ 00:00:00 00:00:09
EXTRACT RUNNING EXTSZ 00:00:00 00:00:00
             

 

 

7

 

ORACLE

EXTRACT       RUNNING         DPESZ            00:00:00          00:00:00

3.2 查詢相關程式狀態

命令:GGSCI > info <程式名>,如 repxx/extxx/dpexx 檢視單個程式狀態;

輸出示例如下:

 

Copyright OGG Software, Inc.   1995-2007  
   
GGSCI (P595B_ctaisdb) 2> info extxx //查詢程式 extsz 資訊
EXTRACT EXTSZ Last Started 2008-05-11 14:49Status RUNNING
Checkpoint Lag   00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File Not Available  
2008-05-20 11:39:02   Thread 1, Seqno 9671, RBA 238663364
Log Read Checkpoint File /dev/rredo07  

2008-05-20 11:39:03   Thread 2, Seqno 5287, RBA 138279848

3.3 檢視程式檢查點資訊

命令:GGSCI > info <程式名>showch

示例如下:

Copyright OGG Software, Inc.   1995-2007

GGSCI>info extXX,showch       //查詢 extXX 程式回滾檢查點

Read Checkpoint #1

Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1

Sequence #: 9671                           //在節點 1 上回滾需要的檢查點日誌序列號

RBA: 239077904

Timestamp: 2008-05-20 11:39:07.000000

SCN: 2195.1048654191

Redo File: Not available

 

 

8

 

ORACLE

Current Checkpoint (position of last record read in the data source): Thread #: 1

Sequence #: 9671 RBA: 239377476

Timestamp: 2008-05-20 11:39:10.000000

SCN: 2195.1048654339

Redo File: Not Available

Read Checkpoint #2

Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 2

Sequence #: 5287                        //在節點 2 上回滾需要的檢查點日誌序列號

RBA: 131154160

Timestamp: 2008-05-20 11:37:42.000000

SCN: 2195.1048640151

Redo File: /dev/rredo07

Current Checkpoint (position of last record read in the data source):   //當前檢查點

Thread #: 2 Sequence #: 5287

RBA: 138594492

Timestamp: 2008-05-20 11:39:14.000000

SCN: 2195.1048654739

Redo File: /dev/rredo07

說明:檢視單個程式的檢查點詳細資訊,包括讀取到什麼位置,寫到什麼位置。

特別需要注意 Recovery Checkpoint,這個檢查點記錄的是當前最早沒有提交的事務

開始的日誌,如果下次需要重起則需要讀這個日誌,要保證其沒有被刪除

3.4 檢視程式報告

命令:GGSCI > view report <程式名>

例如 repsz 檢視複製程式報告。一般在程式出現 abended 後可以在報告裡面找到

 

 

9

 

ORACLE

錯誤資訊。

示例如下:

Copyright OGG Software, Inc.   1995-2007

GGSCI > view report repsz

***********************************************************************

OGG Delivery for Oracle Version v9.5.1.1 Build 006

AIX 5L (optimized 64-bit), Oracle 9.2.0 on Nov 30 2007 11:47:10 Copyright OGG Software, Inc. 1995-2007

Starting at 2008-04-24 23:10:17

***********************************************************************

Operating System Version:

AIX

Version 5, Release 3

Node: zjzbnhdb03

Machine: 00CE7A8F4C00

 

      soft limit hard limit
Address Space Size:   unlimited unlimited
Heap Size   : unlimited unlimited
File Size :   unlimited unlimited
CPU Time   : unlimited unlimited

Process id: 1335310

***********************************************************************

**                     Running with the following parameters                               **

***********************************************************************

replicat repsz     //     程式名

userid OGG, password *************

 

 

10

 

ORACLE

REPORT AT 01:59                 //報告時間

reportrollover at 02:00 –handlecollisions –reperror default,discard

discardfile /oradata/OGG/repxm.dsc,append,megabytes 100m –ddlerror default discard

assumetargetdefs allownoopupdates dynamicresolution numfiles 3000

MAP ctais2.* ,TARGET ctais2.*;

Database Version:

Oracle9i Enterprise Edition Release 9.2.0.7.0 – 64bit Production

PL/SQL Release 9.2.0.7.0 – Production

CORE     9.2.0.7.0 Production

TNS for IBM/AIX RISC System/6000: Version 9.2.0.7.0 – Production

NLSRTL Version 9.2.0.7.0 – Production

Database Language and Character Set:

NLS_LANG = “AMERICAN_AMERICA.US7ASCII”

NLS_LANGUAGE         = “AMERICAN”

NLS_TERRITORY       = “AMERICA”

NLS_CHARACTERSET = “US7ASCII”

For further information on character set settings, please refer to user manual.

***********************************************************************

**                                     Run Time Messages                                                   **

***********************************************************************

Opened trail file /oradata /OGG/dirdat/xm000000 at 2008-04-24 23:10:19

 

 

11

 

ORACLE

Wildcard MAP resolved (entry CTAIS2.*):

MAP CTAIS2.DM_CZRY, TARGET ctais2.DM_CZRY; Using following columns in default map by name:

CZRY_DM, SWJG_DM, CZRY_MC, SWRY_DM, QX_SWJG_DM, XM_NSRSBH, XYBZ, YXBZ

  1. 配置自動刪除佇列檔案
  • 以 oracle 使用者登入系統,進入安裝目錄執行./ggsci;
  • 執行 edit param mgr 編輯管理程式引數,加入或修改以下行

Copyright OGG Software, Inc.   1995-2007

GGSCI>edit param mgr     //編輯 Manager 引數

purgeoldextracts /<OGG 安裝目錄>/dirdat/*, usecheckpoint, minkeepdays 7

其中,第一個引數為佇列位置,*可匹配備份中心所有佇列檔案;第二個參數列

示是首先要保證滿足檢查點需要,不能刪除未處理佇列;第三個參數列示最小保留

多少天,後面的數字為天數。例如,如果希望只保留佇列/ggs/dirdat/xm 檔案 10 天,

可以配置如下:

purgeoldextracts /oraclelog1/OGG/dirdat/xm, usecheckpoint, minkeepdays 10

3)  停止 MGR 程式,修改好引數後重啟該程式

Copyright OGG Software, Inc.   1995-2007

GGSCI > stop mgr

Manager process is required by other GGS processes.

Are you sure you want to stop it (y/n)? y   //輸入 y 確認停止 mgr 程式

Sending STOP request to MANAGER …

Request processed.

Manager stopped.

Copyright OGG Software, Inc.   1995-2007

GGSCI > start mgr

 

 

12

 

ORACLE

Manager started.

注:臨時停止 mgr 程式並不影響資料複製。

  1. 配置啟動 mgr 時自動啟動 extract  replicat 程式
    • 以 OGG 使用者登入系統,進入安裝目錄執行./ggsci;
    • 執行 edit param mgr 編輯管理程式引數,加入以下行

AUTOSTART ER *

Copyright OGG Software, Inc.   1995-2007

GGSCI>edit param mgr     //編輯 Manager 引數

3)  停止 MGR 程式,修改好引數後重啟該程式

Copyright OGG Software, Inc.   1995-2007

GGSCI > stop mgr     //關閉程式 Manager

Manager process is required by other GGS processes.

Are you sure you want to stop it (y/n)? y   //輸入 y 確認停止 mgr 程式

Sending STOP request to MANAGER …

Request processed.

Manager stopped.

GGSCI > start mgr   //啟動 Manager

Manager started.

注意:一般建議不用自動啟動,而是手工啟動,便於觀察狀態驗證啟動是否

成功,同時也便於客戶自己修改引數。

  1. 配置 mgr 定時自動重啟 extract  replicat 程式

OGG 具有自動重起 extract 或者 replicat 程式的功能,能夠自動恢復如網路中

斷、資料庫臨時掛起等引起的錯誤,在系統恢復後自動重起相關程式,無需人工介

入。

1)  以 oracle 使用者登入系統,進入安裝目錄執行 ggsci 進入命令列介面;

 

 

13

 

ORACLE

2)  執行 edit param mgr 編輯管理程式引數,加入以下行

AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60

Copyright OGG Software, Inc. 1995-2007 GGSCI>edit param mgr //編輯 Manager 引數

以上參數列示每 5 分鐘嘗試重新啟動所有程式,共嘗試三次。以後每 60 分鐘

清零,再按照每 5 分鐘嘗試一次共試 3 次。

3)  停止 MGR 程式,修改好引數後重啟該程式,使修改後的引數檔案生效

GGSCI > stop mgr   //停止程式 Manager

Manager process is required by other GGS processes.

Are you sure you want to stop it (y/n)? y   //輸入 y 確認停止 mgr 程式

Sending STOP request to MANAGER …

Request processed.

Manager stopped.

GGSCI > start mgr        //啟動程式 Manager

Manager started.

  1. 長交易的管理

在停止抽取程式前需要透過命令檢查是否存在長交易,以防止下次啟動無法找

到歸檔日誌:

命令格式 gsci> info 程式名, showch

示例如下:

Copyright OGG Software, Inc.   1995-2007

ggsci> info extsz,showch            //查詢程式 extsz 未提交長交易檢查點位置

Read Checkpoint #1

….

Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

 

 

14

 

ORACLE

Thread #: 1

Sequence #: 9671

RBA: 239077904

Timestamp: 2008-05-20 11:39:07.000000

SCN: 2195.1048654191

Redo File: Not available

Current Checkpoint (position of last record read in the data source):

Thread #: 1

Sequence #: 9671

RBA: 239377476

Timestamp: 2008-05-20 11:39:10.000000

SCN: 2195.1048654339

Redo File: Not Available

Read Checkpoint #2

…..

Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 2

Sequence #: 5287 RBA: 131154160

Timestamp: 2008-05-20 11:37:42.000000

SCN: 2195.1048640151

Redo File: /dev/rredo07

Current Checkpoint (position of last record read in the data source):

Thread #: 2

Sequence #: 5287

RBA: 138594492

Timestamp: 2008-05-20 11:39:14.000000

SCN: 2195.1048654739

 

 

15

 

ORACLE

為了方便長交易的管理,OGG 提供了一些命令來幫助客戶和應用開發商

查詢到對應長交易,並在 OGG 中予以提交或者回滾。

(一)  檢視長交易

命令格式:send extract <程式名> , showtrans [thread n] [count n]

其中,<程式名>為所要察看的程式名,如 extsz/extxm/extjx 等;Thread n 是

可選的,表示只檢視其中一個節點上的未提交交易;Count n 也是可選的,表示只顯

示 n 條記錄。例如下面命令:

Copyright OGG Software, Inc.   1995-2007

Ggsci> send extract extsz , showtrans thread 1   count 10   //查詢 extsz 程式中節點 1 上最長

的 10 個交易

Sending showtrans request to EXTRACT EXTSZ

No transactions found

Oldest redo log file necessary to restart Extract is:

Redo Log Sequence Number 2, RBA 7890448.

輸出結果是以時間降序排列的所有未提交交易列表,透過 xid 可以查詢到對應的

事務,請應用開發商和 DBA 幫助可以查詢出未提交原因,透過資料庫予以提交或者

回滾後 OGG 的 checkpoint 會自動向前滾動。

()   使用 OGG 命令跳過或接受長交易

在 OGG 中強制提交或者回滾指定事務,可以透過以下命令:

跳過交易命令格式

Ggsci> SEND EXTRACT <程式名>, SKIPTRANS <5.17.27634> THREAD <2>

強制認為該交易已經提交命令格式

Ggsci>SEND EXTRACT <程式名>, FORCETRANS <5.17.27634> THREAD <1>

說明:使用這些命令只會讓 OGG 程式跳過或者認為該交易已經提交,但

並不改變資料庫中的交易,他們依舊存在於資料庫中。因此,強烈建議使用資料庫

 

 

16

 

ORACLE

中提交或者回滾交易而不是使用 OGG 處理。

()   配置長交易告警

可以在 extract 程式中配置長交易告警,引數設定如下所示:

Copyright OGG Software, Inc.   1995-2007

ggsci> edit param extsz            //編輯程式 extsz 引數

在引數檔案中增加如下:

warnlongtrans 12h, checkintervals 10m

exttrail /backup/OGG/dirdat/sz

….

以上表示 OGG 會每隔 10 分鐘檢查一下長交易,如果有超過 12 個小時的

長交易,OGG  會在根目錄下的 ggserr.log  裡面加入一條告警資訊。可以透過察看

ggserr.log 或者在 ggsci 中執行 view ggsevt 命令檢視這些告警資訊。以上配置可以有

助於及時發現長交易並予以處理。

  1. 源端和目標端資料庫增減複製表

(一)  增加複製表

在當前程式引數中,透過顯式列表的來匹配表,增加表後必須要修改配置檔案,

還要為新增的表新增附加日誌。步驟如下:

源端:

GGSCI 〉STOP EXT*

GGSCI> INFO ALL

目標端:

GGSCI>STOP REP*

GGSCI>INFO ALL

源端:

GGSCI>dblogin userid OGG, password XXXXXXX

GGSCI > info trandata <schema>.<table name>

 

 

17

 

ORACLE

如果不是 enable 則需要手動加入:

GGSCI > add trandata <schema>.<table name>

GGSCI>START EXT*

目標端:

GGSCI>START REP*

另外,當前 OGG 自動複製新增表的增刪改等 DML 操作,但不復制 DDL 操作, 所以對於新增表請首先在目標端建立表結構。如果有外來鍵和 trigger,需要在目標

表臨時禁止該外來鍵和 trigger。

()   減少複製表

如果有的表不再需要,可以在源端 drop 掉,然後到目標 drop 掉,在 OGG 的

複製引數中把該表排除掉即可。

如果其中幾個表依然存在,只是無需 OGG 複製,則可以透過以下步驟排除:

  • 在源端系統上首先根據節2 描述驗證所需歸檔日誌存在後透過 stop extXX 停止對應的 extXX 程式;
  • 在目標端系統上 ggsci 中執行 stop repXX 停止目標端的複製程式;
  • 在源端修改 ext 程式的引數檔案排除所不復制的表:

Ggsci> edit param extXX

……

tableexclude hxods.TMP_*; tableexclude hxods.BAK_*; tableexclude hxods.MLOG$_*; tableexclude hxods.RUPD$_*; tableexclude hxods.KJ_*;

tableexclude myschema.mytable;

table hxods.*;

…….

在檔案定義 table 的行前面加入一行“tableexclude <schema>.<tablename>;” 注

意寫全 schema 和表的名稱。

4)   在目標端修改 rep 程式引數,同樣排除該表:

 

 

18

 

ORACLE

GGSCI>edit param repXX

在 map 前面加入一行:

–mapexclude HXODS.SHOULIXINXI

mapexclude myschema.mytable

MAP HSODS.* ,TARGET HXODS.*;

5)   在目標端系統上啟動複製程式 repXX

GGSCI > start   repXX

6)   在源端系統上啟動源端的抓取程式 extXX

GGSCI > start   extXX

即可進入正常複製狀態。

  1. 修改表結構

當資料庫需要複製的表結構有所改變,如增加列,改變某些列的屬性如長度等表

結構改變後,可以按照下列步驟執行:

  • 按照本文前面所述操作順序停止源和目標端各抽取及投遞程式(注意停源端 抽取要驗證一下歸檔日誌是否存在防止無法重起),無需停止 manager 程式;
  • 修改目標表結構;
  • 修改源表結構;
  • 如果表有主鍵,並且本次修改未修改主鍵,則可以直接啟動源和目標所有進 程繼續複製,完成本次修改;否則,如果表無主鍵或者本次修改了主鍵則需

繼續執行下列步驟;

Copyright OGG Software, Inc.   1995-2007

ggsci> dblogin userid go mldengate, password XXXXXX   //登陸資料庫

Successfully logged into database.

ggsci> delete trandata schema.mytable     //刪除表的附加日誌

Logging of supplemental redo log data disabled for table schema.mytable ggsci> add trandata schema.mytable //增加表的附加日誌

Logging of supplemental redo log data is disabled for table schema.mytable

  • 如果表超過了 32 列則上述操作可能會報錯,此時需要手工進行處理,請參 考附錄三中如何手動為表刪除和增加附加日誌。
  • 重新啟動源端和目標端的抓取和複製程式。

 

 

19

 

ORACLE

  1. 使用 imp 匯入資料的注意事項

使用 imp 工具匯入資料時,由於該操作寫日誌,OGG 支援複製透過 imp 匯入的

資料,但不支援建立表的操作,需要在目標端事先建立表然後再在源端匯入。

需要注意的是,每次 imp 都是一個 oracle 事務,如果匯入的表過大(如超過 10G),

有可能超過 OGG 所配置的最大記憶體,請首先諮詢 OGG 技術支援。

  1. 表的重新再同步

如果是某些表由於各種原因造成兩邊資料不一致,需要重新進行同步,但實際業

務始終 24 小時可用,不能提供時間視窗,則可以參照以下步驟。(因較為複雜,使

用需謹慎!)

確認 ext/dpe/rep 程式均無較大延遲,否則等待追平再執行操作;

停止目標端的 rep 程式;

注意:步驟 3-5 為將源端資料透過 exp/imp 匯入到目標端,客戶也可以選擇其它

初始化方式,比如 expdp/impdp。

在源端獲得當前的 scn 號。例如:

select dbms_flashback.get_system_change_number from dual;

以下以獲得的 scn 號為 1176681 為例

在源端使用 exp 匯出所需重新初始化的表或者幾張表資料,並且指定到剛才記下

的 scn 號。例如:

exp <username>/<password> tables=ctais2.SB_ZSXX grants=n statistics=none triggers=n compress=n FLASHBACK_SCN=1176681

透過 ftp 傳輸到目標端;

在目標端,使用 imp 匯入資料;

nohup imp OGG/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ignore=y

&

如果這些表有外來鍵,在目標端檢查這些外來鍵並禁止它們(記得維護 dirsql 下的禁

 

 

20

 

ORACLE

止和啟用外來鍵的指令碼 SQL);

編輯目標端對應的 rep 引數檔案,在其 map 裡面加入一個過濾條件,只對這些重

新初始化的表應用指定 scn 號之後的記錄(一定要注意不要修改本次初始化之外的其

它表,會造成資料丟失!):

map  source.mytab,  target  target.mytab,  filter  (  @GETENV  (“TRANSACTION”,

“CSN”) >          1176681 ) ;

確認引數無誤後,啟動目標端的 rep 程式;

使用 info repxx 或者 lag repxx 直到該程式追上,停止該程式去掉 filter 即可進入

正常複製。

  1. OGG 複製軟體升級

當源端和目標端要進行 OGG 升級時,請首先諮詢 OGG 技術支援人員。如升級

後版本無特殊要求,其操作參考如下:

1)   按正常步驟停止當前版本抓取端的程式。

OGG Command Interpreter for Oracle

Version v9.5.1.0 Build 012

Windows (optimized), Oracle 10.1.0 on Oct 29 2007 20:10:55

Copyright OGG Software, Inc.   1995-2007

GGSCI (FILESRV) 1> stop er *   //停止所有的程式

EXTRACT EXTSZ is already stopped.

Sending STOP request to EXTRACT EXTSZ …

Request processed.

GGSCI > info er *                                                          //查詢程式資訊

EXTRACT       EXTSZ         Last Started 2008-07-03 02:01    Status STOPPED   //程式已經停

Checkpoint Lag            00:00:00 (updated 11:30:25 ago)

 

 

21

 

ORACLE

Log Read Checkpoint   ………….

記錄反饋資訊

OGG Command Interpreter for Oracle

Version v9.5.1.0 Build 012

Windows (optimized), Oracle 10.1.0 on Oct 29 2007 20:10:55

Copyright OGG Software, Inc.   1995-2007

 

GGSCI (FILESRV) 4> stop mgr //停止程式 Manager
         
Manager is already stopped.        
GGSCI (FILESRV) 5> info all //查詢所有程式狀態  
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED      
EXTRACT STOPPED EXTT1 00:00:00 11:33:38
EXTRACT STOPPED EXTT3 00:00:00 00:05:00
           

 

記錄反饋資訊

  • 按正常步驟停止目標備份端程式。(同第一步類似)

GGSCI > stop er *

GGSCI > info er *

GGSCI > stop mgr

記錄反饋資訊

  • 將舊的系統下所有檔案打包備份;
  • 將最新版本的軟體包 MV 到根目錄下解包安裝覆蓋舊的系統。

 

$ gzip -d XXXXXXX.tar.gz //解壓縮安裝檔案
$ tar xvf XXXXXXX.tar //解壓縮安裝檔案
   

 

5)   按同樣步驟升級備份資料庫主機 OGG 軟體。

 

 

22

 

ORACLE

  • 檢視設定資訊是否與原版本一致,重新啟動源資料庫主機的抓取和複製程式。查 看執行狀態。

GGSCI > info er *

GGSCI > start mgr;啟動源端 ggs 軟體

GGSCI > start mgr;啟動備份端 ggs 軟體

按正常步驟啟動源端複製程式。

GGSCI > start er *

GGSCI > info er *

按正常步驟啟動目標端複製程式。

GGSCI > start rep *

GGSCI > info rep *

7)   版本升級結束。

  1. 資料庫升級

在資料庫升級之前應提前通報給 OGG,以便於確定複製軟體是否支援最新版本。

如果需要升級 OGG 軟體參考前面的升級步驟,如果不需要升級 OGG,則只需停止

OGG 程式進行升級,然後升級完畢重新啟動即可。

  1. 作業系統升級

在資料庫升級之前應提前通報給 OGG,以便於確定複製軟體是否支援最新版本。

如果需要升級 OGG 軟體參考前面的升級步驟,如果不需要升級 OGG,則只需停止

OGG 程式進行升級,然後升級完畢重新啟動即可。

  1. 資料庫使用者密碼加密
    • OGG 的 dirprm 目錄下存放著所有引數檔案,其中密碼可以使用明文或者加 密方式儲存,如果需要使用加密密碼,請使用下列步驟:

GGSCI > encrypt password   mypassword   //生成金鑰

 

 

23

 

ORACLE

No key specified, using default key..

Encrypted password:   AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC

將引數檔案中原來的明文行

userid ggs, password mypassword

改為密文

userid ggs, password   AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC,

encryptkey default

然後重新啟動程式即可

附錄一 OGG 對資料型別和對的限制

1.OGG 對資料型別和物件的限制

1.1OGG 資料型別支援

  • 支援Numeric(數字型別),包括NUMBER、BINARY FLOAT、BINARY DOUBLE。 暫不支援BINARY_INTEGER和PLS_INTEGER。
  • 支援所有Character(字元型別),包括CHAR、VARCHAR2、LONG、NCHAR、 NVARCHAR2。
  • 支援大物件,包括CLOB、NCLOB、BLOB。但不支援BFILE
  • 支援Binary(二進位制型別),包括RAW和LONG RAW。
  • 支援Date及timestamp型別。支援除了TIMEZONE_REGION和TIMEZONE_ABBR 型別的所有TIMESTAMP型別。
  • 暫不支援多位元組的XML型別。
  • 支援使用者自定義型別(UDT),源端的UDT與目標端的UDT的必須相同。
  • 其它支援的資料型別,包括ROWID、VARRAY、INTERVAL DAY、INTERVAL YEAR。
  • OGG暫不支援的其它資料型別:

ANYDATA and ANYDATASET

ANYTYPE

MLSLABEL

 

 

24

 

ORACLE

URITYPE

UROWID

1.2OGG 特殊物件支援

1.2.1 有條件支援物化檢視(Materialized views)

在以下有條件限制中支援:

  • 源表必須有唯一主鍵
  • OGG不支援物化檢視使用”WITH ROWID”來建立,但當物化檢視LOG(不是物 化檢視自己)用”WITH ROWID”來建立時,OGG是支援的。
  • 物化檢視必須是使用單個表,而不能包含joins生成的表。
  • OGG不支援truncates物化檢視,但支援使用“DELETE FROM”來替代。
  • 索引組織表(Index organized tables)透過物化檢視複製
    • 對於OGG基於LOG的複製方式,IOT表無法直接從日誌中抽取,但是可以為 IOT表建立物化檢視,透過複製該物化檢視的變化實現IOT資料變化的複製。
  • 其它不支援物件
    • Clustered tables。
    • Nested tables。OGG只支援該類表的增加和刪除,不支援嵌入物件的更新。
    • 使用壓縮(COMPRESS)選項生成或修改的表
    • Views(檢視)
    • Synonyms(同義表)
    • REFs

2.OGG 不支援的特殊操作

以下特殊操作由於不寫日誌,OGG 無法予以複製:

  • Direct-path table loads(由於不進行寫 LOG 操作)

Oracle 插入資料有兩種方式:

 

 

25

 

ORACLE

a、常規插入:重新使用 table 中的自由空間,在已有資料中插入新資料;

維護引用完整性約束。

b、Direct-Path 插入:在表中已有資料之後插入新資料;資料直接插入資料

檔案,繞過 buffer cache;已有資料中的自由空間沒有被重新利用;忽略了

引用完整性約束。Direct-Path 可以 disable redo log 和 undo log,導致 OGG

無法透過日誌捕捉到資料變化。

常見的 Direct Path Load 包括:

  • insert into table as select….
  • create table xxx as select…

如果遇到上述操作,一般這些表資料不是原生資料,可以在複製中排除掉這

些表並透過定時備份等方式予以複製。

  • /*+ APPEND */ hint。如果在應用中使用該 hint,則不會寫日誌,OGG 無

法複製。

  • /*+ BUFFER */ hint。如果在應用中使用該 hint,則不會寫日誌,OGG 無

法複製。

  1. OGG 支援 imp 操作

由於 imp 操作寫日誌,OGG 能夠支援 imp 操作。但由於不復制 DDL 操作,需

要事前在目標端建立表結構。如果 imp 的表過大,有可能引起 OGG 記憶體不夠用,報

出 105 錯誤。因此,請在使用 imp 前諮詢 OGG 技術支援。

  1. 資料庫和應用日常維護注意事項

4.1 Oracle 9i 中 redo parallelism 必須設定為 1

OGG基於log的複製方式,在oracle10g上可以將log_parallelism引數最大可以

設定到8,這個引數控制了並行產生REDO LOG的處理數量。但在oracle10g以下的版

本,OGG只支援該引數為1。請不要修改這個引數,否則會造成抽取資料不完整。

4.2 為表設定主鍵或者唯一索引

OGG使用主鍵和唯一索引在源和目標定位需要更新或者刪除的資料,應用開發新

 

 

26

 

ORACLE

增表應當儘可能帶有主鍵和唯一索引。

同時,增加主鍵也有利於提高目標端資料投遞的速度,減小複製延遲和降低資源

消耗。

4.3 保留 3-7 天歸檔日誌

OGG只複製已經提交的交易,如果不提交則不會複製到目標端。在停止複製並重

新啟動時,需要找到以前沒有提交交易開始的日誌。

因此,為了保證OGG能夠重新啟動,請保留3-7天歸檔日誌。

4.4 避免使用不寫日誌的操作

OGG 只複製日誌中的交易,應當避免在應用和資料庫維護中使用 Direct Path 等

不寫日誌的操作,這些操作無法複製,會導致兩端資料不一致。 OGG  複製的限制

和約束。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2129117/,如需轉載,請註明出處,否則將追究法律責任。

相關文章