• 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/*
  • 相关阅读:
    leetcode回溯46
    多线程第五节_AQS
    leetcode1254
    leetcode214最大路径和
    leetcode200dfs岛屿的数量
    leetcode51n皇后
    多线程第三节_mesi
    ElasticSearch基本使用姿势二
    我的 Java 学习&面试网站又又又升级了!
    SpringBoot + JWT + Redis 开源知识社区系统
  • 原文地址:https://www.cnblogs.com/chenfool/p/7908657.html
Copyright © 2020-2023  润新知