Goldengate完成Mysql到Mysql的数据同步

文档参考地址:http://blog.csdn.net/u010587433/article/details/49305019

需求:

使用Goldengate完成Mysql到Mysql的数据同步,源库的o2m-mc库同步到目标库的gmdc库,表名GMQDSJSP,换句话说,就是不同数据库之间表之间数据的同步

实验准备:

系统: CentOS 7.2

mysql版本 :  5.7-12

mysql-1 : 192.168.68.13     mysql-2:192.168.68.14

1、初始化

1)目标库创建数据库

mysql> create database gmdc;

2)导入数据

将源库表GMQDSJSP数据导出,然后导入到目标库中

[sql] view plain copy

  1. mysqldump -uroot -p123456  --single-transaction --flush-logs --master-data=2 -B o2m-mc --tables GMQDSJSP > /tmp/GMQDSJSP20151021.sql
  2. mysql -uroot -p123456 gmdc <  /tmp/GMQDSJSP20151021.sql

2、源库

1)修改参数

在/etc/my.cnf的[mysqld]下添加如下参数

[sql] view plain copy

  1. binlog_format=row
  2. log-bin = mysql-bin          #开启二进制日志

重启

[sql] view plain copy

  1. service mysqld restat

2)创建用户并授权

[sql] view plain copy

  1. mysql> GRANT ALL PRIVILEGES ON `o2m-mc`.* TO ‘ogg‘@localhost IDENTIFIED BY ‘ogg;
  2. mysql> GRANT ALL PRIVILEGES ON `o2m-mc`.* TO ‘ogg‘@‘%‘IDENTIFIED BY ‘ogg;

3)解压安装创建相应目录

[sql] view plain copy

  1. unzip ggs_121210_Linux_x64_MySQL_64bit.zip -d /home/goldengate
  2. cd /home/goldengate
  3. tar xvf ggs_Linux_x64_MySQL_64bit.tar
  4. ./ggsci
  5. GGSCI (hadooptest05) 1> create subdirs
  6. Creating subdirectories under current directory /home/goldengate
  7. Parameter files                /home/goldengate/dirprm: already exists
  8. Report files                   /home/goldengate/dirrpt: created
  9. Checkpoint files               /home/goldengate/dirchk: created
  10. Process status files           /home/goldengate/dirpcs: created
  11. SQL script files               /home/goldengate/dirsql: created
  12. Database definitions files     /home/goldengate/dirdef: created
  13. Extract data files             /home/goldengate/dirdat: created
  14. Temporary files                /home/goldengate/dirtmp: created
  15. Credential store files         /home/goldengate/dircrd: created
  16. Masterkey wallet files         /home/goldengate/dirwlt: created
  17. Dump files                     /home/goldengate/dirdmp: created

4)配置管理进程

