1.首先,先来了解下Golden gate吧,ogg概念与机制
2.这里记录Oracle和Mysql的windows下的同步(从Mysql同步到Oracle),那么到官网下这两个安装包吧,Ogg For Mysql , Ogg For Oracle
3.接下来,先总结Ogg For Mysql的安装与配置:
1)机器安装了mysql后,修改其my.ini配置(Mysql 开启BinLog)
2)Win+R键,输入services.msc,找到你的mysql服务,如图:
3)到这个目录下,修改my.ini文件,下载 :my.ini直接覆盖源文件。
或者,手动改(没有权限修改的话先修改文件权限,还是不行可以参考:参考:https://blog.csdn.net/m0_37814112/article/details/78638359):
wait_timeout=288000
interactive_timeout=288000
max_allowed_packet=100M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log-bin=mysql-bin
binlog-format='row'
server_id=1
注:重启mysql服务。
4)添加数据库用户ggs,具有DBA权限:
CREATE USER 'ggs'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'ggs'@'%';
5)创建测试数据库test,以及test1 表。
6)解压你下载的安装包到你想要放的地方,我这里是 :E:\golden_gate12
7)在安装的根目录下打开ggsci.exe,输入:create subdirs。然后它自动创建需要文件夹了。
8)在E:\golden_gate12\dirprm新建mgr.prm(注意不是txt格式),写入:
PORT 7809
DYNAMICPORTLIST 7840-7914
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS E:\golden_gate12\dirdat\*, USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
9) 在E:\golden_gate12\dirprm新建ext1.prm,写入:
EXTRACT ext1
SOURCEDB test@localhost:3306, USERID ggs, PASSWORD 123456
DISCARDROLLOVER ON FRIDAY
DISCARDFILE E:\golden_gate12\dirrpt\ext1.dsc, APPEND, MEGABYTES 1024
WARNLONGTRANS 2h, CHECKINTERVAL 3m
REPORTCOUNT EVERY 30 MINUTES, RATE
EXTTRAIL E:\golden_gate12\dirdat\ex
DYNAMICRESOLUTION
NUMFILES 5000
TABLE test.test1;
10)在 ggsci.exe输入(添加抽取进程):
ADD EXTRACT ext1, tranlog, begin now;
ADD EXTTRAIL E:\golden_gate12\dirdat\ex, EXTRACT ext1, megabytes 100
其中的路径参数为本地trail文件生成的路径,当有数据库操作时会在本地生成一个文件例如:ex0000001。
11) 在E:\golden_gate12\dirprm新建dp1.prm,写入:
EXTRACT dp1
RMTHOST 192.168.88.58, MGRPORT 7809,COMPRESS
RMTTRAIL E:\app\db\golden_gate12\install\dirdat\ex
PASSTHRU
NUMFILES 5000
DYNAMICRESOLUTION
TABLE test.*;
其中,RMTHOST 后面这个ip地址为目标端的ip地址,MGRPORT 7809 为目标端mgr进程的监听端口,RMTTRAIL E:\app\db\golden_gate12\install\dirdat\ex 为目标端trail文件生成的位置,即将数据库做投递的位置。
12)在 ggsci.exe输入(添加投递进程):
ADD RMTTRAIL E:\app\db\golden_gate12\install\dirdat\ex, EXTRACT dp1, MEGABYTES 100
其中,E:\app\db\golden_gate12\install\dirdat\ex投递到目标端trail文件生成的位置,需要与配置文件保持一致。
13)测试连接数据库是否成功,在 ggsci.exe输入:
dblogin sourcedb test@localhost:3306, userid ggs, password 123456
(Successfully logged into database.)
14)配置defgen, 在E:\golden_gate12\dirprm创建defgen.prm,写入:
defsfile E:\golden_gate12\dirdef\defgen.prm
sourcedb test@localhost:3306, userid ggs,password 123456
table test.test1;
15)好了,现在在 ggsci.exe输入:exit退出先。然后在安装的根目录按住shift+右键,然后点击“在此处打开powershell窗口”(你也可以打开cmd然后cd过去),输入:
defgen paramfile E:\golden_gate12\dirprm\defgen.prm
注:defgen.exe不能直接运行的,要像上面说的这样。
16)ok,defgen生成好了,将E:\golden_gate12\dirdef目录下的文件defgen.prm拷贝到目标端的相应目录下,即安装了Ogg For Oracle目录的dirdef下。
17)到此,Mysql的配置ok了。
4.接下来,总结Ogg For Oracle的安装与配置:
1)同样的,安装好了Oracle的机器上,解压安装包,然后安装,点击setup,如图:
我这里安装的路径:E:\app\db\golden_gate12\install\
2)首先,建个ggs用户:
CREATE USER ggs identified by 123456;
Grant dba to ggs
注:用ggs连接时如果显示错误:ORA-12560TNS:协议适配器错误。查看services.msc的Oracle服务,如图是orcl:
Win+R输入:regedit,如图显示的Oracle_SID也是orcl(不是的话就改回来):
然后Oracle的环境变量也处理下,如图(oracle_sid为orcl):
好了,现在用sqlplus登录下,这样就成功创建可以用的ggs了,如图:
参考:https://www.cnblogs.com/haimishasha/p/5394963.html
3)在E:\app\db\golden_gate12\install\dirprm(配置管理进程参数)创建mgr.prm,写入:
PORT 7809
DYNAMICPORTLIST 7840-7914
STARTUPVALIDATIONDELAY 5
PURGEOLDEXTRACTS E:\app\db\golden_gate12\install\dirdat\*, USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
4)在E:\app\db\golden_gate12\install\dirprm(创建复制进程参数)创建rep1.prm,写入:
replicat rep1
sourcedefs E:\app\db\golden_gate12\install\dirdef\defgen.prm
userid user_dev,password userdev
reperror default,discard
discardfile E:\app\db\golden_gate12\install\dirrpt\rep1.dsc,append,megabytes 50
dynamicresolution map test.test1, target ggs.test1;
5)在目标端的ggsci.exe输入(登录oracle数据库):
dblogin userid ggs ,password 123456
6)登录成功之后,在exe输入:
add CHECKPOINTTABLE ggs.chkpnttab
add replicat rep1,exttrail E:\golden_gate12\dirdat\ex, checkpointtable ggs.chkpnttab
然后库里会创建CHKPNTTAB、CHKPNTTAB_LOX表。其中,E:\golden_gate12\dirdat\为源端投递进程投递过来的trail文件的路径
5.配置完毕启动进程
1)源端依次执行:start mgr 、 start mgr 、 start dp1
2)目标端依次执行:start mgr 、 start rep1
注:如果windows不能打开ggsci.exe,并显示msvcr100.dll文件错误请重新安装,可以下载这个dll:vcr安装工具与msvcr100.dll;
如果还是不能打开那就下这个这个修复工具:链接:https://pan.baidu.com/s/1UC7F3CkonPzVIfJEF_CPUg 提取码:ebcj 。
以上的内容,自己做了实验并部分参考:https://www.linuxidc.com/Linux/2014-09/106573.htm
需要知道Windows平台oracle-oracle单向复制的大家可以参考:https://blog.csdn.net/BAStriver/article/details/84774902