GoldenGate執行時允許在引數檔案中動態指定一個值,即在引數檔案中使用一個變數,而不是一個靜態的值,當啟動OGG程式時,根據環境動態載入此變數的值,達到在不同環境中,通過變數定義,實現多個環境的相同配置部署。對於一對多或多對一的場景,此配置可以降低維護的複雜性。
如下,是一個標準的data pump引數設定:
extract peast
rmthost oelora114, mgrport 15051
rmttrail ./dirdat/pe
passthru
table east.*;
在上面的引數中,我們將目標端主機、埠、遠端佇列檔案字首等都寫死在了配置檔案中,但如果我們要從開發環境遷移到測試環境,或繼續遷移到生產環境,是否又把引數檔案重改一遍呢?這還只是只有幾臺主機的環境,如果有幾十臺或上百臺呢,維護量和保持一致性就是個大問題。此時,使用引數變數化將可以解決此問題。
下面,我們修改data pump程式為:
extract peast
rmthost ?OGGTarget, mgrport ?OGGListener
rmttrail ?TrailPIEAST
passthru
table ?PIEASTList;
? 表示此單詞對應的是一個變數,當OGG啟動程式時,OGG將從作業系統的環境變數中獲取值,如果作業系統中沒有建立這些環境變數,OGG程式將會abended.
下面是本文示例中設定的環境變數:
[oracle@oelora114 ~]$ echo $OGGTarget $OGGListener $TrailPIEAST $PIEASTList
oelora114 15051 ./dirdat/pe east.*
為了讓變數替換生效,輸入GGSCI進入命令列,如果MGR程式在環境變數設定之前啟動,則需要重啟MGR程式,這樣才能保證環境變數的值能獲取到。
GGSCI (oelora114) 3> stop mgr !
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.
GGSCI (oelora114) 4> start mgr
Manager started.
GGSCI (oelora114) 5> start peast
Sending START request to MANAGER ...
EXTRACT P_IEAST starting
GGSCI (oelora114) 6> status peast
EXTRACT P_IEAST: RUNNING
如果檢視pump程式的日誌報告,可以看到變數已經被替換設定的值:
GGSCI (oelora114) 7> view report peast
***********************************************************************
Oracle GoldenGate Capture for Oracle
Version 12.1.2.0.0 17185003 OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Sep 25 2013 00:44:16
Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
Starting at 2014-04-08 10:00:41
***********************************************************************
Operating System Version:
Linux
Version #1 SMP Wed Jul 17 10:58:36 PDT 2013, Release 2.6.32-400.29.2.el5uek
Node: oelora114
Machine: x86_64
soft limit hard limit
Address Space Size : unlimited unlimited
Heap Size : unlimited unlimited
File Size : unlimited unlimited
CPU Time : unlimited unlimited
Process id: 11136
Description:
***********************************************************************
** Running with the following parameters **
***********************************************************************
2014-04-08 10:00:41 INFO OGG-03059 Operating system character set identified as UTF-8.
2014-04-08 10:00:41 INFO OGG-02695 ANSI SQL parameter syntax is used for parameter parsing.
extract peast
rmthost oelora114, mgrport 15051
?OGGTarget = oelora114
?OGGListener = 15051
rmttrail ./dirdat/pe
?TrailPIEAST = ./dirdat/pe
passthru
table east.*;
?PIEASTList = east.*
在上面的日誌中,可以看到變數已經被替換為當前作業系統中的環境變數對應的值。
使用變數替換部署OGG的好處是在大批量的資料複製環境中,可以使用同一引數檔案,通過環境變數來適應不同的主機,提升了維護性,也便於批量拷貝部署。