【goldengate】官方文件筆記二 Oracle GoldenGate 處理介面(GGSCI)
Oracle GoldenGate 處理介面(GGSCI)
<為了簡便,Oracle GoldenGate簡寫為OGG>
Oracle GoldenGate為使用者提供了以下操作方式:
- GGSCI(Oracle GoldenGate 軟體命令介面)
- 批處理和shell指令碼
- 引數檔案
GGSCI以命令列的方式,配置、控制,和監控OGG。執行GGSCI最好是在安裝OGG的目錄下。例如/u01/app/oracle/goldengate
GGSCI提供了萬用字元*來簡化我們的操作,*號是IT詞彙中的萬能替代者,在Oracle GoldenGate中也不列外。當我們要啟動多個程式時,可以簡單的輸入
GGSCI > START *
或者我們要選擇啟動多個提取程式,並且名稱中包含字母X的,可以輸入
GGSCI > START EXTRACT *X*
同Linux作業系統一樣,OGG也可以檢視之前輸入過的命令,輸入:
GGSCI > HISTORY
如果想重複執行剛剛輸入過的命令可以輸入!,感嘆號。如同sqlplus中輸入/可以再次執行剛剛的那條SQL語句一樣
GGSCI > !
在GGSCI命令列輸入很長的引數後發現錯誤了,可以輸入FC命令進入編輯狀態,調整好該命令重新執行。就像sqlplus中使用預先設定好的ed來修改sql語句一樣。
如果我們需要按照規定的順序輸入一些命令的時候,就像RMAN備份中的run塊結構那樣分配通道,備份資料檔案,備份歸檔檔案,刪除歸檔檔案...順序執行一系列預先編寫好的指令呢?OGG想到了這一點,為使用者提供了一個叫做OBEY的方式來輸入命令。所謂OBEY,就是將命令列輸入到一個文字檔案中,一行輸入一個命令,順序輸入。在GGSCI命令介面呼叫該檔案,就可以完成一系列的操作了。下面給出一個OBEY的示例檔案
ADD EXTRACT myext, TRANLOG, BEGIN now
START EXTRACT myext
ADD REPLICAT myrep, EXTTRAIL /ggs/dirdat/aa
START REPLICAT myrep
INFO EXTRACT myext, DETAIL
INFO REPLICAT myrep, DETAIL
該檔案要完成新增提取程式myext,新增複製程式myrep,啟動提起程式,啟動複製程式,監控提起程式狀態,監控複製程式狀態一共6個獨立的命令。在OBEY中事先寫好命令,以指令碼的方式執行是不是很方便。
在GGSCI中呼叫OBEY輸入下面的命令
GGSCI > OBEY /dirdat/myObey
使用Oracle GoldenGate引數檔案
大多數的OGG功能都是透過配置檔案來實現的,配置檔案是純文字檔案。可以直接使用vi來編輯。瞭解OGG的功能要從配置檔案的引數開始。OGG的程式從配置檔案中讀取引數。引數檔案分為兩種,一種是全域性引數檔案,另一種是執行中引數檔案。
全域性引數
GLOBALS引數檔案在ogginstance整個生命週期都有效。該引數為活動引數,可以在執行狀態中修改,不需要重新啟動。該引數檔案適用於所有的OGG例項,但是優先順序較低。可以被其它程式的配置引數“覆蓋”,執行自己單獨的配置。就像國家制定的最低工資標準,各個地區會根據經濟條件作出相應的調整。
GLOBALS引數檔案不是OGG軟甲所依賴的。使用不適用都可以。如果使用的話,需要注意的是該檔案需要在OGG程式啟動之前配置好。
GLOBALS引數檔案在ogginstance整個生命週期都有效。該引數為活動引數,可以在執行狀態中修改,不需要重新啟動。該引數檔案適用於所有的OGG例項,但是優先順序較低。可以被其它程式的配置引數“覆蓋”,執行自己單獨的配置。就像國家制定的最低工資標準,各個地區會根據經濟條件作出相應的調整。
GLOBALS引數檔案不是OGG軟甲所依賴的。使用不適用都可以。如果使用的話,需要注意的是該檔案需要在OGG程式啟動之前配置好。
使用GLOBALS配置檔案有什麼好處呢?可以看兩個例子
GGSCHEMA oggadmin
CHECKPOINTTABLE oggadmin.checkpointtable
第一參數列示OGG的程式與oracle資料庫互動的那個使用者名稱。透過該使用者名稱可以login到資料庫,細節我們以後再說。
第二個引數是在複製端,災備端,或target端,怎麼稱呼都可以,獨有的設定。目的是告訴OGG檢查點的表叫什麼名字。現在只是提一筆,以後再說
這些配置在全域性都有效,是共通的,基本上不會改變,適合寫在這裡。
由於是全域性配置檔案,所以它應當是第一個被建立出來的配置檔案。在所有程式都沒建立之初,最先被建立出來的。
建立一個GLOBALS檔案很簡單。確保當前目錄為OGG安裝目錄,然後在命令列介面輸入以下命令
GGSCI > EDIT PARMAS ./GLOBALS
GLOBALS檔案建立好後,在編輯狀態可以輸入我們所需的引數。每個命令單獨佔用一行。編輯後退出該檔案,在退出GGSCI命令列介面,重新進入GGSCI介面使GLOBALS被當前session所載入。
例如剛才示例中的GGSCHEMA oggadmin
執行時引數
執行時引數為你提供了從各個方面來控制OGG同步工作的有力工具,比如:
- 挑選資料,對映,轉換和複製
- 挑選DDL和sequence,對映,轉換盒複製
- 錯誤解析
- 記錄日誌
- 狀態報表和錯誤報表
- 系統資源使用情況
- 啟動和執行的行為
EXTRACT引數檔案
-- 提取組名稱
EXTRACT capt
-- 提取程式的資料庫使用者名稱,和密碼加密方式
USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
-- Discard file
DISCARDFILE /ggs/capt.dsc, PURGE
-- 複製端資料庫的通訊地址及埠號, 資料加密格式:
RMTHOST sysb, MGRPORT 7809, ENCRYPT AES192 KEYNAME mykey
-- trail 資料的加密方式
ENCRYPTTRAIL AES192 KEYNAME mykey1
-- 複製端trail所在位置
RMTTRAIL /ggs/dirdat/aa
-- 被捕獲的表物件,FIN使用者下所有表和SALES使用者下所有表
TABLE FIN.*;
TABLE SALES.*;
再來看看複製引數檔案
-- 複製組名稱
REPLICAT deliv
-- 複製端資料庫使用者id和口令加密方式
USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
-- 檔案包含生產端(源端)的物件的定義
SOURCEDEFS /ggs/dirdef/defs
-- Discard file
DISCARDFILE /ggs/deliv.dsc, PURGE
-- trail 加密方式
DECRYPTTRAIL AES192 KEYNAME mykey1
-- 錯誤處理規則
REPERROR DEFAULT, ABEND
-- 忽略插入語句操作
IGNOREINSERTS
-- 將生產端對映到複製端
MAP “fin”.“accTAB”, TARGET “fin”.“accTAB”,
COLMAP ("Account" = “Acct”,
"Balance" = “Bal”,
"Branch" = “Branch”);
-- 取得插入(insert)操作
GETINSERTS
-- 生產端對映到複製端,過濾條件為branch=’NY’
MAP “fin”.”teller”, TARGET “fin”."tellTAB",
WHERE ("Branch" = 'NY');
注意,配置檔案中如果有區分大小寫的地方需要加入“”,否則預設情況是不區分大小寫的。
建立一個引數檔案
建立一個引數檔案可以使用GGSCI命令列介面,也可以使用vi直接編輯引數檔案。
下面的語句建立一個Manager引數檔案
GGSCI > EDIT PARMAS MGR
下面的語句建立一個提取引數檔案
GGSCI > EDIT PARAMS extora
除了使用GGSCI命令介面,也可以使用vi等編輯工具來建立引數檔案。檔案字尾規定為.prm。例如mgr.prm,extfin.prm分別為Manager引數檔案和Extract引數檔案。
檢視已經編輯好的引數檔案,可以EDIT PARAMS GMR,也可以使用命令VIEW PARAMS GMR,如果引數檔案沒有建立在ogg預設的安裝路徑下,需要制定該檔案的絕對路徑。例如
VIEW PARAMS /home/oracle/replp.rmp
更改引數檔案
當我們需要修改引數檔案時候,要特別注意一點是該程式是不是正在執行。如果正在執行,需要先停止該程式再修改引數,修改完畢再重新啟動該程式。
STOP EXTRACT EX1
EDIT PARMAS EX1
START EXTRACT EX1
物件命名的限制(Non-supported special characters)
關於物件命名的支援,也就是什麼樣的命名可以識別,什麼樣的命名不可以識別。其實我們需要關注的是不支援的內容,也就是不能識別的內容。因為ogg不是萬能的,它的不支援列表,就是一張傳輸黑名單。在建立物件名稱時一定要避免使用這些字元,否者該物件無法被複制,傳輸。
Character Description
{ } Begin and end curly brackets (braces)
[ ] Begin and end brackets
= Equal symbol + Plus sign
! Exclamation point
~ Tilde |Pipe &Ampersand : Colon
; Semi-colon , Comma
‘ ’ Single quotes
“ ” Double quotes
' Accent mark (Diacritical mark)
. Period
< Less-than symbol
> Greater-than symbol
在引數檔案中輸入傳輸物件還需要注意的方面:
- 物件名的長度不限(這個不限也是相對的吧?),只要符合支援標準就可以。
- 如果一個物件名稱沒有schema限制,比如只寫入了一個表名EMP,而不是SCOTT.EMP這種方式,那麼OGG預設登入的會話的schema。好繞嘴,舉個例子吧。如果登入的使用者是FIN,那麼OGG預設配置檔案中的EMP為FIN.EMP;登入使用者是SCOTT,那麼預設配置就是SCOTT.EMP
- 如果物件名中包含了特殊字元,比如空格等需要使用“”雙引號。
- 如果物件名是區分大小寫的,需要對schema和物件名分別使用“”雙引號:
錯誤的: TABLE “Sales.ACCOUNT”
物件名也可以配合萬用字元一起使用
- ?萬用字元:該萬用字元可以表示任何單一的字母。比如一個schema下的表明都是TABn,n是0-9的數字。使用HQ.TAB?,就可以包含從TAB0,TAB1一直到TAB9的所有範圍。
- *萬用字元前面提到過了。HQ.*就是代表schemaHQ下所有物件,包括HQ.TOTAL, HQ.T123, and
- 在生產端(源端)在對映表的時候可以使用*,?萬用字元省去很多繁瑣的輸入。
- 例如:
- TABLE HQ.*;
- MAP HQ.T_*;
- MAP HQ.T_*, TARGET HQ.*;
我們可以使用“”雙引號來約束物件名的寫法,強制它為敏感型別。下面來看一些例子:
下面的結果是相同的:
TABLE *;
TABLE “*”;
使用?萬用字元也會是相同的結果,因為?只比配一個字母
TABLE ?;
TABLE “?”;
關於萬用字元就說這麼多吧,實際上生產環境很少使用這種靈活的配置。都是把物件名寫死在配置檔案中,好處是可以隨時註釋掉出問題的物件名,不影響OGG傳輸。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-2150444/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【goldengate】官方文件筆記三 Oracle GoldenGate 實時報表Go筆記Oracle
- 【goldengate】官方文件筆記四 Oracle GoldenGate實時資料分佈Go筆記Oracle
- 【goldengate】官方文件筆記五 Oracle GoldenGate實時資料倉儲Go筆記Oracle
- 【goldengate】官方文件筆記一 配置Manager和網路連線Go筆記
- GoldenGate GGSCI監控命令Go
- Oracle GoldenGate 11g官方文件Administrator’s Guide續二OracleGoGUIIDE
- GoldenGate筆記Go筆記
- goldengate版本及官方文件下載地址Go
- 【GoldenGate】Oracle GoldenGate(二) 雙向同步配置GoOracle
- GoldenGate COLMAP字串處理Go字串
- ORACLE GoldenGate 使用技巧-容錯處理等OracleGo
- Oracle GoldenGate 11g官方文件Administrator’s GuideOracleGoGUIIDE
- Oracle GoldenGate安裝(二)OracleGo
- Oracle GoldenGate 11g官方文件Administrator’s Guide續四OracleGoGUIIDE
- Oracle GoldenGate 11g官方文件Administrator’s Guide續三OracleGoGUIIDE
- Oracle GoldenGate 11g官方文件Administrator’s Guide續一OracleGoGUIIDE
- GoldenGate常見異常處理Go
- goldengate故障處理一例Go
- STREAMS筆記(11) GoldenGate & Heterogeneous筆記Go
- goldengate實施文件Go
- GoldenGate常見問題及處理Go
- goldengate故障處理一例(續)Go
- 【GoldenGate】Oracle GoldenGate(三) DDL同步配置GoOracle
- oracle goldengate ddl 操作導致複製程式abended處理案例OracleGo
- oracle goldengate OGG-01264問題處理OracleGo
- Oracle GoldenGate DirectorOracleGo
- oracle goldengate 配置OracleGo
- goldengate ddl_setup執行失敗處理Go
- Oracle GoldenGate 學習教程二、配置和使用OracleGo
- Oracle GoldenGate Best Practice - sample parameter files (文件 ID 1321696.1)OracleGo
- GoldenGate學習筆記(10)_RAC環境Go筆記
- GoldenGate學習筆記(11)_常用引數Go筆記
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 上OracleGo
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 下OracleGo
- About the Oracle GoldenGate TrailOracleGoAI
- oracle goldengate維護OracleGo
- Oracle GoldenGate: 使用巨集OracleGo
- GoldenGate Oracle MSSQL DateGoOracleSQL