源端配置大致分為如下三個步驟:配置mgr,配置抽取進程,配置投遞進程
在源端先創建一張表,記得帶主鍵:
SQL> create table ah4(id int ,name varchar(10),primary key(id));
Table created.
1.登陸ogg,配置全局設置
[oracle@ora11g 11.2]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (ora11g) 1> dblogin userid ggs password ggs Successfully logged into database.
GGSCI (ora11g) 2> view params ./globals
ggschema ggs
2.配置mgr
GGSCI (ora11g) 3> edit param mgr PORT 7809 DYNAMICPORTLIST 7810-7909 --AUTOSTART ER * AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3 PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45
PS:
MANAGER進程參數配置說明:
PORT:指定服務監聽端口;這里以7809為例,默認端口為7809
DYNAMICPORTLIST:動態端口:可以制定最大256個可用端口的動態列表,當指定的端口不可用時,管理進程將會從列表中選擇一個可用的端口,源端和目標段的Collector、Replicat、GGSCI進程通信也會使用這些端口;
COMMENT:注釋行,也可以用--來代替;
AUTOSTART:指定在管理進程啟動時自動啟動哪些進程;
AUTORESTART:自動重啟參數設置:本處設置表示每3分鍾嘗試重新啟動所有EXTRACT進程,共嘗試5次;
PURGEOLDEXTRACTS:定期清理trail文件設置:本處設置表示對於超過3天的trail文件進行刪除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定義數據延遲的預警機制:本處設置表示MGR進程每隔1小時檢查EXTRACT的延遲情況,如果超過了30分鍾就把延遲作為信息記錄到錯誤日志中,如果延遲超過了45分鍾,則把它作為警告寫到錯誤日志中。
3.啟動mgr,並查看狀態
GGSCI (ora11g) 6> start mgr Manager started. GGSCI (ora11g) 7> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING
4.添加並查看需要復制的表:
GGSCI (ora11g) 8> add trandata hr.ah4 Logging of supplemental redo data enabled for table HR.AH4. GGSCI (ora11g) 9> info trandata hr.* Logging of supplemental redo log data is enabled for table HR.AH1. Columns supplementally logged for table HR.AH1: ID. Logging of supplemental redo log data is enabled for table HR.AH2. Columns supplementally logged for table HR.AH2: ID. Logging of supplemental redo log data is enabled for table HR.AH3. Columns supplementally logged for table HR.AH3: ID. Logging of supplemental redo log data is enabled for table HR.AH4. Columns supplementally logged for table HR.AH4: ID. Logging of supplemental redo log data is disabled for table HR.COUNTRIES. Logging of supplemental redo log data is disabled for table HR.DEPARTMENTS. Logging of supplemental redo log data is disabled for table HR.EMPLOYEES. Logging of supplemental redo log data is disabled for table HR.JOBS. Logging of supplemental redo log data is disabled for table HR.JOB_HISTORY. Logging of supplemental redo log data is disabled for table HR.LOCATIONS. Logging of supplemental redo log data is disabled for table HR.REGIONS. Logging of supplemental redo log data is disabled for table HR.SURE1. GGSCI (ora11g) 10>
5.配置抽取進程
GGSCI (ora11g) 11> edit params ext3 extract ext3 dynamicresolution userid ggs,password ggs exttrail /u01/ogg/11.2/dirdat/xs table hr.ah4; --table hr.ah5;
GGSCI (ora11g) 13> add extract ext3,tranlog,begin now EXTRACT added. GGSCI (ora11g) 14> add exttrail /u01/ogg/11.2/dirdat/xs,extract ext3 EXTTRAIL added. GGSCI (ora11g) 15>
PS:
ext的模板可以是:
EXTRACT extmb
setenv (NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV (ORACLE_HOME = "/u01/oracle/product/11.2.0/db_1")
SETENV (ORACLE_SID = "orcl")
USERID ggs, PASSWORD ggs
--GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
DISCARDFILE ./dirrpt/extmb.dsc,APPEND,MEGABYTES 1024
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS 2h,CHECKINTERVAL 3m
EXTTRAIL ./dirdat/mb
--TRANLOGOPTIONS EXCLUDEUSER USERNAME
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
TABLE hr.emp;
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操作,缺省不復制;
6.配置投遞進程
GGSCI (ora11g) 17> edit params push3 extract push3 passthru dynamicresolution userid ggs,password ggs rmthost 192.168.0.166,mgrport 7809 rmttrail /u01/ogg/11.2/dirdat/xs table hr.ah4;
GGSCI (ora11g) 18> add extract push3,exttrailsource /u01/ogg/11.2/dirdat/xs EXTRACT added. GGSCI (ora11g) 19> add rmttrail /u01/ogg/11.2/dirdat/xs,extract push3 RMTTRAIL added. GGSCI (ora11g) 20>
PS:
push的模板:
EXTRACT pushmb
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERID ggs, PASSWORD ggs
PASSTHRU
RMTHOST 192.168.0.165, MGRPORT 7809, compress
RMTTRAIL /u01/ogg/11.2/dirdat/xs
TABLE hr.ah4;
RMTHOST:指定目標系統及其Goldengate Manager進程的端口號,還用於定義是否使用壓縮進行傳輸,本例中的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小時的進行警告;
7.配置define文件
因為是異構,所以define作為2個數據庫之間表的關系映射,是必不可少的。
GGSCI (ora11g) 21> edit params ah4 defsfile /u01/ogg/11.2/dirdef/ah4.prm userid ggs,password ggs table hr.ah4;
去相應的目錄下生產define文件:
[oracle@ora11g 11.2]$ ./defgen paramfile dirprm/ah4.prm *********************************************************************** Oracle GoldenGate Table Definition Generator for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258 Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. Starting at 2014-04-02 15:47:20 *********************************************************************** Operating System Version: Linux Version #1 SMP Fri Jan 27 17:17:51 EST 2012, Release 2.6.18-308.el5 Node: ora11g 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: 31345 *********************************************************************** ** Running with the following parameters ** *********************************************************************** defsfile /u01/ogg/11.2/dirdef/ah4.prm userid ggs,password *** table hr.ah4; Retrieving definition for HR.AH4 Definitions generated for 1 table in /u01/ogg/11.2/dirdef/ah4.prm [oracle@ora11g 11.2]$
並將生成的/u01/ogg/11.2/dirdef/ah4.prm 傳到目的端的相應目錄中去
[root@ora11g ~]# scp /u01/ogg/11.2/dirdef/ah4.prm 192.168.0.166:/u01/ogg/11.2/ Display all 108 possibilities? (y or n) [root@ora11g ~]# scp /u01/ogg/11.2/dirdef/ah4.prm 192.168.0.166:/u01/ogg/11.2/dirdef/ The authenticity of host '192.168.0.166 (192.168.0.166)' can't be established. RSA key fingerprint is 67:c6:bb:27:ba:70:17:31:00:5b:4e:39:3c:fd:92:ad. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.166' (RSA) to the list of known hosts. root@192.168.0.166's password: ah4.prm 100% 991 1.0KB/s 00:00 [root@ora11g ~]#
至此,源端就配置完畢了。