1.1 源端sybase建立goldengate同步用戶
1.1.1啟動數(shù)據(jù)庫
isql -U“用戶名” -P“密碼”-S“Sybase名稱”
1.1.2創(chuàng)建數(shù)據(jù)設(shè)備(paronia_data為我自定義的庫名_數(shù)據(jù)):
>disk init name = 'paronia_data',physname = '/opt/sybase/product/data/paronia_data.dat',size = '224M', directio = true, skip_alloc = true
>go
1.1.3創(chuàng)建日志設(shè)備(paronia_log為我自定義的庫名_日志):
>disk init name = 'paronia_log',physname = '/opt/sybase/product/data/paronia_log.dat',size = '224M', directio = true, skip_alloc = true
>go
1.1.4創(chuàng)建數(shù)據(jù)庫(新建的庫:paronia ):
>CREATE DATABASE paronia ON paronia_data = '224M'
>go
1.1.5新增用戶(用戶名:admin? 密碼:password):
>sp_addlogin 'admin','password', @defdb = 'paronia', @deflanguage = 'us_english', @auth_mech = 'ANY'
>go
1.1.6將用戶添加到新建數(shù)據(jù)庫&授權(quán):
>sp_adduser 'admin','password','public'
>go
>sp_role 'grant',sa_role,admin
>go
>sp_role 'grant',replication_role,admin
>go
>sp_role 'grant',sybase_ts_role,admin
>go
>sp_role 'grant',oper_role,admin
>go
>grant create table, create view, create procedure to admin
>go
1.2開啟第二事務(wù)截斷點
在需要同步的庫上显熏,開啟第二事務(wù)截斷點(需要管理員權(quán)限才能開啟)
假設(shè)需要同步的庫是paronia捣作,則使用isql進入sybase命令行后仔戈,執(zhí)行
use paronia
go
dbcc settrunc(ltm,valid)
go
目的:ogg的捕獲進程可以成功捕獲到事務(wù)日志變化的保證;如果沒有開啟此選項匣摘,extract進程啟動將會失敗檐晕。其實侨颈,如果沒有開啟此選項雀久,當(dāng)你使用ggsci進行添加附加日志的時候,ggsci也會提醒你沒有開啟某個庫的第二事務(wù)截斷點選項寥裂。
備注:開啟這個需要慎重嵌洼,可能對生產(chǎn)有一定影響;
1.3添加表級附加日志
將ggs_Linux_x64_sybase15_7_64bit.zip解壓封恰,并將解壓后的文件夾移動到syabse的安裝目錄下麻养,并重命名為ogg
cd sybase安裝目錄/ogg
進入ggsci控制臺后,使用命令:
dblogin sourcedb 數(shù)據(jù)源诺舔,userid 用戶名鳖昌,password 密碼
success后使用命令添加附加日志:
add trandata dbo.tb1; (這里的dbo.tb1的意思是备畦,對dbo庫下的tb1表添加附加日志。)
成功添加的話许昨,將會看到enable的相關(guān)信息懂盐,同時,如果這里沒對同步庫開啟ltm選項的話糕档,將會看到一條提醒莉恼,不過不用擔(dān)心,你過會再去開啟也行速那,反正在extract進程啟動之前開啟就行俐银。
1.4 源端配置
1、在源端上運行ogg琅坡,執(zhí)行./ggsci
創(chuàng)建子目錄create subdirs
2悉患、配置數(shù)據(jù)定義文件參數(shù)
創(chuàng)建source端sybase數(shù)據(jù)庫需要復(fù)制同步的數(shù)據(jù)定義文件,
拷貝到target端相應(yīng)目錄下榆俺。
----配置數(shù)據(jù)定義文件參數(shù)
edit param defgen
參數(shù)文件內(nèi)容:
defsfile /opt/sybase/ogg/dirdef/def_id.def
sourcedb paronia@SWH userid admin password password
TABLE dbo.stu;
-- shell命令執(zhí)行以下命令,生成數(shù)據(jù)定義文件
./defgen? paramfile? /opt/sybase/ogg/dirprm/defgen.prm
--拷貝生成的數(shù)據(jù)定義文件到目標(biāo)端數(shù)據(jù)定義目錄下
PS:先在mysql安裝目錄下解壓ggs_Linux_x64_MySQL_64bit.zip并重命名為ogg
cd mysql安裝目錄/ogg (創(chuàng)建子目錄create subdirs見1.5)
scp def_id.def root@192.168.163.130:/usr/local/mysql/ogg/dirdef
3坞淮、管理進程MGR參數(shù)配置
edit params mgr
參數(shù)文件內(nèi)容:
PORT 7839
DYNAMICPORTLIST 7840-7860
--AUTOSTART ER *
--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS /opt/sybase/ogg/dirdat/te*,usecheckpoints, minkeepfiles 10
4茴晋、抽取進程ext_st參數(shù)配置
edit params ext_st
參數(shù)文件內(nèi)容:
EXTRACT ext_st
-- SETENV (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)
sourcedb paronia@SWH,userid admin,password password
EXTTRAIL /opt/sybase/ogg/dirdat/id
DISCARDFILE /opt/sybase/ogg/dirrpt/ext_id.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
GETTRUNCATES
table dbo.stu;
edit params 配置文件中的各項說明為
Extract :指定extract的名字
SETENV():指定該extract啟動時oracle相關(guān)的環(huán)境變量.
Userid , password :連接到源數(shù)據(jù)庫的用戶
Report:指定每天在日志中產(chǎn)生報告的時間
Reportrollover:指定每天匯報隊列文件切換報告的時間
Gettruncates:告訴extract對truncate操作也要捕獲
Warnlongtrans:超過個小時的交易為長交易,要在goldengate日志中進行記錄回窘,檢查時間為指定的checkinterval诺擅。
Tranlogoptions:針對源數(shù)據(jù)庫的一些配置選項,如數(shù)據(jù)庫歸檔的位置等等啡直,例如一些例子中的值是指當(dāng)源和目標(biāo)數(shù)據(jù)庫字符集不一致烁涌,而且傳輸包含clob字段時,需要對clob中的字符集進行轉(zhuǎn)換酒觅。
Fetchoptions:指定當(dāng)從源數(shù)據(jù)庫抓取數(shù)據(jù)時的一些選項撮执,例如一些例子指不從undo tablespace取數(shù)據(jù),而是從表里直接抽取舷丹。
Exttrail:本地隊列文件抒钱,extract將數(shù)據(jù)從數(shù)據(jù)庫日志抓取后存放在該隊列文件。(抽取進程寫這些文件颜凯,傳輸進程讀取這些文件)
Discardfile:指定丟棄數(shù)據(jù)的存放位置谋币。
Dynamicresolution:指定當(dāng)extract從日志抓取變化數(shù)據(jù)時,根據(jù)當(dāng)前的需要症概,動態(tài)解析表名蕾额,從而加快抓取進程的啟動速度。
Table? .:指定要從源系統(tǒng)抓取那些表的數(shù)據(jù)彼城,這里schema不能用通配符诅蝶,table_name可以用通配符逼友。
Passthru:表示傳輸進程在傳輸?shù)倪^程中只負(fù)責(zé)文件傳輸,不進行任何轉(zhuǎn)化秤涩。
Rmthost:目標(biāo)端的機器IP地址或者主機名稱帜乞。
Mgrport:目標(biāo)端goldengate 管理進程manager運行的端口號。
Rmttrail:當(dāng)傳輸進程將隊列文件傳輸?shù)哪繕?biāo)端后放置的目錄和隊列文件筐眷。
ogg控制臺執(zhí)行:
add extract ext_st,tranlog,begin now
add exttrail /opt/sybase/ogg/dirdat/id,extract ext_st,megabytes 100
5黎烈、傳輸進程dp_st參數(shù)配置
edit params dp_st
參數(shù)文件內(nèi)容:
EXTRACT dp_st
sourcedb paronia@SWH,userid admin,password password
RMTHOST 192.168.163.130,MGRPORT 7808
RMTTRAIL? /usr/local/mysql/ogg/dirdat/id
PASSTHRU
TABLE dbo.stu;
ogg控制臺執(zhí)行:
add extract dp_st,exttrailsource /opt/sybase/ogg/dirdat/id, begin now
add rmttrail /usr/local/mysql/ogg/dirdat/id,extract dp_st,megabytes 100
1.5 目標(biāo)端配置
1、在目標(biāo)端上運行ogg匀谣,執(zhí)行./ggsci
創(chuàng)建子目錄create subdirs
2照棋、管理進程MGR參數(shù)配置
edit params mgr
參數(shù)文件內(nèi)容:
PORT 7808
DYNAMICPORTLIST 7810-7909
--AUTOSTART ER *
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS /usr/local/mysql/ogg/dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
ACCESSRULE, PROG *, IPADDR 192.168.*.*, ALLOW
3、ogg檢查點配置
Ogg控制臺登錄mysql庫
dblogin sourcedb paronia@192.168.163.130:3306 userid root password 123456
執(zhí)行
add checkpointtable paronia.checkpoint_table
4武翎、rep進程rep_tb參數(shù)配置
目的:將源端投遞過來的trail文件進行解密烈炭、分析,將源端的增量數(shù)據(jù)同步更新到目標(biāo)數(shù)據(jù)庫宝恶。
edit params rep_st
參數(shù)文件內(nèi)容:
replicat rep_st
-- SETENV (NLS_LANG="MERICAN_AMERICA.ZHS16GBK")
targetdb paronia@192.168.163.130:3306 userid root password 123456
handlecollisions
sourcedefs /usr/local/mysql/ogg/dirdef/def_id.def
reperror default,discard
discardfile /usr/local/mysql/ogg/dirrpt/rep_st.dsc,append,megabytes 50
MAP dbo.stu,TARGET paronia.stu;
REPLICAT進程參數(shù)配置說明:ASSUMETARGETDEFS:假定兩端數(shù)據(jù)結(jié)構(gòu)一致使用此參數(shù)符隙;SOURCEDEFS:假定兩端數(shù)據(jù)結(jié)構(gòu)不一致,使用此參數(shù)指定源端的數(shù)據(jù)結(jié)構(gòu)定義文件垫毙,該文件需要由GlodenGate工具產(chǎn)生霹疫。MAP:用于指定源端與目標(biāo)端表的映射關(guān)系;MAPEXCLUDE:用于使用在MAP中使用*匹配時排除掉指定的表综芥;REPERROR:定義出錯以后進程的響應(yīng)丽蝎,一般可以定義為兩種:ABEND,即一旦出現(xiàn)錯誤即停止復(fù)制膀藐,此為缺省配置屠阻;DISCARD,出現(xiàn)錯誤后繼續(xù)復(fù)制额各,只是把錯誤的數(shù)據(jù)放到discard文件中国觉。DISCARDFILE:定義discardfile文件位置,如果處理中油記錄出錯會寫入到此文件中臊泰;SQLEXEC:在進程運行時首先運行一個SQL語句蛉加;GROUPTRANSOPS:將小交易合并成一個大的交易進行提交,減少提交次數(shù)缸逃,降低系統(tǒng)IO消耗针饥。MAXTRANSOPS:將大交易拆分,每XX條記錄提交一次需频。
ogg控制臺執(zhí)行:
add replicat rep_st,exttrail /usr/local/mysql/ogg/dirdat/id,checkpointtable paronia.checkpoint_table
1.6 啟動測試
--按照順序執(zhí)行
源端執(zhí)行:(記得把ogg文件夾都給777權(quán)限:chmod -R 777 ogg)
1丁眼、start mgr ①
2、start * ③
目標(biāo)端執(zhí):
1昭殉、start mgr? ②
2苞七、Start * ④
啟動成功藐守,即可在sybase端試試插入數(shù)據(jù),更新數(shù)據(jù)蹂风,刪除數(shù)據(jù)卢厂,是否會進行同步
說明:無論源還是目標(biāo),啟動各extract/replicat進程前需要啟動mgr進程