原创文章转载须注明出处 作者冷雨夜幻灭
原文地址http://blog.sina.com.cn/s/blog_68d435270102vtld.html
一、环境
系统:Windows2003(32bits)
软件: ogg for mysql (2003/2008(32bits))
ogg for oracle (2003/2008(32bits))
支持 ogg只支持mysql5.15以上数据库
ogg有不同版本对应的数据库软件,10g 11g为不同的ogg软件
二、安装
源端:下载windows版的GoldenGate介质——V18162-01.zip,解压到ggs目录
1)进入安装目录
C:\>cd ggs
2)安装ogg服务器
C:\ggs>install addservice addevents
显示如下:
Oracle GoldenGate messages installed successfully.
Service 'GGSMGR' created.
Install program terminated normally.
3)打开ggsci
C:\ggs>ggsci
显示如下:
Oracle GoldenGate Command Interpreter for MySQL
Version 11.1.1.0.3 Build 001
Linux, x64, 64bit (optimized), MySQL Enterprise on Sep 29 2010 11:37:39
4)创建进程配置需要文件
GGSCI (2003server) 1> create subdirs
Creating subdirectories under current directory C:\ggs
Parameter files C:\ggs\dirprm: created
Report files C:\ggs\dirrpt: created
Checkpoint files C:\ggs\dirchk: created
Process status files C:\ggs\dirpcs: created
SQL script. files C:\ggs\dirsql: created
Database definitions files C:\ggs\dirdef: created
Extract data files C:\ggs\dirdat: created
Temporary files C:\ggs\dirtmp: created
Veridata files C:\ggs\dirver: created
Veridata Lock files C:\ggs\dirver\lock: created
Veridata Out-Of-Sync files C:\ggs\dirver\oos: created
Veridata Out-Of-Sync XML files C:\ggs\dirver\oosxml: created
Veridata Parameter files C:\ggs\dirver\params: created
Veridata Report files C:\ggs\dirver\report: created
Veridata Status files C:\ggs\dirver\status: created
Veridata Trace files C:\ggs\dirver\trace: created
Stdout files C:\ggs\dirout: created
注:实际情况创建时文件夹可能少于上面是没有问题的
5)配置mysql
修改配置文件my.ini
#for goldengate
log-bin = "C:\mysql\logbin\logbin.log"
binlog_format = ROW
log-bin-index = "C:\mysql\logindex"(此句可以注释掉,部分数据库会因此句无法启动)
binlog_cache_size=32m
max_binlog_cache_size=512m
max_binlog_size=512m
6) 创建数据库test,数据表test1,添加数据库用户ggs,密码123456,具有dba权限。添加完毕后重新启动mysql服务器 让上面的配置生效。
7) 配置管理进程参数
GGSCI (2003server) 2> eidt param mgr
Linux下会进入一个vi界面进行文件编辑
Windows 下会提示新建一个文档进行编辑
mgr内容:
PORT 7809
DYNAMICPORTLIST 7840-7914
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS C:\ggs\dirdat\*, USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
8)创建抽取进程参数ext1.prm
GGSCI (2003server) 2> eidt param ext1
Ext.prm 内容:
EXTRACT ext1
tranlogoptions altlogdest "C:\mysql\logbin\logbin.index"
SOURCEDB test@localhost:3306, USERID ggs, PASSWORD 123456
DISCARDROLLOVER ON FRIDAY
DISCARDFILE C:\ggs\dirrpt\ext1.dsc, APPEND, MEGABYTES 1024
WARNLONGTRANS 2h, CHECKINTERVAL 3m
REPORTCOUNT EVERY 30 MINUTES, RATE
EXTTRAIL C:\ggs\dirdat\ex
DYNAMICRESOLUTION
NUMFILES 5000
TABLE test.test1;
9)添加抽取进程
GGSCI (2003server) 3>ADD EXTRACT ext1, tranlog, begin now
GGSCI (2003server)4>ADD EXTTRAIL C:\ggs\dirdat\ex, EXTRACT ext1, megabytes 100
C:\ggs\dirrpt\ex参数为本地trail文件生成的路径,当有数据库操作时会在本地生成一个
文件例如:ex0000001
10)配置投递进程参数
GGSCI (2003server) 5>edit param dp1
dp1内容:
EXTRACT dp1
RMTHOST 192.168.2.218, MGRPORT 7809,COMPRESS
RMTTRAIL d:\ggs\dirdat\ex
PASSTHRU
NUMFILES 5000
DYNAMICRESOLUTION
TABLE test.test1;
RMTHOST 192.168.2.218 后面这个ip地址为目标端的ip地址,
MGRPORT 7809 7809位目标端mgr进程的监听端口
RMTTRAIL d:\ggs\dirdat\ex 为目标端trail文件生成的位置,即将数据库才做投递
的位置
11)添加投递进程:
GGSCI (2003server) 6>ADD EXTRACT dp1, EXTTRAILSOURCE C:\ggs\dirdat\ex
C:\ggs\dirdat\ex为上个抽取进程生成的本地trail文件的路径,所以要和前面保持
一致
GGSCI (2003server) 7> ADD RMTTRAIL d:\ggs\dirdat\ex, EXTRACT dp1,
MEGABYTES 100
d:\ggs\dirdat\ex投递到目标端trail文件生成的位置,需要与配置文件保持一致。
12)测试连接数据库是否成功
GGSCI (2003server) 8>dblogin sourcedb test@localhost:3306, userid ggs, password 123456
其中sourcedb参数的格式是[数据库名]@[ip地址]:[端口]
显示:Successfully logged into database.
13)配置defgen 创建defgen参数
GGSCI (2003server) 9>edit param defgen
配置文件内容:
defsfile C:\ggs\dirdef\defgen.prm
sourcedb test@localhost:3306, userid ggs,password 12356
table test.test1;
14)生成defgen文件
GGSCI (2003server) 9>exit
C:\>defgen paramfile C:\ggs\dirprm\defgen.prm
将C:\ggs\dirdef目录下的文件defgen.prm拷贝到目标端的相应目录下,即目
录.\dirdef下。
注:因为defgen是一个EXE文件所以要先退出ggsci
Defgen是mysql to oracle异构数据库所特有的。其他同构数据库应该不会用
到此文件(目前还不确定,查到的资料目前显示是这个结果)
作者冷雨夜幻灭
原文地址http://blog.sina.com.cn/s/blog_68d435270102vtld.html
目标端:Oracle数据库服务器
1)Oracle环境准备
创建存储空间ggs
创建用户ggs 密码123456
创建数据表test1
grant dba to ggs;赋给ggs dba权限
2)在Oracle服务器安装配置GoldenGate
参照源端1、2、3、4步
3)配置管理进程参数
GGSCI (2003server) 2> eidt param mgr
内容:
PORT 7809
DYNAMICPORTLIST 7840-7914
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS d:\ggs\dirdat\*, USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
4)创建复制进程参数rep1.prm
GGSCI (2003server) 3> eidt param rep1
内容
replicat rep1
sourcedefs D:\ggs\dirdef\defgen.prm
userid ggs,password 123456
reperror default,discard
discardfile D:\ggs\dirrpt\rep1.dsc,append,megabytes 50
dynamicresolution
map test.test1, target ggs.test1;
5)登录oracle数据库
GGSCI (2003server) 4>dblogin userid ggs ,password 12356
如果登录失败步骤如下
GGSCI (2003server)5>dblogin userid ggs@test ,password 12356
失败的话再次输入
GGSCI (2003server) 6>dblogin userid ggs ,password 12356
应该会是成功,如果还是失败请检查oracle客户端配置文件
Tnsnames.ora 是否配置好,实例名是否正确
如下
test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
如果以上正确还是连接不上,那请在命令行里用sqlplus验证是否用户名正确。
6)添加复制进程
GGSCI (2003server) 7>add checkpointtable chkpnttab
GGSCI (2003server)8>add replicat rep1,exttrail D:\ggs\dirdat\ex, checkpointtable chkpnttab
D:\ggs\dirdat\ex 为源端投递进程投递过来的trail文件的路径。
7)配置完毕启动进程
源端:
GGSCI (2003server) 1>start mgr
GGSCI (2003server) 2>start ext1
GGSCI (2003server) 3>start dp1
目标端:
GGSCI (2003server) 9>start mgr
GGSCI (2003server)10>start rep1
8) 源端插入数据看目标端是否有数据插入
检查进程是否抓取数据库操作
源端
GGSCI (2003server) 4>stats ext1 hourly
目标端
GGSCI (2003server) 11>stats rep1 hourly
原创文章转载须注明出处
原文地址http://blog.sina.com.cn/s/blog_68d435270102vtld.html