GoldenGate安装配置
?
GOLDENGATE安裝
1. 下載與數據庫對應版本的goldengate安裝介質。
2. 創建goldengate系統用戶,設置用戶環境變量,如果是oracle,建議直接使用oracle作為用戶安裝。
3. 創建goldengate數據庫用戶,并授予足夠權限,該用戶至少應該有connect、resource、select any dictionary、select any table的權限。當然授予dba權限的話,那么就涵蓋了所需的所有權限。
在此處使用的oracle數據庫用戶為 ggs 密碼也是ggs。 提醒一天,ggs盡量使用自己的表空間。這樣可以有效的進行維護。
建議腳本
SQL> grant connect, resource,unlimited tablespace,select any dictionary, select any table,insert any table,update any table,delete any table,alter any table,flashback any table
to ggs;
SQL>grant execute on dbms_flashback to ggs;
SQL>grant execute on utl_file to ggs;
4. 將源端數據庫設置為歸檔模式。
SQL>alter database archivelog;
SQL>archive log list;
注意 歸檔是需要重啟的。所以請妥善管理好時間。
5. 將源端數據庫的附加日志打開
SQL>select supplemental_log_data_min from v$database;
如果沒有打開,則使用以下sql命令打開附加日志
SQL>alter database add supplemental log data;
6. 打開force logging
SQL>alter database force logging;
7. 將goldengate安裝介質上傳到服務器,解壓縮包。
8. 在解壓縮包后的根目錄,也就是goldengate工作目錄,運行 ./ggsci命令進入ggsci命令提示符界面,運行create subdirs:等待命令結束,goldengate安裝完成。
可能遭遇的錯誤以及該如何處理的過程:
scp ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip oracle@172.25.0.10:/oracle/
mkdir -p /oracle/insogg/
unzip /oracle/ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip -d /oracle/insogg/
mkdir -p /oracle/ogg/
tar -xvf /oracle/insogg/fbo_ggs_Linux_x64_ora11g_64bit.tar -C /oracle/ogg
修環境變量
vi .bash_profile
export PATH=$PATH:$ORACLE_HOME/bin:/home/oracle/ggs
export LD_LIBRARY_PATH=/home/oracle/ggs:$ORACLE_HOME/lib
9. 打開DDL支持(可選)
SQL>@marker_setup.sql
SQL>@ddl_setup.sql
SQL>@role_setup.sql
SQL>@Grant the role to all GoldenGate Extract users
SQL>@ddl_enable.sql
SQL>@marker_setup.sql
SQL>@ddl_setup.sql
SQL>@role_setup.sql
SQL> Grant the role to all GoldenGate Extract users
SQL>@ddl_enable.sql
10. 在目標庫上面完成7-9步驟
GOLDENGATE配置
1、首先需要在源端和目標端都配置一個管理進程,也就是goldengate實例。
運行ggsci,然后輸入 edit params mgr
此時會彈出一個編輯器,在新創建的文件中工加入端口定義,比如port 7809。
保存退出后,運行start mgr則能啟動管理進程。
GGSCI>dblogin userid <username>,password <password>
增加需要同步表列表
GGSCI>add trandata <schema_name>.<table_name>
參考實例
./ggsci
GGSCI (install0.example.com) 1> create subdirs
GGSCI (install0.example.com) 1> dblogin userid ggs,password ggs
GGSCI (install0.example.com) 1> edit params mgr
port 7809
dynamicportlist 7800-8000
checkminutes 10
purgeoldextracts /oracle/ggtrail/lt*,usecheckpoints,minkeepdays 3,maxkeepdays 10
PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7, FrequencyMinutes 120
PurgeMarkerHistory MinKeepDays 3, MaxKeepDays 7, FrequencyMinutes 120
autostart ER *
autorestart ER *,waitminutes 2,resetminutes 5
laginfominutes 0
lagreportminutes 10
在源添加checkpoint表:
GGSCI (oracle0.example.com) 1>
CHECKPOINT TABLE ggate.checkpoint
--------------------------------
GGSCI (oracle0.example.com) 1> dblogin userid ggs, password ggs
GGSCI (oracle0.example.com) 2> add checkpointtable ggs.checkpoint
#################################################################
在源端增加同步的表
GGSCI (install0.example.com) 1> add trandata vip_system.CIM_MAPEXCHANGECODE
add trandata vip_system.CIM_PERSONMAIN
add trandata vip_system.CIM_SUBSCRIBE
2、在源端配置數據捕獲進程和數據傳輸進程。
數據捕獲進程負責將數據從數據庫日志抓取出來,存放到一個隊列文件中,數據傳輸進程負責將隊列文件按照指定的業務邏輯傳輸到目標數據庫。
添加extract進程命令: add extract <extract_name>,tranlog,<開始時間或者SCN或者RBA>
修改配置參數: edit params <extract_name>
GGSCI>delete extract demo
Deleted EXTRACT DEMO.
配置抽取進程
GGSCI> add extract demo,tranlog,begin now
EXTRACT added.
GGSCI>add extract demo,tranlog,EXTSEQNO 849039
GGSCI>edit params demo
extract demo
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
setenv (ORACLE_SID="orcl") userid ggs,password oracle
REPORT AT 01:59
reportrollover at 02:00
GETTRUNCATES
WARNLONGTRANS 2h,CHECKINTERVAL 3m
TRANLOGOPTIONS convertucs2clobs
FETCHOPTIONS NOUSESNAPSHOT
exttrail /home/oracle/ggs/dirdat/mm
discardfile /home/oracle/ggs/dirrpt/mm, append , megabytes 100
dynamicresolution
table sh.one;
指定從某一時刻開始
GGSCI>add extract demo,tranlog,begin 2012-1-2 11:23:10
配置參數說明
Extract <extract_name>:指定剛才加入的extract的名字
SETENV():指定該extract啟動時oracle相關的環境變量.
Userid <oracle_user>, password <oracle_password>:連接到源數據庫的用戶,既我們在第一步建立的源端數據庫用戶。
Report:指定每天在日志中產生報告的時間
Reportrollover:指定每天匯報隊列文件切換報告的時間
Gettruncates:告訴extract對truncate操作也要捕獲
Warnlongtrans:超過<n>個小時的交易為長交易,要在goldengate日志中進行記錄,檢查時間為指定的checkinterval。
Tranlogoptions:針對源數據庫的一些配置選項,如數據庫歸檔的位置等等,本例子中的值是指當源和目標數據庫字符集不一致,而且傳輸包含clob字段時,需要對clob中的字符集進行轉換。
Fetchoptions:指定當從源數據庫抓取數據時的一些選項,本例指不從undo tablespace取數據,而是從表里直接抽取。
Exttrail:本地隊列文件,extract將數據從數據庫日志抓取后存放在該隊列文件。
Discardfile:指定丟棄數據的存放位置。
Dynamicresolution:指定當extract從日志抓取變化數據時,根據當前的需要,動態解析表名,從而加快抓取進程的啟動速度。
Table <schema>.<table_name>:指定要從源系統抓取那些表的數據,這里schema不能用通配符,table_name可以用通配符。
配置傳輸進程
GGSCI>add extract pump1,exttrailsource ./dirdat/lt
EXTRACT added
GGSCI>add rmttrail ./dirdat/lt,extract pump1
指定傳輸起始點
GGSCI> alter extract pump1 extseqno <seq>, extrba <ba>
GGSCI>alter extract pump1 begin 2012-1-2 11:23:10
參考樣例
抽取配置
GGSCI (centerdb-prod) 2> edit params ext1
extract ext1
setenv (NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
setenv (ORACLE_SID="orcl")
userid ggs,password ggs
REPORT AT 01:59
reportrollover at 02:00
WARNLONGTRANS 2h,CHECKINTERVAL 3m
TRANLOGOPTIONS convertucs2clobs
FETCHOPTIONS NOUSESNAPSHOT
DBOPTIONS ALLOWNOLOGGING
ignorereplicates
tranlogoptions excludeuser ggate
exttrail /oracle/ogg/dirdat/ea
discardfile /oracle/ogg/dirrpt/dt,append,megabytes 100
dynamicresolution
TABLE vip_system.CIM_MAPEXCHANGECODE;
TABLE vip_system.CIM_PERSONMAIN;
TABLE vip_system.CIM_SUBSCRIBE;
TABLE vip_system.CUSTOMER_BASICINFO;
TABLE vip_system.CUSTOMER_SERVICE;
TABLE vip_system.CUS_GROUP;
GGSCI (oracle0.example.com) 2> add extract ext1, tranlog, begin now
添加抽取進程的生成文件
GGSCI (oracle0.example.com) 3> add exttrail /oracle/ogg/dirdat/ea,extract ext1
增加投遞功能
GGSCI (centerdb-prod) 2>edit params pump1
extract pump1
userid ggs,password ggs
rmthost 172.19.16.45,mgrport 7809
rmttrail /home/oracle/ogg/dirdat/lt
passthru
table vip_system.*;
table gbox.*;
table weixin.*;
table tzzh.*;
----------------------------------------------
在源端增加投遞進程
GGSCI (oracle0.example.com) 4> add extract pump1,exttrailsource /oracle/ogg/dirdat/ea , begin now
增加投遞到遠程的文件
GGSCI (oracle0.example.com) 5> add rmttrail /home/oracle/ogg/dirdat/lt ,extract pump1
3、配置目標端的應用進程
設置檢查點
GGSCI>edit params GLOBAL
CHECKPOINT TABLE ggate.checkpoint
GGSCI>dblogin userid <userid>,password <password>
GGSCI>add checkpointtable
增加復制進程組
GGSCI>add replicat rep1,exttral ./dirdat/lt
GGSCI>edit param rep1
replicat rep1
userid ggate, password ggate50
assumetargetdefs
reperror default, discard
dynamicresolution
discardfile /oracle/goldengate/dirdat/rep1_discard.txt, append, megabytes 10
DDL
map center_admin.*, target center_admin.*;
指定應用進程起始點
GGSCI> alter extract rep1 extseqno <seq>, extrba <ba>
GGSCI>alter extract rep1 begin 2012-1-2 11:23:10
參考樣例
GGSCI (localhost.localdomain) 58> edit params mgr
port 7809
dynamicportlist 7800-8000
autorestart er *
autorestart extract *,waitminutes 2,retries 5
purgeoldextracts /home/oracle/ogg/dirdat/lt*,usecheckpoints,minkeepdays 1,maxkeepdays 2
在源和目標都要端添加checkpoint表:
配置全局參數文件
vi /home/oracle/ogg/GLOBALS
--------------------------------
checkpointtable ggs.checkpoint
--------------------------------
GGSCI (oracle0.example.com) 1> dblogin userid ggs, password ggs
GGSCI (oracle0.example.com) 2> add checkpointtable ggs.checkpoint
#################################################################
GGSCI (localhost.localdomain) 59> edit params rep1
replicat rep1
SETENV(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid ggs, password ggs
assumetargetdefs
reperror default, discard
discardfile /home/oracle/ogg/dirdat/rep1_discard.txt, purge, megabytes 1000
dynamicresolution
DDL INCLUDE MAPPED &
EXCLUDE MAPPED OBJTYPE 'TRIGGER' &
EXCLUDE MAPPED OBJTYPE 'JOB' &
EXCLUDE MAPPED OPTYPE TRUNCATE
DDLERROR DEFAULT IGNORE RETRYOP
map vip_system.*, target vip_system.*;
map gbox.*, target gbox.*;
map weixin.*, target weixin.*;
map tzzh.*, target tzzh.*;
增加復制進程
GGSCI (install0.example.com) 2> add replicat rep1,exttrail /home/oracle/ogg/dirdat/lt , nodbcheckpoint
轉載于:https://www.cnblogs.com/ianxu/p/9372906.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的GoldenGate安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【BZOJ3712】Fiolki(并查集
- 下一篇: 20、Flask实战第20天:Flask