GoldenGate 配置文件,裡面有引數說明
2 單機-單機複製配置
2.1 環境簡介
性質 |
IP |
系統 |
ORACLE版本 |
源端 |
10.122.0.110 |
AIX 5.3 |
10.2.0.1 |
目標端 |
10.122.0.113 |
WINDOWS 2003 |
10.2.0.1 |
2.2 源端安裝GoldenGate
建立GoldenGate安裝目錄並解壓安裝檔案
unzip ogg112101_ggs_AIX_ppc_ora10.2_64bit.zip
tar –xf ggs_AIX_ppc_ora10.2_64bit.tar
注意:使用的安裝包一定要與平臺一致
設定環境變數
在使用者引數檔案中新增以下內容:
export GGATE_HOME=/u01/oracle/oracle/ogg
export LIBPATH=$GGATE_HOME:$ORACLE_HOME/lib
注意:新增後需使引數檔案生效
HP及LINUX平臺下用LD_LIBRARY_PATH替換LIBPATH
安裝GoldenGate
進入OGG控制檯建立OGG工作目錄
然後在安裝目錄下執行 ./ggsci 進入OGG控制檯
執行命令 createsubdirs建立工作目錄,顯示如下:
GGSCI (NDSCDB1)1> create subdirs
2.3 目標端安裝GoldenGate
2.4 配置源端資料庫
資料庫模式配置
源端資料庫必須開啟歸檔模式
Alter databasearchivelog;
開啟最小附加日誌
Alter databaseadd supplemental log data;
使用SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
可檢視是否開啟了最小附加日誌;
源端資料庫建立GoldenGate資料庫使用者並授權:(我們這裡以ogg為例,使用其他亦可)
create user ogg identified by oracle defaulttablespace DATA_OL;
grant connect,resource,unlimited tablespace to ogg;
grant executeon utl_file to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute onDBMS_FLASHBACK to ogg;
新增表級transdata
GGSCI (NDSCDB1) 2>dblogin userid ogg,password oracle
Successfully logged intodatabase.
GGSCI(NDSCDB1) 3> add trandata olive.ol$_objects
Logging of supplemental redo dataenabled for table OLIVE.OL$_OBJECTS.
2.5 配置源端程式組
配置管理程式mgr:
GGSCI(NDSCDB1) 1> edit param mgr
(貼上下面這段配置)
PORT 7839
DYNAMICPORTLIST 7840-7939
--AUTOSTART ER *
AUTORESTART EXTRACT *,RETRIES5,WAITMINUTES 3
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
MANAGER程式引數配置說明:
PORT:指定服務監聽埠;這裡以7839為例,預設埠為7809
DYNAMICPORTLIST:動態埠:可以制定最大256個可用埠的動態列表,當指定的埠不可用時,管理程式將會從列表中選擇一個可用的埠,源端和目標段的Collector、Replicat、GGSCI程式通訊也會使用這些埠;
COMMENT:註釋行,也可以用--來代替;
AUTOSTART:指定在管理程式啟動時自動啟動哪些程式;
AUTORESTART:自動重啟引數設定:本處設定表示每3分鐘嘗試重新啟動所有EXTRACT程式,共嘗試5次;
PURGEOLDEXTRACTS:定期清理trail檔案設定:本處設定表示對於超過3天的trail檔案進行刪除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定義資料延遲的預警機制:本處設定表示MGR程式每隔1小時檢查EXTRACT的延遲情況,如果超過了30分鐘就把延遲作為資訊記錄到錯誤日誌中,如果延遲超過了45分鐘,則把它作為警告寫到錯誤日誌中。
啟動管理程式:
GGSCI(NDSCDB1) 2> start mgr
配置抽取程式:
GGSCI(NDSCDB1) 12> add extract extnd,tranlog,begin now
GGSCI(NDSCDB1) 14> add exttrail ./dirdat/nd,extract extnd,megabytes 100
EXTTRAILadded.
Megabytes:指定佇列大小,本處設定表示100M。
GGSCI(NDSCDB1) 15> edit params extnd
(貼上下面這段配置)
EXTRACTextnd
setenv(NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV(ORACLE_HOME = "/u01/oracle/oracle/product/10.2.0/db_1")
SETENV(ORACLE_SID = "ndtest")
USERIDogg, PASSWORD oracle
--GETTRUNCATES
REPORTCOUNTEVERY 1 MINUTES, RATE
DISCARDFILE./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS60000
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS2h,CHECKINTERVAL 3m
EXTTRAIL./dirdat/nd
--TRANLOGOPTIONSEXCLUDEUSER USERNAME
FETCHOPTIONSNOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
TABLEolive.ol$_objects
新增傳輸程式,配置引數
GGSCI(NDSCDB1) 2> add extract dpend,exttrailsource ./dirdat/nd
GGSCI(NDSCDB1) 3> add rmttrail F:\ogg\dirdat\nd, EXTRACT DPEND
GGSCI(NDSCDB1) 4> edit params dpend
(貼上下面這段配置)
EXTRACTdpend
SETENV(NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERIDogg, PASSWORD oracle
PASSTHRU
RMTHOST10.122.0.113, MGRPORT 7839, compress
RMTTRAILF:\ogg\dirdat\nd
TABLEolive.ol$_objects;
抽取程式和傳輸程式其實都是EXTRACT程式,也可以配置在一個程式完成這兩個功能,但是當網路傳輸有問題時,這樣抽取也就不能繼續執行了,所以推薦分開配置為兩個程式;
EXTRACT程式引數配置說明:
SETENV:配置系統環境變數
USERID/ PASSWORD:指定OGG連線資料庫的使用者名稱和密碼,這裡使用3.4部分中建立的資料庫使用者OGG;
COMMENT:註釋行,也可以用--來代替;
TABLE:定義需複製的表,後面需以;結尾
TABLEEXCLUDE:定義需要排除的表,如果在TABLE引數中使用了萬用字元,可以使用該引數指定排除掉得表。
GETUPDATEAFTERS|IGNOREUPDATEAFTERS:
是否在佇列中寫入後影像,預設複製
GETUPDATEBEFORES| IGNOREUPDATEBEFORES:
是否在佇列中寫入前影像,預設不復制
GETUPDATES|IGNOREUPDATES:
是否複製UPDATE操作,預設複製
GETDELETES|IGNOREDELETES:
是否複製DELETE操作,預設複製
GETINSERTS|IGNOREINSERTS:
是否複製INSERT操作,預設複製
GETTRUNCATES|IGNORETRUNDATES:
是否複製TRUNCATE操作,預設不復制;
RMTHOST:指定目標系統及其GoldengateManager程式的埠號,還用於定義是否使用壓縮排行傳輸,本例中的compress為壓縮傳輸;
RMTTRAIL:指定寫入到目標斷的哪個佇列;
EXTTRAIL:指定寫入到本地的哪個佇列;
SQLEXEC:在extract程式執行時首先執行一個SQL語句;
PASSTHRU:禁止extract程式與資料庫互動,適用於Data Pump傳輸程式;
REPORT:定義自動定時報告;
STATOPTIONS:定義每次使用stat時統計數字是否需要重置;
REPORTCOUNT:報告已經處理的記錄條數統計數字;
TLTRACE:開啟對於資料庫日誌的跟蹤日誌;
DISCARDFILE:定義discardfile檔案位置,如果處理中油記錄出錯會寫入到此檔案中;
DBOPTIONS:指定對於某種特定資料庫所需要的特殊引數;
TRANLOGOPTIONS:指定在解析資料庫日誌時所需要的特殊引數,例如:對於裸裝置,可能需要加入以下引數 rawdeviceoggset 0
WARNLONGTRANS:指定對於超過一定時間的長交易可以在gsserr.log裡面寫入警告資訊,本處配置為每隔3分鐘檢查一次場交易,對於超過2小時的進行警告;
2.6 配置目標資料庫
目標庫建立GoldenGate資料庫使用者並授權:
createuser ogg identified by oracle default tablespace DATA_OL;
grantconnect,resource,unlimited tablespace to ogg;
grantexecute on utl_file to ogg;
grantselect any dictionary,select any table to ogg;
grantalter any table to ogg;
grantflashback any table to ogg;
grantexecute on DBMS_FLASHBACK to ogg;
grantinsert any table to ogg;
grantdelete any table to ogg;
grantupdate any table to ogg;
新增checkpoint表
然後在引數檔案中輸入
GGSCHEMAogg
CHECKPOINTTABLEogg.checkpoint
2.7 配置目標端程式組
配置管理程式
配置複製程式
REPLICAT程式引數配置說明:
ASSUMETARGETDEFS:假定兩端資料結構一致使用此引數;
SOURCEDEFS:假定兩端資料結構不一致,使用此引數指定源端的資料結構定義檔案,該檔案需要由GlodenGate工具產生。
MAP:用於指定源端與目標端表的對映關係;
MAPEXCLUDE:用於使用在MAP中使用*匹配時排除掉指定的表;
REPERROR:定義出錯以後程式的響應,一般可以定義為兩種:
ABEND,即一旦出現錯誤即停止複製,此為預設配置;
DISCARD,出現錯誤後繼續複製,只是把錯誤的資料放到discard檔案中。
DISCARDFILE:定義discardfile檔案位置,如果處理中油記錄出錯會寫入到此檔案中;
SQLEXEC:在程式執行時首先執行一個SQL語句;
GROUPTRANSOPS:將小交易合併成一個大的交易進行提交,減少提交次數,降低系統IO消耗。
MAXTRANSOPS:將大交易拆分,每XX條記錄提交一次。
2.8 啟動程式進行資料同步
啟動源端程式組
啟動抽取程式和傳輸程式:
start extnd
start dpend
啟動目標端程式
start repnd
顯示如下:
到此OGG的安裝配置就完成了,可以進行資料同步測試了。
3 RAC-單機複製配置
3.1 環境簡介
性質 |
IP |
系統 |
ORACLE版本 |
源端 |
10.123.112.201/10.123.112.202 |
LINUX rhel5 64位 |
10.2.0.1 |
目標端 |
10.123.112.235 |
LINUX rhel5 32位 |
10.2.0.1 |
3.2 源端安裝OCFS2叢集檔案系統
RAC環境中為了實現高可用性,需將OGG安裝在叢集檔案系統中,這樣OGG可以訪問RAC中的所有節點,我們這裡測試採用OCFS2檔案系統。
從下載與LINUX核心相符的OCFS2 RPM包
LINUX下執行uname –r檢視系統核心版本 eg:
[oracle@node2ocfs]$ uname -r
2.6.18-92.el5
使用ROOT使用者安裝OCFS2的RPM包
[root@node1ocfs]# rpm -ivh ocfs2-tools-1.2.7-1.el5.x86_64.rpm \
ocfs2console-1.2.7-1.el5.x86_64.rpm\
ocfs2-2.6.18-92.el5-1.2.9-1.el5.x86_64.rpm
進入OCFS2控制檯介面
[root@node1 ~]#ocfs2console
在出現的窗體中選擇[Clucster]-[ConfigureNodes]在"NodeConfiguration"對話方塊中,輸入2個專用互連的節點名、IP 地址、埠號後,選擇 [Clucster]-[PropagateCluster Configuration] ,提示"Finished"。
配置後的資訊顯示如下:
在叢集中的所有節點上以 root 使用者帳戶的身份執行以下命令
export PATH=$PATH:/sbin:/usr/sbin
/etc/init.d/o2cb enable
建立ocfs2檔案系統,其中-N選項用於指明最多允許多少個節點同時使用此檔案系統:
# mkfs -t ocfs2-N 2 /dev/sdh1
掛載分割槽:
# mount /dev/sdh1/ggate
配置啟動自動載入(所有節點):
export PATH=$PATH:/sbin:/usr/sbin
chkconfig --add o2cb
/etc/init.d/o2cb configure
在/etc/rc.local增加入下內容:
chown -Roracle:dba /ggate
chmod -R 775 /ggate
3.3 源端安裝GoldenGate
在GoldenGate安裝目錄(OCFS2目錄/ggate)解壓安裝檔案
unzipogg112101_fbo_ggs_Linux_x64_ora10g_64bit.zip
tar–xvf fbo_ggs_Linux_x64_ora10g_64bit.tar
設定環境變數
在使用者引數檔案中新增以下內容:
exportGGATE_HOME=/ggate
exportLD_LIBRARY_PATH=$GGATE_HOME:$ORACLE_HOME/lib
注意:新增後需使引數檔案生效
安裝GoldenGate
進入OGG控制檯建立OGG工作目錄
然後在安裝目錄下執行 ./ggsci 進入OGG控制檯
執行命令 createsubdirs建立工作目錄,顯示如下:
GGSCI(node1) 1> create subdirs
3.4 目標端安裝GoldenGate
環境相同,安裝方法與4.3一致,僅僅是安裝位置不同,安裝過程略,注意安裝包與平臺一致。
3.5 配置源端資料庫
資料庫模式配置
源端資料庫必須開啟歸檔模式
Alterdatabase archivelog;
開啟最小附加日誌
Alterdatabase add supplemental log data;
使用SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
可檢視是否開啟了最小附加日誌;
源端資料庫建立GoldenGate資料庫使用者並授權:(我們這裡以ogg為例,使用其他亦可)
createuser ogg identified by oracle default tablespace DATA_OL;
grantconnect,resource,unlimited tablespace to ogg;
grantexecute on utl_file to ogg;
grantselect any dictionary,select any table to ogg;
grantalter any table to ogg;
grantflashback any table to ogg;
grantexecute on DBMS_FLASHBACK to ogg;
新增表級transdata
GGSCI(node1) 1> dblogin userid ogg,password oracle
Successfullylogged into database.
GGSCI(node1) 2> add trandata SCOTT.DEPT
Loggingof supplemental redo data enabled for table SCOTT.DEPT.
GGSCI(node1) 3> add trandata SCOTT.EMP
Loggingof supplemental redo data enabled for table SCOTT.EMP.
3.6 配置源端程式組
配置管理程式mgr:
GGSCI(node1) 1> edit param mgr
(貼上下面這段配置)
PORT7839
DYNAMICPORTLIST7840-7939
--AUTOSTARTER *
AUTORESTARTEXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
引數說明均與單點配置相同,參考3.5部分
啟動管理程式:
GGSCI(node1) 2> start mgr
Managerstarted.
GGSCI(node1) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
配置抽取程式:
GGSCI(node1) 6> add extract extnd,tranlog,begin now,threads 2
EXTRACTadded.
GGSCI(node1) 7> add exttrail ./dirdat/nd,extract extnd,megabytes 100
EXTTRAILadded.
GGSCI(node1) 8> edit params extnd
(貼上下面這段配置)
EXTRACTextnd
SETENV(NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV(ORACLE_HOME = "/u01/app/oracle/product/10.2.0/db_1")
USERID ogg@RAC, PASSWORDoracle
--GETTRUNCATES
REPORTCOUNTEVERY 1 MINUTES, RATE
DISCARDFILE./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS60000
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS2h,CHECKINTERVAL 3m
EXTTRAIL./dirdat/nd
--TRANLOGOPTIONSEXCLUDEUSER USERNAME
FETCHOPTIONSNOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
TABLEscott.dept;
TABLEscott.emp;
注意:threads與RAC節點數相同即可,RAC中不再使用ORACLE_SID設定,而使用USERID ogg@RAC,注意兩個節點均可連線資料庫。
新增傳輸程式,配置引數
GGSCI(node1) 2> add extract dpend,exttrailsource ./dirdat/nd
EXTRACTadded.
GGSCI(node1) 3> add rmttrail /uo1/app/ogg/dirdat/nd, EXTRACT DPEND
RMTTRAILadded.
GGSCI(node1) 4> edit params dpend
(貼上下面這段配置)
EXTRACTdpend
SETENV(NLS_LANG = AMERICAN_AMERICA.UTF8)
USERID ogg@RAC, PASSWORDoracle
PASSTHRU
RMTHOST10.123.112.235, MGRPORT 7839, compress
RMTTRAIL/uo1/app/ogg/dirdat/nd
TABLEscott.dept;
TABLEscott.emp;
3.7 配置目標資料庫
目標庫建立GoldenGate資料庫使用者並授權:
createuser ogg identified by oracle default tablespace USERS;
grantconnect,resource,unlimited tablespace to ogg;
grantexecute on utl_file to ogg;
grantselect any dictionary,select any table to ogg;
grantalter any table to ogg;
grantflashback any table to ogg;
grantexecute on DBMS_FLASHBACK to ogg;
grantinsert any table to ogg;
grantdelete any table to ogg;
grantupdate any table to ogg;
新增checkpoint表
GGSCI(sun.linux) 2> edit params GLOBALS
然後在引數檔案中輸入
GGSCHEMAogg
CHECKPOINTTABLEogg.checkpoint
GGSCI(sun.linux) 4> dblogin userid ogg,password oracle
Successfullylogged into database.
GGSCI(sun.linux) 5> add checkpointtable ogg.checkpoint
Successfullycreated checkpoint table ogg.checkpoint.
3.8 配置目標端程式組
配置MGR引數
GGSCI(sun.linux) 6> edit params mgr
(貼上下面這段配置)
PORT7839
DYNAMICPORTLIST7840-7939
--AUTOSTARTER *
AUTORESTARTEXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS1
LAGINFOMINUTES30
LAGCRITICALMINUTES45
配置複製佇列
GGSCI(sun.linux)8> add replicat repnd,exttrail/uo1/app/ogg/dirdat/nd,checkpointtable ogg.checkpoint
REPLICATadded.
GGSCI(sun.linux) 10> edit params repnd
(貼上下面這段配置)
REPLICATrepnd
SETENV(NLS_LANG = AMERICAN_AMERICA.UTF8)
USERIDogg, PASSWORD oracle
ASSUMETARGETDEFS
REPERRORdefault,discard
discardfile./dirrpt/repnd.dsc,append,megabytes 50
mapscott.*,target pmsbi.*;
3.9 啟動程式進行資料同步
啟動源端程式組
啟動抽取程式和傳輸程式:
startextnd
startdpend
啟動後使用info all檢視程式狀態,正常status應該RUNNING,顯示如下:
GGSCI(node1) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPEND 00:00:00 00:00:09
EXTRACT RUNNING EXTND 00:00:00 00:00:04
啟動目標端程式
startrepnd
顯示如下:
GGSCI(sun.linux) 2> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPND 00:00:00 00:00:03
到此RAC到單點OGG的安裝配置就完成了,可以進行資料同步測試了。
4 RACà單機下的HA配置
第4部分的RACà單機的配置僅僅完成了資料複製的功能,不包含高可用的配置,當執行GoldenGate的節點出現故障時複製功能就將終止,如何使複製功能繼續可用呢,有如下兩種方式:
4.1 節點故障的手工處理方式
因為GoldenGate 安裝在共享目錄下,我們可以透過任一個節點連線到共享目錄,啟動GoldenGate執行介面。如果其中一個節點失敗,導致GoldenGate程式中止,可以直接手工在另外一個節點啟動程式組即可。
4.2 GoldenGate的HA配置
我們可以透過使用CRS來管理GoldenGate資源組,並且使用RAC的vip連線到GoldenGate,一旦資料庫的某一個節點宕掉,Oracleclusterware將自動切換到另一個可用節點。
新增一個應用程式VIP資源
為GoldenGate vip資源建立一個profile
[oracle@node1ggate]$ cd $ORA_CRS_HOME/bin
[oracle@node1bin]$ pwd
/u01/app/oracle/product/10.2.0/crs_1/bin
[oracle@node1 bin]$crs_profile –create ggvip –t application \
–a /u01/app/oracle/product/10.2.0/crs_1\
-o oi=eth0,ov=192.168.73.203,on=255.255.255.0
其中:ggvip為建立的應用程式vip的名字
把這個資源註冊到CRS:
[oracle@node1 bin]$crs_register ggvip
把vip 的所有權給root,在root使用者下執行:
[root@node1 bin]#./crs_setperm ggvip –o root
為oracle使用者分配啟動這個資源的許可權:
[root@node1 bin]#./crs_setperm ggvip –u user:oracle:r-x
透過oracle使用者啟動這個資源:
[oracle@node1bin]$ crs_start ggvip
Attempting tostart `ggvip` on member `node1`
Start of`ggvip` on member `node1` succeeded.
檢視資源狀態顯示如下:
[oracle@node1bin]$ crs_stat ggvip -t
Name Type Target State Host
------------------------------------------------------------
ggvip application ONLINE ONLINE node1
建立一個action程式
action程式我們這裡放到共享磁碟上,action程式最少需要可以接受三個引數:start,stop,check
start和stop:返回0成功,1 失敗;
check :返回0表示GoldenGate在執行,1 表示不執行;
下面為示例程式 gg_action.scr的內容:
#!/bin/sh
#set the OracleGoldengate installation directory
exportGGS_HOME=/ggate
#set the oraclehome to the database to ensure GoldenGate will get the
#rightenvironment settings to be able to connect to the database
exportORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
#specify delayafter start before checking for successful start
start_delay_secs=5
#Include theGoldenGate home in the library path to start GGSCI
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:${GGS_HOME}:${LD_LIBRARY_PATH}
#check_processvalidates that a manager process is running at the PID
#thatGoldenGate specifies.
check_process() {
if ( [ -f"${GGS_HOME}/dirpcs/MGR.pcm" ] )
then
pid=`cut -f8"${GGS_HOME}/dirpcs/MGR.pcm"`
if [ ${pid} = `ps -e |grep ${pid} |grep mgr|cut -d " " -f2` ]
then
#manager process is running on the PID exitsuccess
exit 0
else
if [ ${pid} = `ps -e |grep ${pid} |grep mgr|cut -d " " -f1` ]
then
#manager process is running on the PID exitsuccess
exit 0
else
#manager process is not running on the PID
exit 1
fi
fi
else
#manager is not running because there is noPID file
exit 1
fi
}
#call_ggsci isa generic routine that executes a ggsci command
call_ggsci () {
ggsci_command=$1
ggsci_output=`${GGS_HOME}/ggsci << EOF
${ggsci_command}
exit
EOF`
}
case $1 in
'start')
#start manager
call_ggsci 'start manager'
#there is a small delay between issuing thestart manager command
#and the process being spawned on the OS.wait before checking
sleep ${start_delay_secs}
#check whether manager is running and exitaccordingly
check_process
;;
'stop')
#attempt a clean stop for all non-managerprocesses
#call_ggsci 'stop er *'
#ensure everything is stopped
call_ggsci 'stop er *!'
#call_ggsci 'kill er *'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#exit success
exit 0
;;
'check')
check_process
;;
'clean')
#attempt a clean stop for all non-managerprocesses
#call_ggsci 'stop er *'
#ensure everything is stopped
#call_ggsci 'stop er *!'
#in case there are lingering processes
call_ggsci 'kill er *'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#exit success
exit 0
;;
'abort')
#ensure everything is stopped
call_ggsci 'stop er *!'
#in case there are lingering processes
call_ggsci 'kill er *'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#exit success
exit 0
;;
esac
新增一個應用程式profile
[oracle@node1 ggate]$cd $ORA_CRS_HOME/bin
[oracle@node1bin]$ pwd
/u01/app/oracle/product/10.2.0/crs_1/bin
[oracle@node1 bin]$crs_profile –create GG_app –t application \
–r ggvip –a/ggate/gg_action.scr –o ci=10
其中:-r ggvip表示ggvip必須在GoldenGate啟動之前執行,
-a /ggate/gg_action.scr指定action 指令碼的位置,在每個節點必須都可用
–o ci=10:檢查的時間間隔設定為10
把這個資源註冊到CRS:
[oracle@node1 bin]$crs_register GG_app
把vip 的所有權給root,在root使用者下執行:
[root@node1 bin]#./crs_setperm ggvip –o oracle
為oracle使用者分配啟動這個資源的許可權:
[root@node1 bin]#./crs_setperm GG_app –u user:oracle:r-x
透過oracle使用者啟動這個資源:
[oracle@node1bin]$ crs_start GG_app
Attempting tostart `GG_app` on member `node1`
Start of`GG_app` on member `node1` succeeded.
檢視資源狀態顯示如下:
[oracle@node1bin]$ crs_stat GG_app -t
Name Type Target State Host
------------------------------------------------------------
GG_app application ONLINE ONLINE node1
測試節點遷移
在測試環境中可以使用crs_relocate –fGG_app使它強行漂移:過程顯示如下:
[oracle@node1~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
GG_app application ONLINE ONLINE node1
ggvip application ONLINE ONLINE node1
ora....AC1.srv application ONLINE ONLINE node1
ora....AC2.srv application ONLINE ONLINE node2
ora.RAC.RAC.cs application ONLINE ONLINE node2
ora....C1.inst application ONLINE ONLINE node1
ora....C2.inst application ONLINE ONLINE node2
ora.RAC.db application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
[oracle@node1 ~]$ crs_relocate -f GG_app
Attempting to stop `GG_app` on member `node1`
Stop of `GG_app` on member `node1` succeeded.
Attempting to stop `ggvip` on member `node1`
Stop of `ggvip` on member `node1` succeeded.
Attempting to start `ggvip` on member `node2`
Start of `ggvip` on member `node2` succeeded.
Attempting to start `GG_app` on member `node2`
Start of `GG_app` on member `node2` succeeded.
[oracle@node1~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
GG_app application ONLINE ONLINE node2
ggvip application ONLINE ONLINE node2
ora....AC1.srv application ONLINE ONLINE node1
ora....AC2.srv application ONLINE ONLINE node2
ora.RAC.RAC.cs application ONLINE ONLINE node2
ora....C1.inst application ONLINE ONLINE node1
ora....C2.inst application ONLINE ONLINE node2
ora.RAC.db application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
可以看到GoldenGate成功轉移到2節點執行了。
5 常見錯誤及解決方法
5.1 OGG-00446
啟動源端抽取程式extnd,ggserr.log錯誤顯示如下:
2012-08-1711:11:38 ERROR OGG-00446 Oracle GoldenGate Capture for Oracle, extnd.prm: Could not find archived log for sequence45835 thread 1 under default destinations SQL
導致原因:早期歸檔日誌被刪除或已備份,導致找不到歸檔日誌檔案;
處理方法:
將備份的歸檔日誌恢復到歸檔日誌目錄下,即可解決錯誤;
測試庫可以指定抽取程式從某個時間點開始讀取日誌,跳過已刪除的歸檔日誌檔案,命令如下:alterextract extnd,begin 2012-8-16 16:38;
5.2 OGG-01223
啟動源端傳輸程式DPEND,ggserr.log錯誤顯示如下:
2012-08-1711:43:50 WARNING OGG-01223 Oracle GoldenGate Capture for Oracle,dpend.prm: TCP/IP error 79 (Connectionrefused).
2012-08-1711:45:01 WARNING OGG-01223 Oracle GoldenGate Capture for Oracle,dpend.prm: TCP/IP error 79 (Connectionrefused).
導致原因:因為目標端110上MGR程式沒有啟動,導致報錯
處理方法:
在目標端啟動startmgr啟動程式後,再啟動源端的傳輸程式DPEND,錯誤消失,檔案順利傳輸過來了。
正常的日誌如下:
2012-08-1714:31:51 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, dpend.prm: EXTRACT DPEND started.
2012-08-1714:33:13 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, dpend.prm: Socket buffer size set to 27985 (flush size27985).
2012-08-1714:33:26 INFO OGG-01052 Oracle GoldenGate Capture for Oracle, dpend.prm: No recovery is required for target file F:\ogg\dirdat\nd000000,at RBA 0 (file not opened).
2012-08-1714:33:26 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, dpend.prm: Output file F:\ogg\dirdat\nd is using formatRELEASE 11.2.
5.3 OGG-01224
啟動源端傳輸程式DPEND,ggserr.log錯誤顯示如下:
2012-08-2205:33:10 ERROR OGG-01224 Oracle GoldenGate Capture for Oracle, dpend.prm: TCP/IP error 113 (No route to host).
2012-08-2205:33:10 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, dpend.prm: PROCESS ABENDING.
導致原因:因為目標端235上的防火牆沒有關閉,導致報錯
處理方法:
在目標端機器關閉防火牆後,再啟動源端的傳輸程式DPEND,錯誤消失,檔案順利傳輸過來了。
5.4 OGG-01031
啟動源端傳輸程式DPEND,ggserr.log錯誤顯示如下:
2012-08-28 15:09:39 ERROR OGG-01031 Oracle GoldenGateCapture for Oracle, dpend.prm: There isa problem in network communication, a remote file problem, encryption keys fortarget and source do not match (if using ENCRYPT) or an unknown error. (Replyreceived is Unable to open file "/uo1/app/ogg/dirdat/nd000004" (error2, No such file or directory)).
2012-08-28 15:09:41 ERROR OGG-01668 Oracle GoldenGateCapture for Oracle, dpend.prm: PROCESSABENDING.目標端ggserr.log錯誤顯示如下:
2012-08-2815:06:30 WARNING OGG-01223 Oracle GoldenGate Collector for Oracle: Unable to lock file"/uo1/app/ogg/dirdat/nd000004" (error 11, Resource temporarilyunavailable). Lock currently held byprocess id (PID) 13854.
2012-08-2815:06:30 WARNING OGG-01223 Oracle GoldenGate Collector for Oracle: Unable to open file"/uo1/app/ogg/dirdat/nd000004" (error 2, No such file or directory).
導致原因:可能是網路出現過故障,OGG源端的Data Pump程式與目標斷了聯絡,目標端mgr為其啟動的server程式一直還在執行,下次data pump重啟時目標mgr會試圖生成另外一個server程式,這樣兩個程式會爭同一個佇列檔案。
處理方法:
1、停掉源端的所有data pump,使用ps –ef|grep server(或OGG安裝目錄)看看是不是還有OGG的server程式在跑,如果有,殺死它(一定要確認源端data pump全停掉,並且殺的是server程式,不要殺其它extract/replicat/mgr等),重啟源端data pump即可。
2、可能是目標端的trail file出問題了,前滾重新生成一個新的佇列檔案
SEND EXTRACT xxx ETROLLOVER
或者:alter extract xxx etrollover
xxx為datapump的名稱
5.5 OGG-01154
錯誤資訊:2011-03-29 15:53:57 WARNINGOGG-01154 Oracle GoldenGate Delivery forOracle, repya.prm: SQL error 14402mapping EPMA.D_METER to E
PMA.D_METER OCIError ORA-14402: updating partition key column would cause a partition change(status = 14402), SQL
導致原因:源端更新了分割槽列,但目標端沒有開啟行移動,導致更新時報錯;
處理方法:SQLPLUS>alter table SCHEMA.TABLENAME enable row movement;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1383970/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GoldenGate HANDLECOLLISIONS引數使用說明Go
- Goldengate引數簡要說明Go
- Oracle GoldenGate系統之----相關引數說明OracleGo
- TOP引數說明
- mysqldump引數說明MySql
- mysqldump 引數說明MySql
- MySQL引數說明MySql
- Elasticsearch 引數配置說明Elasticsearch
- kafka 引數配置說明Kafka
- redis 3.0 引數說明Redis
- golden gate 引數說明Go
- oracle引數說明(zt)Oracle
- Oracle Table建立引數說明Oracle
- Oracle Table 建立引數 說明Oracle
- mysqldump引數詳細說明MySql
- mosquitto命令引數說明UI
- Oracle Sequence Cache 引數說明Oracle
- 【MYSQL】MHA引數列表說明MySql
- Mysql JDBC Url引數說明MySqlJDBC
- goldengate ddl 配置說明Go
- Nginx的gzip配置引數說明Nginx
- linux常用核心引數說明Linux
- 【7】JVM引數說明和分析JVM
- 2.--Goldgate常用引數說明Go
- 【MySQL】SemisynchronousReplication配置和引數說明MySql
- Linux SHELL if 命令引數說明Linux
- Redis配置檔案引數說明Redis
- MySQL CMake引數說明手冊MySql
- mysql innodb相關引數說明MySql
- 【ASM學習】ASM引數說明ASM
- 編譯引數-ObjC的說明編譯OBJ
- Mysql my.cnf部分引數說明MySql
- Azure Blob (三)引數設定說明
- Spring BcryptPasswordEncorder Log Rounds引數說明Spring
- mysql relay log相關引數說明MySql
- postgresql資料庫重要引數說明SQL資料庫
- MYSQL: Handler_read_%引數說明MySql
- sql注入工具sqlmap使用引數說明SQL