GoldenGate对接 mysql

环境:

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/ogg
unzip 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 9001
autostart 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 1024
REPORTCOUNT EVERY 30 MINUTES, 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 <CAUSE OF FAILURE : ERROR NO 13 - Confirm that the log file exists, that the path is correct, and that the correct permissions are set for Oracle GoldenGate.
Also try specifying the path to the log index file 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/*
原文地址:https://www.cnblogs.com/chenfool/p/7908657.html