Oracle GoldenGate OGG管理員手冊
第一章 系統實現簡述
- 前言
編寫本手冊的目的是為系統管理員以及相關操作人員提供 Oracle Goldengat 軟
件的日常維護和使用的技術參考;
3
ORACLE
第二章 OGG 日常維護操作指南
-
啟動 Goldenagate
- 用 oracle 使用者登入生產資料庫主機系統
- 進入 OGG 安裝目錄/ggs,執行./ggsci 進入命令列模式;
- 啟動源端管理程式
Copyright OGG Software, Inc. 1995-2007
GGSCI > start mgr // 啟動 manager 程式
- 啟動所有程式
Copyright OGG Software, Inc. 1995-2007
GGSCI > start ext * //啟動所有抽取程式
- 檢視程式狀態是否為 Running(表示已經啟動);
Copyright OGG Software, Inc. 1995-2007
GGSCI > info ext | *//檢視所有程式資訊 |
SCI > start rep * | //啟動所有投遞程式 |
- 檢視程式狀態是否為 Running(表示已經啟動);
Copyright OGG Software, Inc. 1995-2007
GGSCI > info er * //檢視所有程式資訊
說明:GGSCI > start er *是啟動所有程式,如果只啟動一個程式命令為 start <
程式名>。例如程式名稱為 dpesz,則啟動命令為 start dpesz。
-
停止 OGG
- 用 oracle 使用者登陸主機系統;
4
ORACLE
- 進入 OGG 安裝目錄/ggs,執行./ggsci 進入命令列模式
- 驗證 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 程式;
- 停止生產中心的相關程式;
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;
- 檢視程式資訊
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
- 配置自動刪除佇列檔案
- 以 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 程式並不影響資料複製。
-
配置啟動 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.
注意:一般建議不用自動啟動,而是手工啟動,便於觀察狀態驗證啟動是否
成功,同時也便於客戶自己修改引數。
- 配置 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.
- 長交易的管理
在停止抽取程式前需要透過命令檢查是否存在長交易,以防止下次啟動無法找
到歸檔日誌:
命令格式 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 命令檢視這些告警資訊。以上配置可以有
助於及時發現長交易並予以處理。
- 源端和目標端資料庫增減複製表
(一) 增加複製表
在當前程式引數中,透過顯式列表的來匹配表,增加表後必須要修改配置檔案,
還要為新增的表新增附加日誌。步驟如下:
源端:
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
即可進入正常複製狀態。
- 修改表結構
當資料庫需要複製的表結構有所改變,如增加列,改變某些列的屬性如長度等表
結構改變後,可以按照下列步驟執行:
- 按照本文前面所述操作順序停止源和目標端各抽取及投遞程式(注意停源端 抽取要驗證一下歸檔日誌是否存在防止無法重起),無需停止 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
- 使用 imp 匯入資料的注意事項
使用 imp 工具匯入資料時,由於該操作寫日誌,OGG 支援複製透過 imp 匯入的
資料,但不支援建立表的操作,需要在目標端事先建立表然後再在源端匯入。
需要注意的是,每次 imp 都是一個 oracle 事務,如果匯入的表過大(如超過 10G),
有可能超過 OGG 所配置的最大記憶體,請首先諮詢 OGG 技術支援。
- 表的重新再同步
如果是某些表由於各種原因造成兩邊資料不一致,需要重新進行同步,但實際業
務始終 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 即可進入
正常複製。
- 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) 版本升級結束。
- 資料庫升級
在資料庫升級之前應提前通報給 OGG,以便於確定複製軟體是否支援最新版本。
如果需要升級 OGG 軟體參考前面的升級步驟,如果不需要升級 OGG,則只需停止
OGG 程式進行升級,然後升級完畢重新啟動即可。
- 作業系統升級
在資料庫升級之前應提前通報給 OGG,以便於確定複製軟體是否支援最新版本。
如果需要升級 OGG 軟體參考前面的升級步驟,如果不需要升級 OGG,則只需停止
OGG 程式進行升級,然後升級完畢重新啟動即可。
-
資料庫使用者密碼加密
- 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 無
法複製。
- OGG 支援 imp 操作
由於 imp 操作寫日誌,OGG 能夠支援 imp 操作。但由於不復制 DDL 操作,需
要事前在目標端建立表結構。如果 imp 的表過大,有可能引起 OGG 記憶體不夠用,報
出 105 錯誤。因此,請在使用 imp 前諮詢 OGG 技術支援。
- 資料庫和應用日常維護注意事項
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GOLDENGATE管理員手冊Go
- GOLDENGATE管理員手冊總結Go
- Oracle SecureBackup管理員手冊Oracle
- Oracle GoldenGate Director配置手冊OracleGo
- Database Firewall管理員手冊Database
- Oracle GoldenGate(OGG)診斷OracleGo
- Database Firewall管理員手冊總結Database
- 面向系統管理員的容器手冊
- HP-UX系統管理員手冊UX
- 標籤安全管理員手冊總結
- Linux網路管理員手冊 (轉)Linux
- Linux 管理員手冊(4)--記憶體管理(轉)Linux記憶體
- Oracle高階安全管理手冊Oracle
- Linux 管理員手冊(8)--備份(轉)Linux
- Linux網路管理員手冊(1) (轉)Linux
- MySQL + Oracle GoldenGate + OGG Application AdpaterMySqlOracleGoAPP
- GOLDENGATE安裝和配置手冊Go
- 中文《linux 新手管理員手冊》下載(轉)Linux
- Linux 管理員手冊(9)--Keeping Time(轉)Linux
- Solaris管理員常用命令簡明手冊
- Oracle GoldenGate Veridata 12.2.1.4安裝配置使用全手冊OracleGo
- Linux 管理員手冊(7)--管理使用者帳戶(轉)Linux
- Linux 管理員手冊(2)--目錄樹概述(轉)Linux
- Linux 管理員手冊(6)--登入和登出(轉)Linux
- LCM產品管理員操作手冊讀後感
- Oracle高階安全管理手冊總結Oracle
- ORACLE GOLDENGATE MANAGER ABENDS, ERROR OGG-01454OracleGoError
- Oracle GoldenGate 11.2 OGG-01168OracleGo
- 【OGG】Oracle GoldenGate 11g (一) 安裝GoldenGate 11g on LinuxOracleGoLinux
- Solaris管理員常用168條命令簡明手冊(轉)
- Linux 管理員手冊(1)--Linux系統概述(轉)Linux
- Linux 管理員手冊(5)--引導和關機(轉)Linux
- Linux網路管理員手冊(目錄) 協議 (轉)Linux協議
- oracle goldengate日常管理命令OracleGo
- OGG goldengate 日常維護Go
- GOLDENGATE安裝和配置手冊總結Go
- Oracle Goldengate(ogg) 12c認證考試流程OracleGo
- ORACLE goldengate的OGG-01004 OGG-1296錯誤OracleGo