了解如何安裝、設置和配置 Oracle GoldenGate 以輕松實現 Oracle Database 10g 和 11g 之間數據的無縫復制。
作者:Porus Homi Havewala
2010 年 4 月發布
Oracle GoldenGate 用于在各種企業系統間以亞秒級速度復制和集成事務數據,是同類最佳的、易于部署的產品。Oracle GoldenGate 可以靈活地在同類和異類系統(包括不同版本的 Oracle Database、不同的硬件平臺)tb之間以及 Oracle 數據庫和非 Oracle 數據庫(包括 Microsoft SQL Server、用于開放系統和 z/OS 的 IBM DB2、Sybase 等等)之間移動數據。
本文演示如何安裝、設置和配置此產品以輕松實現 Oracle Database 10g 和 11g 之間數據的無縫復制,還介紹了此產品的加速能力。
Oracle 于 2009 年收購了 GoldenGate,我們可以看到在全球各行業超過 4,000 個解決方案中實施了 Oracle GoldenGate。該軟件執行實時的、基于日志的更改數據捕獲 (CDC),能夠在異構數據庫間以極低的延遲和很小的空間移動大量事務數據。
通常,您部署 GoldenGate 捕獲、數據泵和交付進程,并且可將這些進程部署在許多不同的操作系統和數據庫上。可根據目標數據庫的需要,復制所有數據或部分數據。當 Oracle GoldenGate 用于 Oracle 數據庫時,可以復制數據操作語言 (DML) 和數據定義語言 (DDL) 操作。(目前只能在同類(不能在異類的)Oracle 版本間復制 DDL 操作。)
Oracle GoldenGate 官方支持 Oracle9i 第 2 版到 Oracle Database 11g 第 2 版,并且對所有這些版本提供 DML/DDL 支持。該產品可用于 Oracle Database 的企業版和標準版。
如上所述,可以在所支持的同類或異類 Oracle Database 版本間移動數據,也可以在 Oracle 數據庫和非 Oracle 數據庫間移動數據。大多數情況下,可對數據進行篩選、映射和轉換。注意,如果啟用了 DDL 支持(換言之,如果使用 GoldenGate 進行同類 Oracle Database 版本之間的 DDL 復制),則不支持數據篩選、映射和轉換。
Oracle GoldenGate 是以 DBA 為中心的,因此 DBA 很容易學會如何使用它。其實現時間也是最少的 — 一些站點只用一個月的時間就完全付諸實現。
可獲得什么
Oracle GoldenGate 產品系列包括:
- Oracle GoldenGate
- Management Pack for Oracle GoldenGate(也稱為 Oracle GoldenGate Director)
- Oracle GoldenGate Veridata
- Oracle GoldenGate Application Adapters
- Oracle GoldenGate for Mainframe
為使增值服務造??蛻簦琌racle GoldenGate 核心許可包括 Oracle Active Data Guard 的全權使用許可和 Oracle Database 中 XStream 的全權使用許可。XStream 是與 Oracle Streams 接口的 API。Oracle Active Data Guard 支持主動打開備用數據庫以提供報表服務,甚至在應用重做數據的同時也如此。這個特性非常棒,可將生產報表和查詢工作分流到備用數據庫上。
一直以來,Oracle Streams 只用于在 Oracle 數據庫間復制數據。Oracle GoldenGate 還可以在非 Oracle 數據庫間復制數據,并且這種復制易于建立。
我們應注意到,已發布的 Oracle — GoldenGate 發展方向聲明 中指出,“由于 Oracle GoldenGate 的戰略性,將繼續支持 Oracle Streams,但不會對其進行主動增強。而是對 Oracle Streams 中最好的內容行評估以確定是否將其并入 Oracle GoldenGate 中。”
此演示的目的
為了進行此次演示,您應在一臺 Microsoft Windows 服務器上有三個數據庫。這三個數據庫是 HRPRD1、HRPRD2 和 HRPRD3。其數據庫版本分別為 Oracle Database 11g、 Oracle Database 10g 和 Oracle Database 10g 。
這三個數據庫的 SYS 和 SYSTEM 口令已設置為 hrpassword1,用于測試目的。稍后可更改此口令。
此演示的目的是在 HRPRD2 和 HRPRD3 這兩個 Oracle 10g 數據庫的 HR.EMPLOYEES 表之間建立單向復制。對第一個數據庫中此表的 DML 更改應傳給第二個數據庫。然后,我們將對這一復制進行增強,可以將更改同時復制到 Oracle 11g 數據庫 HRPRD1 中。其結果是,對 HRPRD2 中該表的任何更新、插入和刪除不僅將會成功更新 HRPRD3,也會成功更新 HRPRD1。
這種從 Oracle Database 10g 到 Oracle Database 10g 然后再到 Oracle Database 11g 的復制策略常用于升級情況,進行升級時,需要先復制數據,然后方可切換到升級后的數據庫版本。Oracle GoldenGate 提供了簡單的解決方案。
注意,針對 Oracle 數據庫時,您不 需要使用 Microsoft ODBC 數據源管理器為這些數據庫創建數據源名稱 (DSN)。Oracle GoldenGate 復制將使用監聽器直接連接到 Oracle 數據庫。
需要下載的內容
首先,對于 Windows 系統,需要從 Microsoft 下載中心下載 Microsoft Visual C ++ 2005 SP1 Redistributable Package,然后進行安裝。如果計算機上未安裝 Visual C++,這用于安裝運行本應用程序時所需的 Visual C++ 庫的運行時組件。
接下來,需要從 Oracle 技術網 下載 Oracle GoldenGate 軟件。截至本文撰寫時,OTN 只支持 Windows 平臺 64 位版本:適用于 Windows 2000、XP 和 2003(64 位)上的 Oracle 10g 的 Oracle GoldenGate 10.4.0.x 版 (8 MB)。要下載 32 位 Windows 版本,您必須使用 Oracle E-Delivery 網站。(請注意,E-Delivery 下載有一個為期 30 天的試用產品許可,而非 OTN 開發人員許可。)登錄此網站后,搜索適用于 Microsoft Windows(32 位)平臺的“Oracle Fusion Middleware Product Pack”(因為 Oracle GoldenGate 被視作一個 Oracle 融合中間件產品,而非 Oracle Database 產品),然后單擊 Go 。
此時會出現介質包列表。在此列表中,先選擇 Oracle GoldenGate on Oracle Media Pack for Microsoft Windows (32-bit) 。
此介質包中包含:
適用于 Windows 2000、XP 和 2003 上的 Oracle 10g 的 Oracle GoldenGate 10.4.0.x 版 |
V18162-01 |
大?。?.4 MB |
適用于 Windows 2000、XP 和 2003 上的 Oracle 11g 的 Oracle GoldenGate 10.4.0.x 版 |
V18164-01 |
大小:8.4 MB |
Oracle GoldenGate 文檔 |
V18423-01 |
大?。?0 MB |
下載這三個 zip 文件,因為您需要適用于 Oracle 10g 和 Oracle 11g 的 Oracle GoldenGate。
然后,返回到 Oracle 融合中間件的介質包列表,從中tb選擇 Management Pack for Oracle GoldenGate (v2.0.0.2) Media Pack for Microsoft Windows 。
該管理包介質包中包含:
適用于 Windows 的 Oracle GoldenGate Director V2.0.0.x Server |
V18127-01 |
大?。?28 MB |
適用于 Windows 的 Oracle GoldenGate Director V2.0.0.x Client |
V18128-01 |
大?。?5 MB |
Oracle GoldenGate Director 文檔 |
V18129-01 |
大小:952 KB |
如果您想安裝管理包,下載所有這些文件。該管理包是一個安裝您 Windows 服務器上的獨立產品,。該產品原名為 Oracle GoldenGate Director,它包含一個多層的客戶端-服務器應用程序,使組織可以輕松監視和管理其 Oracle GoldenGate 部署。
使用 Oracle GoldenGate Director 的 GUI 界面,可以集中設計和配置 Oracle GoldenGate,還可以管理和監視為了在公司各服務器間復制數據而建立的各種 Oracle GoldenGate 進程。
介質包的主列表中還有其他一些介質包,如 Oracle GoldenGate Veridata Media Pack for Microsoft Windows。
Oracle GoldenGate Veridata 軟件作為服務器進行安裝,在不同平臺上具有代理,它負責將一組數據與另一組數據進行對比以識別不同步的數據,對比時無需停機。此對比可全天候進行,可與大流量的復制同時進行。還可在不同平臺間進行數據對比。
除了上述主要介質包外,列表中還顯示了其他 Oracle GoldenGate 包。這些軟件包適用于非 Oracle 數據庫,如 Sybase、SQL Server、IBM DB2、Teradata,還有 JMS 和平面文件,這反映了 Oracle GoldenGate 支持異構的性質。
安裝步驟
您下載的 Oracle GoldenGate 文檔 zip 文件 (V18423-01.zip) 中包含 Oracle GoldenGate Oracle Installation and Setup Guide Version 10.4 (gg_ora_inst_v104.pdf),其中描述了適用于 Linux、UNIX 和 Windows 上的 Oracle 數據庫的 Oracle GoldenGate 的安裝步驟。
注意,還有其他一些安裝文檔,它們針對適用于 Sybase、SQL Server、DB2、MySQL、Teradata 等的 Oracle GoldenGate。
首先,將 Oracle GoldenGate for Oracle 10g (V18162-01.zip) 解壓縮到一個新的 Oracle GoldenGate 軟件目錄中,目錄名中不含任何空格。例如,您可以使用 C:\OGG10G 作為 Oracle GoldenGate 目錄。此目錄中的軟件代碼將用于建立第一個和第二個 Oracle 10g 數據庫之間的復制。
由于您的第三個數據庫是 Oracle Database 11g 版 ,您還需要解壓縮 Oracle GoldenGate for Oracle 11g (V18164-01.zip)。對于此版本的 Oracle GoldenGate,您需要使用一個單獨的目錄,C:\OGG11G。此目錄中的軟件代碼將用于控制到第三個 Oracle Database 11g 數據庫的復制。
如果您有 Oracle9i 數據庫并且想從其復制數據或向其復制數據,需要另一個適用于 Oracle9i 的 Oracle GoldenGate 軟件。不過,您不能通過 Oracle 網站下載 Oracle GoldenGate 的 Oracle9i 版本。如果您需要此版本,可能需要通過 My Oracle Support 發出一個系統請求 (SR)。
在命令提示符處輸入以下命令:
mkdir C:\OGG10G
cd C:\OGG10G
unzip c:\V18162-01.zip
mkdir C:\OGG11G
cd C:\OGG11G
unzip C:\V18164-01.zip
# start the 10g
databases if not already started
net start OracleServiceHRPRD2
net start OracleServiceHRPRD3
# start the 11g
database if not already started
net start OracleServiceHRPRD1
設置環境變量
現在,您可以打開兩個命令窗口(開始..運行..Cmd) ,針對 Oracle Database 10g 和 Oracle Database 11g 將相應的環境變量(如 ORACLE_HOME、ORACLE_SID、LD_LIBRARY_PATH 等)設置為相應的值。
為了在兩個 Oracle 10g 數據庫間建立復制,將這些變量進行如下設置:
set ORACLE_HOME=C:\Oracle\product\10.2.0\db_1
set ORACLE_SID=HRPRD2
set PATH=%ORACLE_HOME%\bin;%PATH%
set LD_LIBRARY_PATH=C:\OGG10G; %ORACLE_HOME%\LIB;
%ORACLE_HOME%\jdbc\lib
set CLASSPATH=;C:\Program
Files\Java\jre6\lib\ext\QTJava.zip;%ORACLE_HOME%\jdbc\lib
ORACLE_SID 可設置為 HRPRD2 或 HRPRD3,兩者都是 Oracle 10g 數據庫。請注意 PATH、LD_LIBRARY_PATH 和 CLASSPATH 的值。
另一種方法是用系統變量進行這些設置,為此您可以在 Windows XP Professional 中使用:我的電腦..屬性..高級..環境變量..系統變量。在這里添加新的系統變量并按如上所述更改路徑。
在此例中,在一臺服務器上運行兩個數據庫版本的缺點是,每次啟動 Oracle GoldenGate for Oracle 10g 或 Oracle GoldenGate for Oracle 11g 的 Manager 服務時,都必須更改系統變量。您可能要添加與 Oracle Database 11g 有關的系統變量,然后啟動 Oracle GoldenGate for Oracle 11g Manager 服務。這之后,您可能要更改這些系統變量,使其適合于 Oracle Database 10g ,然后啟動 Oracle GoldenGate for Oracle 10g Manager 服務。由于這是一個測試系統,這么做可能沒有問題。但在生產環境下,您需要采取一種更自動化的方法(如采用腳本化的方法)在腳本中設置這些變量并啟動 Manager 服務。
GGSCI 命令解釋程序
在命令窗口或“我的電腦”級別設置環境變量之后,轉到 Oracle GoldenGate 的文件夾下,通過命令行(見圖 1)或 Windows 資源管理器運行 Oracle GoldenGate Command Interpreter for Oracle (GGSCI) 程序。
圖 1 Oracle GoldenGate Command Interpreter
現在,您可在 GGSCI 中執行 CREATE SUBDIRS 命令來創建 Oracle GoldenGate 的工作子目錄。參見圖 2,其中列出了所創建的重要目錄。
圖 2 創建工作子目錄
將 Oracle GoldenGate Manager 作為本地程序運行
您可以將 Oracle GoldenGate Manager 當作一個本地程序在命令窗口中運行,也可以將它作為一個 Windows 服務安裝以便在 Windows 啟動時自動啟動。我們建議使用后面這種方法。
如果您希望將其作為一個本地命令運行,只需調用目錄中的 Manager 執行文件(調用時帶著一個參數文件)即可。命令語法為:
C:\OGG10G>mgr
Usage: MGR PARAMFILE <param file> [REPORTFILE <report file>]
[PID <process id>] [PORT <port number>]
[USESUBDIRS] [NOUSESUBDIRS]
[PAUSEATEND] [NOPAUSEATEND]
[CD <directory>]
PARAMFILE 是必需的參數。因此,您必須在 GGSCI 中創建一個參數文件:
GGSCI (HaviPori) 1> edit params mgr
此命令將在 C:\OGG10G\dirprm 目錄中創建一個新的 mgr.prm 文件。在該文件中鍵入將用于運行 manager 進程的端口號,然后保存該文件。
PORT 7809
默認端口號為 7809。無論您選擇哪個端口號,請確保該端口號未被任何其他程序所使用并且沒有任何防火墻限制。因為 PORT 是 Manager 唯一需要的參數,所以必須指定該參數。GGSCI 使用該端口將請求發送給 Manager 以啟動進程,并且 Extract 進程也使用該端口進行各種操作。
創建該參數文件之后,就可以在 Windows 命令提示符下啟動 Manager 了,如下所示:
C:\OGG10G>mgr paramfile c:\OGG10G\dirprm\mgr.prm
該命令啟動 Manager,并且顯示圖 3 所示的消息:
圖 3 在 Windows 命令提示符處啟動 Manager
必須保持此窗口為打開狀態,以保持 Manager 運行。如果您注銷,該窗口將關閉,Manager 將停止運行。
將 Manager 作為 Windows 服務進行安裝
上文描述了手動啟動 Manager 的方法,還有一種啟動方法,那就是將 Manager 作為自動啟動的 Windows 服務來安裝。
在 Windows 集群環境下必須使用后面這種方法,因為出現故障時只有服務可以自動切換到備用服務器上。在非集群系統中,將 Manager 作為服務來安裝是可選的方法但也是強烈建議的方法。
在 Windows 中作為服務創建 Manager 進程時,該服務的默認名稱為 GGSMGR。您可以為此服務指定自定義的名稱。如果您在同一臺服務器上需要不止一個 Oracle GoldenGate Manager 服務,比如一個針對 Oracle GoldenGate for Oracle 10g 的服務和另一個針對 Oracle GoldenGate for Oracle 11g 的服務,則指定名稱是很重要的。如果您打算運行 Oracle GoldenGate Veridata,還需要一個 Manager 服務。
用以下方法為 Manager 服務指定一個不同的名稱。在 GGSCI 命令提示符處執行以下命令:
EDIT PARAMS ./GLOBALS
在出現的記事本編輯器中,選擇新建一個文件(如果是首次這么做),然后輸入以下代碼并保存該 GLOBALS 文件:
MGRSERVNAME OracleGGSMGR1
根據 Windows 上的 Oracle 服務一般帶有 Oracle 前綴(如 OracleDBConsole<instancename>、OracleJobScheduler<instancename> 服務)的慣例,使用名稱 OracleGGSMGR1。
通過 C:\OGG10G 目錄中的 Install 程序可輕松創建 Manager 服務。使用 install addservice 命令,如圖 4 所示:
圖 4 創建 Manager 服務
新服務在 Windows 服務列表中顯示為一個自動啟動的服務(見圖 5):
圖 5 Manager 服務屬性
Manager 服務以本地系統帳戶運行,也可配置為以特定帳戶(使用用戶名和口令選項)運行,該用戶名和口令可由 addservice 命令指定?,F在可通過以下命令啟動該服務:
GGSCI (HaviPori) 1> start manager
Starting Manager as service ('OracleGGSMGR1')...
Service started.
安裝 Windows 事件消息
還可使用 Install 程序將事件消息安裝到 Windows 注冊表中,這樣它們可通過 Windows Event Manager 顯示。使用以下命令可完成此操作:
C:\OGG10G>install addevents
Oracle GoldenGate messages installed successfully.
Install program terminated normally.
還可將 category.dll 和 ggsmsg.dll 文件從 C:\OGG10G 目錄復制到 C:\WINDOWS\system32 目錄,從而生成具體的而不是一般性的錯誤。
建立復制 — 在 HRPRD2 上建立 Extract 進程
Oracle GoldenGate Manager 進程已啟動并運行。下一步要建立數據庫之間的復制。
為此,您至少需要創建和配置一個 Extract 和 Replicat 組。在這些組中指定您想捕獲和復制的數據。
Extract 進程捕獲發生的數據更改并將這些更改發送給目標服務器上的一個“線索”。在目標服務器上啟動 Replicat 進程,該進程負責進行實際的復制,它從線索中獲取數據更改,然后將這些更改應用到目標數據庫中。
您還需要為 Oracle GoldenGate Replication 準備數據庫:在數據庫級打開追加日志 功能。為此,在以 SYSDBA 身份登錄到數據庫后使用以下命令:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Database altered.
SQL> alter system switch logfile;
System altered
現在可以添加 Extract 組了。
GGSCI (HaviPori) 1> ADD EXTRACT emp_ext, TRANLOG, BEGIN NOW
EXTRACT added.
您在這里指定了 TRANLOG,這意味著事務(重做)日志成為數據源。BEGIN 后面可以是該日志中的一個時間戳以便從該時刻開始進行處理,也可以是 NOW 以便立即開始處理。TRANLOG 還可以帶有 EXTSEQNO 選項(某個 Oracle 重做日志的序列號,從該日志開始)和 EXTRBA 選項(該日志中的相對字節地址)。
注意,Extract 組的名稱只能有八位字符。如果進行以下指定,則可獲得完全幫助。
GGSCI (HaviPori) 1> help add extract
接下來,我們要添加一個 RMTTRAIL 或 EXTTRAIL。前者用于遠程計算機,如果您在同一臺本地計算機上建立復制,則建議使用后者。我們將使用 EXTTRAIL,通過以下命令來創建它:
GGSCI (HaviPori) 1> ADD EXTTRAIL C:\OGG10G\dirdat\et, EXTRACT emp_ext
EXTTRAIL added.
EXTTRAIL 被指定為服務器上的一個物理子目錄 — 最好在 dirdat 子目錄下,dirdat 是為 Oracle GoldenGate 復制而創建的工作目錄之一。
指定的文件名只能是兩位字符,因為在創建實際文件時,會在這兩個指定的字符后追加一個數字后綴以產生實際文件名。例如,當 EXTRACT 進程啟動并且發生數據更改時,會創建一個 C:\OGG10G\dirdat\et000001 文件作為提取文件。
RMTTRAIL 的命令語法與之相同,如果您要使用 RMTTRAIL,只需用 RMTTRAIL 代替 EXTTRAIL。主要差別體現在 extract 的參數文件中 — 下一步將創建此參數文件。使用 RMTTRAIL 時,該參數文件將有更多參數用于描述遠程主機和遠程管理器端口號。
現在,我們來為 Extract 組 emp_ext 創建參數文件,如下所示:
GGSCI (HaviPori) 1> EDIT PARAM emp_ext
在此文件中,鍵入以下代碼行:
EXTRACT emp_ext
USERID system@localhost:1521/HRPRD2, PASSWORD hrpassword1
EXTTRAIL C:\OGG10G\dirdat\et
TABLE hr.employees;
您指定了在這個 Extract 組中,對第一個 Oracle 10g 數據庫(即 HRPRD2)中的表 HR.EMPLOYEES 進行提取。
如果您使用了 RMTTRAIL,則只需按下列行進行更改:
RMTHOST <remote host>, MGRPORT <remote manager port number>
RMTTRAIL C:\<remote GoldennGate Directory>\dirdat\rt
現在,可使用以下命令啟動 extract:
GGSCI (HaviPori) 1> START EXTRACT EMP_EXT
Sending START request to MANAGER ('OracleGGSMGR1') ...
EXTRACT EMP_EXT starting
該進程的狀態和有關信息如下所示:
GGSCI (HaviPori) 2> STATUS EXTRACT EMP_EXT
EXTRACT EMP_EXT: RUNNING
GGSCI (HaviPori) 3> INFO EXTRACT EMP_EXT
EXTRACT EMP_EXT Last Started 2009-12-08 13:04 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Log Read Checkpoint Oracle Redo Logs
2009-12-08 13:05:58 Seqno 11, RBA 578560
還可查看有關該進程的詳細信息:
GGSCI (HaviPori) 4> INFO EXTRACT EMP_EXT detail
EXTRACT EMP_EXT Last Started 2009-12-08 13:04 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Log Read Checkpoint Oracle Redo Logs
2009-12-08 13:07:19 Seqno 11, RBA 596992
Target Extract Trails:
Remote Trail Name Seqno RBA Max MB
C:\OGG10G\dirprm\et 0 923 10
Extract Source Begin End
D:\ORADATA\HRPRD2\REDO01.LOG 2009-12-08 12:59 2009-12-08 13:07
Not Available * Initialized * 2009-12-08 12:59
Current directory C:\OGG10G
Report file C:\OGG10G\dirrpt\EMP_EXT.rpt
Parameter file C:\OGG10G\dirprm\EMP_EXT.prm
Checkpoint file C:\OGG10G\dirchk\EMP_EXT.cpe
Process file C:\OGG10G\dirpcs\EMP_EXT.pce
Error log C:\OGG10G \ggserr.log
診斷 Extract
只要有錯誤,extract 進程就會顯示為 STOPPED 狀態。這種情況下需要進行錯誤分析。
首先,查看報告文件 C:\OGG10G\dirrpt\EMP_EXT.rpt,上面的詳細信息中提到了該報告。
然后,查看日志文件 ggserr.log 和 sqlnet.log 中是否有任何說明性的消息,這兩個文件位于 C:\OGG10G 主目錄中。
ggserr.log 文件包含事件信息,例如:
2009-12-02 14:53:26 GGS INFO 301 Oracle GoldenGate
Manager for Oracle, mgr.prm: Command received from GGSCI on host 10.10.10.10 (START EXTRACT EMP_EXT ).
2009-12-02 14:53:26 GGS INFO 302 Oracle GoldenGate Manager for Oracle, mgr.prm:
EXTRACT EMP_EXT starting.
也可通過以下方法查看這些事件:
GGSCI (HaviPori) 1> VIEW GGSEVT
…
….
2009-12-02 15:09:34 GGS INFO 302 Oracle GoldenGate Manager for Oracle,
mgr.prm: EXTRACT EMP_EXT starting.
2009-12-02 15:13:26 GGS INFO 399 Oracle GoldenGate Command Interpreter
for Oracle: GGSCI command (HaviPoriH): EDIT PARAM emp_ext.
sqlnet.log 可顯示錯誤,例如:
TNS-12557: TNS:protocol adapter not loadable
這個特定錯誤指明存在數據庫連接問題,您需要在監聽器級進行分析。確保 Path 環境變量在最開始處包含了 Oracle Home bin 子目錄。可能有其他的 TNS 錯誤,它們可能會指明其他解決方法。
EMP_EXT.rpt 可顯示如下所示的錯誤:
2009-12-08 13:01:27 GGS ERROR 182 OCI Error beginning
session (status = 28009-ORA-28009: connection as SYS should be as SYSDBA or SYSOPER).
2009-12-08 13:01:27 GGS ERROR 190 PROCESS ABENDING.
這指明 Extract 進程正在嘗試以 sys 而不是 SYSDBA 身份登錄。只需在 Extract 的參數文件中將登錄參數改為“system”即可。
在這里我們應注意,在 Extract 參數文件中 login 行的末尾指定 SYSDBA 是不起作用的,盡管這么做對于 GGSCI 中的 DBLOGIN 命令(在下文中可看到此命令)確實會起作用。
ggserr.log 文件可顯示類似錯誤:
2009-12-03 00:43:16 GGS INFO 399 Oracle GoldenGate
Command Interpreter for Oracle: GGSCI command (HaviPoriH): start manager.
2009-12-03 00:43:25 GGS ERROR 182 Oracle GoldenGate
Manager for Oracle, mgr.prm: OCI Error during OCIServerAttach
(status = 12154-ORA-12154: TNS:could not resolve the connect identifier specified).
2009-12-03 00:43:25 GGS ERROR 190 Oracle GoldenGate
Manager for Oracle, mgr.prm: PROCESS ABENDING.
這指明 Manager 的參數文件 mgr.prm 中所提供的登錄憑證可能存在問題。其結果是 Manager 沒有啟動。
您還可能在 Extract 的報告文件中看到另一個錯誤。例如,EMP_EXT.rpt 可能會有此類錯誤:
2009-12-07 16:40:08 GGS ERROR 190 No minimum supplemental
logging is enabled. This may cause extract process to handle key
update incorrectly if key column is not in first row piece.
2009-12-07 16:40:08 GGS ERROR 190 PROCESS ABENDING.
問題的解決方法顯然是在數據庫級啟用追加日志功能。由于該功能已啟用,在本例中將不會看到此錯誤。
在 HRPRD3 上建立 Replicat 進程
現在轉到目標數據庫 HRPRD3,在本例中該數據庫位于同一服務器上。由于這也是一個 Oracle 10g 數據庫,您可以使用同一 Oracle GoldenGate for Oracle 10g 安裝軟件(在 C:\OGG10G 子目錄中)和同一 Manager 服務。如果這個數據庫位于另一臺服務器上,您需要在該服務器上安裝適用于該數據庫版本的相應 Oracle GoldenGate 軟件然后配置一個新的 Manager 服務。
首先,使用 GGSCI 的 DBLOGIN 命令連接到該數據庫,這樣以后發出的其他命令將在此數據庫上運行。
注意,DBLOGIN 正常運行,如下所示:
GGSCI (HaviPori) 1>
DBLOGIN USERID system@localhost:1521/HRPRD3 PASSWORD hrpassword1
Successfully logged into database.
在 GGSCI help 中可以看到還有兩個參數:SOURCEDB 和 TARGETDB。這兩個參數只用于非 Oracle 數據庫。
現在,需要為要復制的 employees 表添加一個檢查點表:
GGSCI (HaviPori) 2> ADD CHECKPOINTTABLE HR.EMPLOYEES_CHKPT
Successfully created checkpoint table HR.EMPLOYEES_CHKPT.
此表中保存的檢查點指示 Replicat 進程的當前讀寫位置。這用于在進程需要重啟時或者在服務器出現任何故障或網絡停頓時防止數據丟失。如果沒有這一機制,將導致數據丟失。另一個好處是,通過使用檢查點,多個 Extract 或 Replicat 進程可通過相同的一組線索進行讀取。
對于以批處理模式運行的 Extract 和 Replicat 進程,檢查點不是必需的,因為這樣的進程總是可以重啟。然而,在 Extract 和 Replicat 進程連續工作的情況下,檢查點是必需的。檢查點通常保存在 dirchk 子目錄的文件中,但是對于 Replicat,可以選擇在數據庫的檢查點表中保存檢查點。
如果您在 GLOBALS 參數文件中指定檢查點表,則上面的命令可使用該文件中的規定。這種情況下,只需這樣來使用該命令:
GGSCI (HaviPori) 3> ADD CHECKPOINTTABLE
No checkpoint table specified, using GLOBALS specification (hr.employees_chkpt).
Successfully created checkpoint table HR.EMPLOYEES_CHKPT.
現在可以添加 Replicat 組了, 具體如下所示,其中指定的 EXTTRAIL 正是在第一個數據庫中建立 Extract 組時所使用的 EXTTRAIL。這樣,該 Replicat 組將以 Extract 組創建的線索為數據源,即使用相同的線索:
GGSCI (HaviPori) 4> ADD REPLICAT emp_rep, EXTTRAIL C:\OGG10G\dirdat\et, CHECKPOINTTABLE hr.employees_chkpt,
REPLICAT added.
編輯此 Replicat 組的參數文件,具體如下:
GGSCI (HaviPori) 5> EDIT PARAM emp_rep
在新文件中輸入以下內容:
REPLICAT emp_rep
USERID system@localhost:1521/HRPRD3, PASSWORD hrpassword1
ASSUMETARGETDEFS
MAP hr.employees, TARGET hr.employees;
由于各表具有完全相同的 DDL 結構,您使用 ASSUMETARGETDEFS 參數。
現在可以啟動 Replicat 組:
GGSCI (HaviPori) 6> start REPLICAT emp_rep
Sending START request to MANAGER ('GGSMGR') ...
REPLICAT EMP_REP starting
稍候片刻再查看其狀態,如果立即查看,其狀態可能顯示為“stopped”??吹綘顟B為 “running”后,查看詳細信息,執行 info all 命令顯示所有正在運行的進程:
GGSCI (HaviPori) 7> status REPLICAT emp_rep
REPLICAT EMP_REP: STOPPED
GGSCI (HaviPori) 8> status REPLICAT emp_rep
REPLICAT EMP_REP: RUNNING
GGSCI (HaviPori) 11> info REPLICAT emp_rep detail
REPLICAT EMP_REP Last Started 2009-12-08 13:35 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File C:\OGG10G\dirdat\et000001
2009-12-08 13:33:24.000000 RBA 985
Extract Source Begin End
C:\OGG10G\dirdat\et000001 2009-12-08 13:33 2009-12-08 13:33
C:\OGG10G\dirdat\et000000 * Initialized * 2009-12-08 13:33
Current directory C:\OGG10G
Report file C:\OGG10G\dirrpt\EMP_REP.rpt
Parameter file C:\OGG10G\dirprm\EMP_REP.prm
Checkpoint file C:\OGG10G\dirchk\EMP_REP.cpr
Checkpoint table HR.EMPLOYEES_CHKPT
Process file C:\OGG10G\dirpcs\EMP_REP.pcr
Error log C:\OGG10G\ggserr.log
GGSCI (HaviPori) 12> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EMP_EXT 00:00:00 00:00:03
REPLICAT RUNNING EMP_REP 00:00:00 00:00:06
此時可對兩個 Oracle Database 10g 數據庫 HRPRD2 和 HRPRD3 之間的復制進行測試。但我們決定等到建立好到 Oracle 11g 數據庫 HRPRD1 的復制之后再進行測試。下面我們將建立該復制。
在 HRPRD1 上建立 Replicat 進程
您的 Oracle 11g 數據庫 HRPRD1 也在同一服務器上。由于它是一個 11g 數據庫版本,您需要使用本文開始時解壓縮到 C:\OGG11G 目錄中的 Oracle GoldenGate for Oracle 11g 軟件。
對于 Oracle 11g 數據庫 home,按如下所示設置環境變量:
set ORACLE_HOME=C:\app\havipori\product\11.1.0\db_1
set ORACLE_SID=HRPRD1
set PATH=%ORACLE_HOME%\bin;%PATH%
set LD_LIBRARY_PATH=C:\OGG11G; %ORACLE_HOME%\LIB; %ORACLE_HOME%\jdbc\lib
set CLASSPATH=;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;%ORACLE_HOME%\jdbc\lib
按照與 Oracle GoldenGate for Oracle 10g 安裝軟件類似的步驟進行操作,創建一個名為 OracleGGSMGR2 的 Manager 服務并啟動它。創建工作子目錄和 mgr.prm 文件。這些步驟如下所示:
C:\OGG11G>ggsci
GGSCI (HaviPori) 1> EDIT PARAMS ./GLOBALS
在該文件中鍵入 MGRSERVNAME OracleGGSMGR2,然后保存。
C:\OGG11G>install addservice
Service 'OracleGGSMGR2' created.
Install program terminated normally.
GGSCI (HaviPori) 1>create subdirs
Creating subdirectories under current directory C:\OGG11G
Parameter files C:\OGG11G\dirprm: created
Report files C:\OGG11G\dirrpt: created
Checkpoint files C:\OGG11G\dirchk: created
Process status files C:\OGG11G\dirpcs: created
SQL script files C:\OGG11G\dirsql: created
Database definitions files C:\OGG11G\dirdef: created
Extract data files C:\OGG11G\dirdat: created
Temporary files C:\OGG11G\dirtmp: created
Veridata files C:\OGG11G\dirver: created
Veridata Lock files C:\OGG11G\dirver\lock: created
Veridata Out-Of-Sync files C:\OGG11G\dirver\oos: created
Veridata Out-Of-Sync XML files C:\OGG11G\dirver\oosxml: created
Veridata Parameter files C:\OGG11G\dirver\params: created
Veridata Report files C:\OGG11G\dirver\report: created
Veridata Status files C:\OGG11G\dirver\status: created
Veridata Trace files C:\OGG11G\dirver\trace: created
Stdout files C:\OGG11G\dirout: created
GGSCI (HaviPori) 2> EDIT PARAMS mgr
在該文件中鍵入以下代碼行,然后保存該文件。注意,這里使用了不同的端口號并且 Manager 現在登錄到 HRPRD1 上。
PORT 7810
USERID system@localhost:1521/HRPRD1 PASSWORD hrpassword1
現在可以啟動 Manager 了。下一步是使用 DBLOGIN 登錄到 Oracle 11g 數據庫,然后在此數據庫中創建檢查點表。
GGSCI (HaviPori) 3> start manager
Starting Manager as service ('OracleGGSMGR2')...
Service started.
GGSCI (HaviPori) 4> DBLOGIN USERID system@localhost:1521/HRPRD1 PASSWORD hrpassword1
Successfully logged into database.
GGSCI (HaviPori) 5> ADD CHECKPOINTTABLE HR.EMPLOYEES_CHKPT
Successfully created checkpoint table HR.EMPLOYEES_CHKPT.
現在,可以在數據庫 HRPRD1 中創建第二個 Replicat 組了。注意,我們將使用和前面數據庫 HRPRD3 所使用的完全相同的線索。
這樣,HRPRD2 的數據所寫入到的同一個線索同時為兩個數據庫(HRPRD3 和 HRPRD1)、兩個 Replicat 組所使用。這相當棒。
如果在 ADD REPLICAT 命令中不使用 BEGIN NOW,則 Replicat 進程會在跟蹤開始時就啟動,這也不錯。
GGSCI (HaviPori) 6> ADD REPLICAT emp_rep, EXTTRAIL C:\OGG10G\dirdat\et, CHECKPOINTTABLE hr.employees_chkpt,
REPLICAT added.
GGSCI (HaviPori) 7> EDIT PARAM emp_rep
在此文件中輸入以下幾行內容:
REPLICAT emp_rep
USERID system@localhost:1521/HRPRD1, PASSWORD hrpassword1
ASSUMETARGETDEFS
HANDLECOLLISIONS
DISCARDFILE c:\OGG11G\dirrpt\emp_ext.dsc, purge
MAP hr.employees, TARGET hr.employees;
注意該文件中額外的參數,如 HANDLECOLLISIONS 和 DISCARDFILE。這是為了對表中記錄重復之類的錯誤進行處理。我們已將這些參數作為選項放入此文件中,也可以將它們放入第一個 Replicat 組的參數文件中。
HANDLECOLLISIONS 在源數據庫活動時對初始數據加載進行自動錯誤處理。確保在初始加載完成后刪除此參數。DISCARDFILE 參數指示被刪除的記錄將保存在哪個文件中。
現在啟動該 Replicat 組并查看其狀態:
GGSCI (HaviPori) 8> start REPLICAT emp_rep
Sending START request to MANAGER ('GGSMGR2') ...
REPLICAT EMP_REP starting
GGSCI (HaviPori) 9> status REPLICAT emp_rep
REPLICAT EMP_REP: STOPPED
其狀態顯示為 stopped,但 C:\OGG11G 目錄下的任何日志文件中都沒有錯誤指示。
迫使錯誤顯示出來的唯一方法是從命令提示符處運行 Replicat。這可用于調試目的 — 錯誤(如果有的話)會顯示在屏幕上而不是寫入報告文件中。但在 Oracle GoldenGate for Oracle 11g 版本中,看上去需要通過這種方法來使 Replicat 運行起來,雖然我們認為這可能是測試服務器上的環境問題造成的。使用的命令為:
C:\OGG11G> replicat paramfile c:\OGG11G\dirprm\emp_rep.prm
***********************************************************************
Oracle GoldenGate Delivery for Oracle
Version 10.4.0.19 Build 002
Windows (optimized), Oracle 11 on Sep 18 2009 16:44:02
Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
Starting at 2009-12-09 11:46:28
***********************************************************************
Operating System Version:
Microsoft Windows XP Professional, on x86
Version 5.1 (Build 2600: Service Pack 2)
Process id: 1504
Description:
***********************************************************************
** Running with the following parameters **
***********************************************************************
REPLICAT emp_rep
USERID system@localhost:1521/HRPRD1, PASSWORD ***********
ASSUMETARGETDEFS
HANdlecollisions
Discardfile c:\OGG11G\dirrpt\emp_ext.dsc, purge
MAP hr.employees, TARGET hr.employees;
CACHEMGR virtual memory values (may have been adjusted)
CACHEBUFFERSIZE: 64K
CACHESIZE: 512M
CACHEBUFFERSIZE (soft max): 4M
CACHEPAGEOUTSIZE (normal): 4M
PROCESS VM AVAIL FROM OS (min): 1G
CACHESIZEMAX (strict force to disk): 881M
Database Version:
Oracle Database 11g
Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
Database Language and Character Set:
NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.WE8M
SWIN1252.
NLS_LANGUAGE = "AMERICAN"
NLS_TERRITORY = "AMERICA"
NLS_CHARACTERSET = "WE8MSWIN1252"
Warning: NLS_LANG is not set. Please refer to user manual for more information.
***********************************************************************
** Run Time Messages **
***********************************************************************
Opened trail file C:\OGG10G\dirdat\et000001 at 2009-12-09 11:46:35
MAP resolved (entry HR.EMPLOYEES):
MAP HR.EMPLOYEES, TARGET hr.employees;
Using following columns in default map by name:
EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE,
JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID
Using the following key columns for target table HR.EMPLOYEES: EMPLOYEE_ID.
此時,Replicat 進程已準備就緒,我們可在屏幕上查看其狀態。如果您打開一個新的命令窗口、啟動 GGSCI 并查看其狀態,Replicat 進程會顯示為 RUNNING。這樣,通過這種方式,Oracle Database 11g 中的復制開始工作。
文件中額外的參數(如 HANDLECOLLISIONS 和 DISCARDFILE)是特意添加的,這是因為通過命令行運行 Replicat 進程時屏幕上曾顯示出記錄重復錯誤。從下面的輸出結果中可以看到這些錯誤,這些錯誤指示初始加載時出現的問題與重復的記錄有關。
通過進一步的分析發現,某個用戶在 Oracle 11g 目標數據庫中手動插入了記錄,而手動插入的數據與啟動 Oracle GoldenGate 復制進程之后 插入到 Oracle 10g 源數據庫中的數據相同。這就引發了記錄重復,從而導致重復問題。
…
***********************************************************************
** Run Time Messages **
***********************************************************************
Opened trail file C:\OGG10G\dirdat\et000000 at 2009-12-09 11:17:51
Switching to next trail file C:\OGG10G\dirdat\et000001 at 2009-12-09 11:17:51 du
e to EOF, with current RBA 923
Opened trail file C:\OGG10G\dirdat\et000001 at 2009-12-09 11:17:51
Processed extract process graceful restart record at seq 1, rba 923.
MAP resolved (entry HR.EMPLOYEES):
MAP HR.EMPLOYEES, TARGET hr.employees;
Using following columns in default map by name:
EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE,
JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID
Using the following key columns for target table HR.EMPLOYEES: EMPLOYEE_ID.
2009-12-09 11:17:54 GGS WARNING 218 Aborted grouped transaction on 'HR.EMP
LOYEES', Database error 1 (ORA-00001: unique constraint (HR.EMP_EMAIL_UK) violat
ed).
2009-12-09 11:17:54 GGS WARNING 218 Repositioning to rba 985 in seqno 1.
2009-12-09 11:17:54 GGS WARNING 218 SQL error 1 mapping HR.EMPLOYEES to HR
.EMPLOYEES OCI Error ORA-00001: unique constraint (HR.EMP_EMAIL_UK) violated (st
atus = 1), SQL <INSERT INTO "HR"."EMPLOYEES" ("EMPLOYEE_ID","FIRST_NAME","LAST_N
AME","EMAIL","PHONE_NUMBER","HIRE_DATE","JOB_ID","SALARY","COMMISSION_PCT","MANA
GER_ID","DEPARTMENT_ID") VALUES (:a0,:a1,:a2,:a3,:a4,:a5>.
2009-12-09 11:17:54 GGS WARNING 218 Repositioning to rba 985 in seqno 1.
….
解決此問題的辦法是使用 HANDLECOLLISIONS 和 DISCARDFILE 參數,然后重啟該 Replicat 進程。DISCARDFILE 在出現被刪除的記錄時可提供更多信息。在命令提示符處啟動運行 Replicat 進程后,等待直到其通過線索完成運行并根據需要刪除記錄。
然后在命令窗口按 Ctrl-C 停止該 Replicat 進程。這將顯示:
Enter X to exit or C to continue: X
***********************************************************************
* ** Run Time Statistics ** *
***********************************************************************
Last record for the last committed transaction is the following:
___________________________________________________________________
Trail name : C:\OGG10G\dirdat\et000001
Hdr-Ind : E (x45) Partition : . (x04)
UndoFlag : . (x00) BeforeAfter: A (x41)
RecLength : 196 (x00c4) IO Time : 2009-12-08 13:43:36.000000
IOType : 5 (x05) OrigNode : 255 (xff)
TransInd : . (x03) FormatType : R (x52)
SyskeyLen : 0 (x00) Incomplete : . (x00)
AuditRBA : 11 AuditPos : 1188880
Continued : N (x00) RecCount : 1 (x01)
2009-12-08 13:43:36.000000 Insert Len 196 RBA 1295
Name: HR.EMPLOYEES
___________________________________________________________________
Reading C:\OGG10G\dirdat\et000001, current RBA 1604, 2 records
Report at 2009-12-09 11:47:56 (activity since 2009-12-09 11:46:35)
From Table HR.EMPLOYEES to HR.EMPLOYEES:
# inserts: 2
# updates: 0
# deletes: 0
# discards: 0
# insert collisions: 2
Last log location read:
FILE: C:\OGG10G\dirdat\et000001
SEQNO: 1
RBA: 1604
TIMESTAMP: Not Available
EOF: YES
READERR: 400
現在可以取消 HANDLECOLLISIONS 參數了,可在該參數行之前添加“—”將其注釋掉。然后在命令行重啟該 Replicat 進程。由于記錄重復問題已得到解決,該進程現在可以正常工作,以后對源數據庫進行任何更改時,該進程都可將這些更改復制過來。
對復制進行測試
從圖 6 的命令行窗口中可以看到 HRPRD1、HRPRD2 和 HRPRD3 這三個數據庫的 HR.EMPLOYEES 表中的記錄。這三個數據庫都正好有 107 條記錄。在第三個窗口中可看到使用的 SELECT 命令。
圖 6 三個數據庫中的員工記錄
現在可以在源數據庫 HRPRD2 的 HR.EMPLOYEES 表中 INSERT 和 COMMIT 一些行,然后查看這些行是否被復制到目標數據庫 HRPRD3 和 HRPRD1 中。從圖 7 中可以看到這些 INSERT 操作。
圖 7 插入到 HRPRD2 的員工表中
對所有三個數據庫再次運行 SELECT,其結果顯示,即刻發生了到目標數據庫的復制,所有數據庫現在都有 109 條記錄(如圖 8 所示)。這樣,使用 Oracle GoldenGate 到 Oracle 10g 和 Oracle 11g 的復制成功。
圖 8 即刻復制到其他數據庫
您已看到,從 Oracle Database 10g 到 10g 數據庫的復制可正常進行。從 Oracle Database 10g 到 11g 數據庫的復制也可正常進行,但是只有在命令提示符處啟動 Replicat 進程(例如使用“replicat paramfile c:\OGG11G\dirprm\emp_rep.prm”)才會如此。而從 GGSCI 啟動 Replicat 進程仍會使其滯留于 stopped 狀態。這可能是由于我們的測試服務器存在環境錯誤。我們應記住,如果從命令提示符處啟動就不會有錯誤,進程會正常運行。
功能、資源需求和影響
您已看到,Oracle GoldenGate 的 Extract 和 Replicat 進程已生效。每個實例(即一個 Manager 進程)可通過 GGSCI 命令接口支持多達 300 個并發的 Extract 和 Replicat 進程,這個數量相當大。
然而,隨著此類進程數量的增加,對內存的占用也會增加 — 每個 Extract 和 Replicat 進程需要大約 25 至 55 MB 內存。對內存的占用實際上可能更高,這取決于并發事務的數量和事務大小。這始終是個問題。
Oracle GoldenGate Replication 還對源系統有 3% 到 5% 的 CPU 影響,這取決于生成的重做日志的數量。
我們在這里建立的是單向復制。還可以建立雙向多主復制(對多站點更新的復制)。在這樣的安裝環境中,Oracle GoldenGate 通過研究和了解兩個站點何時更新相同的記錄來解決沖突。您可以設置一些沖突解決規則(如時間戳,或者哪一方始終優先等等),您也可以就如何解決沖突設置用戶退出機制。
即使目標數據庫的表中沒有唯一鍵時,Oracle GoldenGate 也能復制數據。這對所有支持的數據庫都是可行的,條件是您能夠指定那些是唯一的列或者使用整行作為一個鍵 — 因為任何刪除或更新操作都需要某種唯一性。
目前,Oracle GoldenGate 不能復制雙字節數據,但計劃在未來的版本中支持這種復制?,F在,對雙字節數據的處理可傳遞給一個備用數據庫以用于災難恢復。
Oracle GoldenGate Director
Oracle GoldenGate 中的這一產品現在名為 Oracle Management Pack for GoldenGate。這是一個多層的客戶端-服務器應用程序,通過一個 GUI 界面監視和管理 Oracle GoldenGate 的部署。如果多臺主機上安裝了 Oracle GoldenGate Director 的遠程客戶端,您可以對這些主機上運行的多個 Oracle GoldenGate 實例(Manager 進程)進行管理。
這些客戶端全部連接到集中安裝的 Oracle GoldenGate Director 服務器,該服務器使用 Oracle WebLogic Server 11g (10.3.1) 作為功能應用服務器。以前,較早的 JBoss Application Server 3.2.7 附帶 Oracle GoldenGate Director?,F在它為 Oracle WebLogic Server 所取代,但要注意后者必須在安裝 Oracle GoldenGate Director 服務器之前在系統上預先安裝并運行。
Oracle GoldenGate Director 服務器有一個 Web 界面并且需要在現有 Oracle 數據庫中擁有自己的數據庫信息庫(至少 200 MB),您也可以對該信息庫使用 MySql 或 Microsoft SQL Server 。作為一項安全措施,Oracle GoldenGate Director 的安裝要求該信息庫所使用的數據庫口令必須至少為八位字符,其中至少包含一個數字和一個字母數字字符。
如果在 GGSCI 中定義一個進程,您可以通過 Oracle GoldenGate Director 配置、監視和控制該進程。從操作系統命令行執行的其他獨立進程(如 DDLGEN 進程)不能通過 Oracle GoldenGate Director 監視。
在 Windows、UNIX 和 NonStop 平臺上,Extract 進程、Replicat 進程、Manager 進程、線索(本地或遠程)、文件(本地或遠程)以及 Extract 和 Replicat 任務均可通過 Oracle GoldenGate Director 來配置、監視和控制。
總結及其他信息
在 Oracle GoldenGate Manager 參數文件中可以指定其他參數,可通過這些參數來允許動態端口分配、在 Manager 啟動時自動啟動復制進程(如 Extract 和 Replicat)、建立對所有線索的集中維護(清除)。
The Oracle GoldenGate Administration Guide Version 10.4 詳細介紹了這些高級 Manager 參數。該指南還介紹了如何以不同的方法配置 Extract 和 Replicat 進程、如何將 Oracle GoldenGate Replication 用于實時報表、實時數據分布、實時數據倉儲、維護實時備用數據庫和主-主高可用性等各種目的,以及如何配置 DDL 同步。在某個數據庫要升級,但要求停機時間幾乎為零的情況下,Oracle GoldenGate 也非常有用 — 您只需建立從舊的數據庫版本到新的數據庫版本之間的 Oracle GoldenGate 復制,然后在切換時將您的所有客戶端切換為指向新數據庫即可。這會是一個極好的選擇,例如,如果您準備將現有數據庫移到 Oracle Exadata V2 數據庫機上,以便將您的所有數據庫整合到世界上最快的數據庫機。
有關 Oracle GoldenGate 的另一個有用的參考資料是 Oracle GoldenGate Troubleshooting and Tuning Guide Version 10.4 。在本文開始時下載的文檔 zip 文件中包含了這個參考資料和管理指南 。
我們想感謝 Oracle 融合中間件和 Oracle GoldenGate 的各位 Oracle 產品經理,本文所述建立 Oracle GoldenGate 復制的過程得到了他們的欣然幫助(真正的 Oracle 精神)。我們期待著計劃之中的 Oracle GoldenGate Director 與 Oracle Enterprise Manager Grid Control 的集成。
Oracle Enterprise Manager Grid Control 是 Oracle 的一個強大的企業管理產品。如果您想了解如何對您環境中所有的 Oracle RAC 或非 Oracle RAC 數據庫、Oracle 自動存儲管理 (ASM) 實例和 Oracle Clusterware 自動打補丁,請閱讀作者的一篇題為“使用 Oracle Enterprise Manager Grid Control 修補數千個數據庫” 的文章。有關如何使用 Oracle Enterprise Manager Grid Control 為您公司的數據庫輕松建立 Oracle Recovery Manager (Oracle RMAN) 備份的信息,請閱讀“Oracle RMAN 備份:提供簡單方式 ”。
另外,要了解使用 Oracle Enterprise Manager Grid Control 進行 Oracle Data Guard 的安裝、管理(包括倒換和故障切換)和監視如何能夠節省大量的時間和資源,請閱讀作者最近發表的另一篇文章“使用 Grid Control 輕松預防生產災難 ”。