[sql] view plain copy

  1. GGSCI (hadooptest05) 2>  edit params mgr
  2. port 7809
  3. dynamicportlist 7840-7939
  4. autorestart er *, retries 5, waitminutes 3
  5. purgeoldextracts /home/goldengate/dirdat/*,usecheckpoints, minkeepdays 2
  6. GGSCI (hadooptest05) 3> start mgr
  7. Manager started.

5)配置抽取进程

[sql] view plain copy

  1. GGSCI (hadooptest05) 4> edit param mce1
  2. extract mce1
  3. sourcedb [email protected]:3306 userid ogg password ogg
  4. exttrail /home/goldengate/dirdat/me
  5. discardfile  /home/goldengate/dirrpt/mce1.dsc,append
  6. TranLogOptions AltLogDest /home/mariadb/data/binlogs.index
  7. table o2m-mc.GMQDSJSP;
  8. GGSCI (hadooptest05) 5> add extract mce1,tranlog,begin now
  9. GGSCI (hadooptest05) 6> add exttrail /home/goldengate/dirdat/me,extract mce1
  10. GGSCI (hadooptest05) 7> start mce1




6)配置传递进程

[sql] view plain copy

  1. GGSCI (hadooptest05) 8> edit param mcp1
  2. extract mcp1
  3. passthru
  4. sourcedb [email protected]:3306 userid ogg password ogg
  5. rmthost  192.168.68.14,mgrport 7809,compress
  6. rmttrail  /home/goldengate/dirdat/mp
  7. dynamicresolution
  8. numfiles 3000
  9. table o2m-mc.GMQDSJSP;
  10. GGSCI (hadooptest05) 9> add extract mcp1,exttrailsource /home/goldengate/dirdat/me
  11. GGSCI (hadooptest05) 10> add rmttrail /home/goldengate/dirdat/mp,extract mcp1
  12. GGSCI (hadooptest05) 11> start mcp1



7)创建表的定义文件

[sql] view plain copy

  1. #创建参数文件
  2. GGSCI (hadooptest05) 10>  edit param defgen
  3. defsfile ./dirdef/gmqdsjsjp.def
  4. sourcedb [email protected]:3306 userid ogg, password ogg
  5. table o2m-mc.GMQDSJSP;
  6. #生成表定义文件
  7. ./defgen paramfile ./dirprm/defgen.prm
  8. #传至目标库目录
  9. scp /home/mysql/goldengate/dirdef/gmqdsjsjp.def 192.168.68.14:/home/goldengate/dirdef/

3、目标库

1)创建用户

[sql] view plain copy

  1. mysql> GRANT ALL PRIVILEGES ON `gmdc`.* TO ‘ogg‘@localhost  IDENTIFIED BY ‘ogg‘;
  2. mysql> GRANT ALL PRIVILEGES ON `gmdc`.* TO ‘ogg‘@‘%‘  IDENTIFIED BY ‘ogg‘;

2)同样解压安装并创建目录

[sql] view plain copy

  1. unzip ggs_121210_Linux_x64_MySQL_64bit.zip -d /home/goldengate
  2. cd /home/goldengate
  3. tar xvf ggs_Linux_x64_MySQL_64bit.tar
  4. ./ggsci
  5. GGSCI (db) 1> create subdirs
  6. Creating subdirectories under current directory /home/goldengate
  7. Parameter files                /home/goldengate/dirprm: already exists
  8. Report files                   /home/goldengate/dirrpt: created
  9. Checkpoint files               /home/goldengate/dirchk: created
  10. Process status files           /home/goldengate/dirpcs: created
  11. SQL script files               /home/goldengate/dirsql: created
  12. Database definitions files     /home/goldengate/dirdef: created
  13. Extract data files             /home/goldengate/dirdat: created
  14. Temporary files                /home/goldengate/dirtmp: created
  15. Credential store files         /home/goldengate/dircrd: created
  16. Masterkey wallet files         /home/goldengate/dirwlt: created
  17. Dump files                     /home/goldengate/dirdmp: created

3)配置管理进程

[sql] view plain copy

  1. GGSCI (db) 3>  edit params mgr
  2. port 7809
  3. dynamicportlist 7840-7939
  4. autorestart er *, retries 5, waitminutes 3
  5. purgeoldextracts /home/goldengate/dirdat/*,usecheckpoints, minkeepdays 2
  6. GGSCI (db) 4> start mgr
  7. Manager started.

4)添加检查点表

[sql] view plain copy

  1. GGSCI (db) 5>  dblogin sourcedb [email protected]:3306 userid ogg password ogg
  2. GGSCI (db DBLOGIN as ogg) 6>  add checkpointtable gmdc.checkpoint
  3. GGSCI (db DBLOGIN as ogg) 7>  edit params ./GLOBALS
  4. checkpointtable gmdc.checkpoint

5)配置应用进程

[sql] view plain copy

  1. GGSCI (db) 1>  edit params mcr1
  2. replicat mcr1
  3. targetdb [email protected]:3306 userid ogg password ogg
  4. handlecollisions
  5. sourcedefs /home/goldengate/dirdef/gmqdsjsp.def
  6. discardfile /home/goldengate/dirrpt/mcr1.dsc,purge
  7. map o2m-mc.GMQDSJSP, target gmdc.GMQDSJSP;
  8. GGSCI (db) 2> add replicat mcr1,exttrail /home/goldengate/dirdat/mp,checkpointtable gmdc.checkpoint
  9. GGSCI (db) 3> start mcr1

4、测试数据同步

注意:mysql中表的大小注意区分

info mgr  //查看启动信息

时间: 2024-08-10 01:26:34

Goldengate完成Mysql到Mysql的数据同步的相关文章

【转】mysql数据库读写分离数据同步

转载请注明来源:mysql数据库读写分离数据同步 mysql数据库读写分离数据同步 我是用了两个xp(一个主的,一个从的)的系统测试成功的,linux系统我也做测试了,没有成功,不过我想我所遇到的问题是同一个问题,xp下的可以成功,linux下的应该也可以成功,稍候会测试,然后更新结果! PS:刚测试了下linux 可以同步成功,主服务器是xp,从服务器是centos,可以成功. 例: A机器 192.168.0.2 B机器 192.168.0.3 两个机器可以ping通,互相访问 先配置主服务

TiDB 作为 MySQL Slave 实现实时数据同步

由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性下使用 TiDB 对现有的业务进行备份,应对未来数据量或者并发量增长带来的单点故障风险,如需上线 TiDB,也只需要简单的将业务的主 MySQL 地址指向 TiDB 即可. 下面我们详细介绍了如何将 MySQL 的数据迁移到 TiDB,并将 TiDB 作为 MySQL 的 Slave 进行数据同步.

Mysql主从复制,实现数据同步

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想.这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力.Ok切入今天微博主题,利用MySQL主从配置,实现读写分离,减轻数据库压力.这种

通过Gearman实现MySQL到Redis的数据同步

对于变化频率非常快的数据来说,如果还选择传统的静态缓存方式(Memocached.File System等)展示数据,可能在缓存的存取上会有很大的开销,并不能很好的满足需要,而Redis这样基于内存的NoSQL数据库,就非常适合担任实时数据的容器. 但是往往我们又有数据可靠性的需求,采用MySQL作为数据存储,不会因为内存问题而引起数据丢失,同时也可以利用关系数据库的特性实现很多功能. 所以就会很自然的想到是否可以采用MySQL作为数据存储引擎,Redis则作为Cache.而这种需求目前还没有看

mysql主主-配置数据同步

1.数据库同步设置 主机操作系统:Centos 6.2 数据库版本:mysql  Ver 14.14 Distrib 5.1.73 前提:MYSQL数据库正常启动 ServA:122.112.x.x ServB:211.101.x.x 1.1 配置同步账号 在ServA上增加一个ServB可以登录的帐号: Mysql>grant replication slave on  *.* TO [email protected]'211.101.x.x' IDENTIFIED BY '123.com';

MySQL数据库跨服务器数据同步

1.背景介绍最近公司项目要求与开源项目Zentao做数据对接,因为改动开源项目风险较大,采用将Zentao数据库的相关表与本地数据库同步的方案.由我测试方案的可行性.mysql版本:5.7.20.本地数据库A(作为Zentao数据库),本地数据库B,本地程序C:本地为Windows环境. 2.方案探索方案1项目经理的意思是在A中写触发器,表中数据变化时将ID发给C,由C在A中查询变化的数据,写入B.过程中需要安装mysql-udf-http插件(参考:https://www.2cto.com/d

GoldenGate架构下oracle与oracle数据同步

GoldenGate架构下oracle与oracle数据迁移 主机updba上scott用户下数据同步到主机upgg上scott. 1: updba和upgg上scott数据一致.(可通过迁移实现) 2: 并在两个主机上分别安装GG软件.创建管理用户ggm授权. 3:配置manager管理进程 GGSCI>edit params mgr port 7809 GGSCI>info mgr GGSCI>start mgr GGSCI>info mgr 4: 配置DML同步 4.1 抓取

使用Goldengate 实现Oracle for Oracle 单向数据同步

实验环境 数据源端:  host1 ip 192.168.199.163 数据目标端: host2 ip 192.168.199.104 两台机器都安装 http://lqding.blog.51cto.com/9123978/1694971 文中描述安装配置好了Goldengate . 要实现数据的同步,Oracle源端必须满足如下设置 Oracle需要运行在归档模式下 SQL> startup mount  ORACLE instance started. Total System Glob

redis与mysql数据同步

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql,此种情况存在的问题主要是如何保证mysql与redis的数据同步, 二者数据同步的关键在于mysql数据库中主键,方案是在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主 键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键. 1 String tbname = "login"; 2 3 //获取mysql表主键值--redis启动时 4