环境:
centos 7.4
mysql 5.5.58 glibc 64 位版,下载链接:https://dev.mysql.com/downloads/mysql/5.5.html#downloads
GoldenGate for mysql 12.3.0.1.0 linux 版本,下载链接:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html
之前作者已经写过一篇博客,专门介绍如何使用tar 包离线安装mysql 服务,感兴趣的读者可以浏览查看mysql 5.5.58 tar包安装部署,读者们要特别留意my.cnf 的配置,因为GoldenGate 在对接mysql 时,需要依赖mysql 的binlog 日志。
安装GoldenGate 前,建议大家先创建一个ogg 的系统用户,方便管理
groupadd ogg
useradd-s "/bin/bash" -m -d /home/ogg -b /home/ogg -g ogg ogg
切换到 ogg 系统用户下,继续以下操作
su - ogg
解压已经下载好的GoldenGate 软件
mkdir -p /home/ogg/oggunzip 123011_ggs_Linux_x64_MySQL_64bit.zip -d /home/ogg/ogg/cd ogg/
tar -xvf ggs_Linux_x64_MySQL_64bit.tar
进入ggsci 控制台
./ggsci
创建GoldenGate的子目录,并且编辑mgr 配置文件
create subdirs
edit param mgr
mgr 服务的配置文件
port 9001autostart er*autorestart er*
启动mgr 服务
start mgr
编辑 ext_test 服务的配置文件
edit param ext_test
ext_test 服务的配置文件
EXTRACT ext_test
SOURCEDB foo@localhost:3306, USERID root, PASSWORD mysql
Setenv (NLS_LANG="AMERICAN_AMERICA.UTF8")
Setenv (MYSQL_HOME="/opt/mysql-5.5.58-linux-glibc2.12-x86_64")
TranLogOptions AltLogDest/opt/mysql-5.5.58-linux-glibc2.12-x86_64/binlog/replicalog.index
GETTRUNCATES
DISCARDROLLOVER ON FRIDAY
DISCARDFILE ./dirrpt/ext_test.dsc , APPEND, MEGABYTES 1024REPORTCOUNT EVERY30MINUTES, RATE
EXTTRAIL ./dirdat/ex
TABLE foo.test;
GoldenGate 对接mysql 和Oracle的配置文件有所不同,主要是连接 数据库的设置不一样,以及设置数据库事务日志的方法也不同。
SOURCEDB 这个参数中,foo 代表是mysql 的database 名字,localhost 是指定mysql 的连接方式,3306 即是mysql 的端口号,后面接着的鉴权是mysql 数据库中的用户名和密码,而非操作系统的用户名和密码。
TranLogOptions 参数则是指定mysql 事务日志的索引文件路径
再次强调,读者需要通过作者上一篇博客mysql 5.5.58 tar包安装部署 的介绍,用户应该如何设置mysql 的事务日志归档。
设置好ext_test配置后,就是对GoldenGate 增加这个服务。
add extract ext_test, TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/ex , EXTRACT ext_test, MEGABYTES 200
启动ext_test 服务
start ext_test
查看GoldenGate 服务的运行状态
info all
GoldenGate for mysq 另外一个和 对接Oracle 不同的地方,是GoldenGate 获取mysql 表结构的方法。
在 ggsci 控制台上配置defgen 的配置文件
edit param defgen
defgen的配置文件内容
DEFSFILE dirdef/source.def, PURGE
SourceDB foo, UserID root, Password mysql
Table foo.test ;
在shell 窗口中执行以下命令,获取mysql 需要同步的表的表结构
./defgen paramfile dirprm/defgen.prm
之前作者写过一篇完整的GoldenGate的部署博客Oracle GoldenGate对接 Oracle 11g和Kafka,大家可以根据介绍将剩余的 dpe_test 和rep_test部分进行部署。
启动ext_test 服务时报错
如果用户在启动 ext_test服务时报错信息如下,则证明是mysql 的binlog 日志ogg 没有读的权限,用户应该修改mysql 的binlog 日志权限,允许其他的系统用户读取
2017-11-28 11:09:58 ERROR OGG-00146 Call to VAMInitialize returned with error status 600: VAM Client Report
Also try specifying the path to the log indexfile by using the TRANLOGOPTIONS parameter with the ALTLOGDEST option. - /opt/mysql-5.5.58-linux-glibc2.12-x86_64/binlog/replicalog.index
WHEN FAILED : While initializing binary log configuration
WHERE FAILED : MySQLBinLog Reader Module
CONTEXT OF FAILURE : No Information Available!>.2017-11-28 11:09:58 ERROR OGG-01668 PROCESS ABENDING
修改mysql 的binlog 目录的权限命令
chmod 765 /opt/mysql-5.5.58-linux-glibc2.12-x86_64/binlog/*