专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

MySQL ogg的搭建及使用 mysqlmgr搭建

ins518 2024-11-11 13:09:43 技术文章 15 ℃ 0 评论

背景

ogg是基于日志的结构化数据复制软件.支持异构同构数据库的数据复制.这篇文章我主要分享ogg for MySQL的使用及搭建.


ogg 架构

ogg中主要有三个进程

Manager(MGR) 管理进程 (源端,目标端都有)

Manager进程是GoldenGate的控制进程,运行在源端和目标端上。它主要作用有以下几个方面:启动、监控、重启Goldengate的其他进程,报告错误及事件,分配数据存储空间,发布阀值报告等。在目标端和源端有且只有一个manager进程

Extract 数据抽取进程(源端)

Extract运行在数据库源端,负责从源端数据表或者日志中捕获数据。Extract的作用可以按照阶段来划分为:

    • 初始时间装载阶段:在初始数据装载阶段,Extract进程直接从源端的数据表中抽取数据
    • 同步变化捕获阶段:初始数据同步完成以后,Extract进程负责捕获源端数据的变化(DML和DDL)

Pump 数据发送进程(源端)

其作用是将源端产生的本地trail文件,把trail以数据块的形式通过TCP/IP 协议发送到目标端,这通常也是推荐的方式。pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在抽 取完数据以后,直接投递到目标端,生成远程trail文件

Replicat进程 数据复制进程(目标端)

通常我们也把它叫做应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或 DDL语句,然后应用到目标数据库中

ogg for mysql的搭建

下载ogg软件:

https://www.oracle.com/middleware/technologies/goldengate-downloads.html
需要注册一个oracle账户.很简单.如果不想填自己真实信息.就随便填写一下
ogg官方文档
https://docs.oracle.com/en/middleware/goldengate/core/index.html

初始化ogg 源端目标端都操作

下载好ogg软件并解压
mkdir /soft 创建对应目录
cd /soft/
rz 
unzip
unzip 21.1.0.0.1_ggs_Linux_x64_MySQL_64bit.zip
mkdir ogg
tar xf ggs_Linux_x64_MySQL_64bit.tar -C ogg/
cd ogg/
  
进入ogg目录执行
[root@db02 ogg]# pwd
/soft/ogg
[root@db02 ogg]# ./ggsci 
GGSCI (db02) 1> 
  
然后输入create subdirs 命令创建相关子目录
GGSCI (db02) 1> create subdirs

源端目标端都操作:

开启mgr进程

GGSCI (ceshi) 25> edit param mgr


port 7809
CheckMinutes 20
purgeoldextracts ./dirdat/*, usecheckpoints, minkeepdays 2
AutoRestart Extract *, WaitMinutes 1, Retries 10

源端添加抽取进程:

#定义抽取进程名称
GGSCI (ceshi) 26> edit param exta

#定义抽取进程名称
extract exta
#指定OGG连接数据库的地址、账户与密码
SOURCEDB test@10.10.119.64:3306, USERID lzm, PASSWORD 123
SOURCEDB sbtest@10.10.119.64:3306, USERID lzm, PASSWORD 123
#定义抽取的binlog是远程抽取
TRANLOGOPTIONS ALTLOGDEST REMOTE
#指定trail文件写入的文件夹及文件名前缀
exttrail /soft/ogg/dirdat/vp
#定义discardfile文件位置,如果处理中有记录出错会写入到此文件中
discardfile  /soft/ogg/dirrpt/exta.dsc,append
#定义需要复制的表.多个表的话用分号分割
table test.test1;
table test.test2;
table sbtest.sbtest1;


GGSCI (localhost.localdomain) 5> add extract exta,tranlog,begin now  
EXTRACT added.

#添加抽取源文件位置和大小
GGSCI (localhost.localdomain) 6> add exttrail /soft/ogg/dirdat/vp,extract exta  
EXTTRAIL added.

start exta 开启抽取
stop exta 停止抽取
delete exta 删除抽取进程

源端添加投递进程

GGSCI (localhost.localdomain) 15> edit param dmpa 
#定义投递进程名
extract dmpa 
passthru 
#源端数据库地址、用户名 
sourcedb test@10.10.119.64:3306 userid lzm password 123  
#目标端地址
rmthost  10.10.119.63,mgrport 7809,compress 
# 指定目标端写入地址及文件
rmttrail /soft/ogg/dirdat/vp 
dynamicresolution  
numfiles 3000  
#投递的表
table test.test1;
table test.test2;
table sbtest.sbtest1;

GGSCI (localhost.localdomain) 16> add extract dmpa ,exttrailsource /soft/ogg/dirdat/vp  
EXTRACT added.  --这里的数据路径是源端的抽取进程的数据目录

GGSCI (localhost.localdomain) 17> add rmttrail /soft/ogg/dirdat/vp,extract dmpa 
RMTTRAIL added. --这里的路径是目标端的数据路径

start dmpa 开启投递

查看进程状态

GGSCI (ceshi) 28> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     DMPA        00:00:00      00:00:06    
EXTRACT     RUNNING     EXTA        24:00:02      00:00:06    

如果状态是abend或者stop 去查看对应日志
[root@db02 ogg]# tail -f /soft/ogg/ggserr.log

目标端操作

配置应用进程Repicat

GGSCI (slavedb DBLOGIN as ogg) 13> edit params repa
#定义应用进程名称
replicat repa 
#配置目标端数据库地址、用户名和密码
targetdb test@10.10.119.63:3306 userid lzm password 123  
handlecollisions  
#定义discardfile文件位置,如果处理中有记录出错会写入到此文件中,建议参数值1024m  
discardfile /soft/ogg/dirrpt/repa.dsc,purge
#用于指定源端与目标端表的映射关系  
map test.test1   target test.test1
 
GGSCI (slavedb DBLOGIN as ogg) 16> add replicat repa,exttrail /ogg/dirdat/da,nodbcheckpoint
REPLICAT added.

start repa 开启复制进程
查看进程状态
GGSCI (db02) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
REPLICAT    RUNNING     REPA        00:00:00      00:00:00    

总结

这篇文章主要分享了ogg for mysql的搭建及使用

借鉴: https://segmentfault.com/a/1190000040219830

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表