LINUX 环境 mysql to mysql OGG安装配置(二)

来源:这里教程网 时间:2026-03-03 18:20:09 作者:

五、     配置挖掘、传输进程

配置挖掘进程

# ./ggsci

dblogin sourcedb testdb@192.168.14.51:3306,userid odc,password odc

add extract ext_my,tranlog,begin now

add exttrail ./dirdat/my,extract ext_my

edit param ext_my

extract ext_my

setenv (MYSQL_HOME="/mysql/app/")

tranlogoptions altlogdest "/mysql/product/data/mysql-bin.index"

sourcedb testdb@192.168.14.51:3306,userid odc,password odc

exttrail ./dirdat/my

gettruncates

table testdb.*;

 

配置传输进程

# ./ggsci

dblogin sourcedb testdb@localhost:3306,userid odc,password odc

add extract dmp_my,exttrailsource ./dirdat/my

add rmttrail ./dirdat/my,extract dmp_my

edit param dmp_my

extract dmp_my

rmthost 192.168.14.52,mgrport 7809

rmttrail ./dirdat/my

passthru

gettruncates

table testdb.*;

 

我们稍后目标端安装完软件再启动。

 

六、     目标端安装软件

目标端软件的安装方法与 四、源端安装软件 完全一致。

 

 

七、     配置应用进程

配置应用进程

dblogin sourcedb testdb@192.168.14.52:3306,userid odc,password odc

add replicat rep_my exttrail ./dirdat/my checkpointtable ogg.ggs_checkpoint

edit param rep_my

replicat rep_my

targetdb testdb@192.168.14.52:3306,userid odc,password odc

--HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/my.dsc,append,megabytes 50

map testdb.*, target testdb.*;

 

 

八、     初始化数据

导出testdb

mysqldump -uroot -pmysql --single-transaction --master-data=2 -E -R --databases testdb > testdb.sql

 

导入testdb

# mysql -uroot -pmysql

mysql> source /tmp/testdb.sql

 

找到二进制日志点位

# more testdb.sql |grep MASTER_LOG_FILE

-- CHANGE MASTER TO MASTER_LOG_FILE=' mysql-bin.000003', MASTER_LOG_POS= 810;

 

启动进程

alter extract ext_my,lognum 3,logpos 810

启动挖掘进程

# ./ggsci

start ext_my

 

如果启动时报错:

2022-04-22T16:49:09.680+0800  WARNING OGG-00769  Oracle GoldenGate Capture for MySQL, ext_my.prm:  MySQL Login failed: . SQL error (2002).  Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2).

2022-04-22T16:49:09.680+0800  ERROR   OGG-00770  Oracle GoldenGate Capture for MySQL, ext_my.prm:  Failed to connect to MySQL database engine for HOST localhost, DATABASE testdb, USER odc, PORT 3306.

则创建一个软连接,再次启动即可

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

 

启动传输进程

# ./ggsci

start dmp_my

 

启动应用进程

# ./ggsci

start rep_my

 

至此,MySQL to MySQL 的同步就实施完成了。

 

九、     注意事项

更改二进制日志位置

修改MySQL 配置文件中的log-bin 变量来修改二进制日志位置可能会导致二进制日志索引文件中有两个不同的路径,这将会导致OGG 异常。

1.    所以更改二进制日志位置需要以下步骤:

2.    停止任何新的DML 操作。

3.    Extract 完成所有现有二进制日志的处理。

4.    停止Extract 组。

5.    停止MySQL 数据库。

6.    修改log-bin 参数。

7.    启动MySQL 数据库。

8.    使用flush master 或者reset master 从二进制日志索引文件中清除旧的日志条目。

9.    启动Extract

 

配置双向复制

在双向复制中,源系统和目标系统上都有Extract Replicat 进程,为了支持这种配置,每个Extract 必须能够过滤本地Replicat 应用的事务,以便它们不会被重新捕获。此外,必须设置AUTO_INCREMENT ( 主键自增长) ,以便每个系统上的值之前没有冲突。

1.    要在双向复制中过滤掉Replicat 操作,请在每个MySQL 数据库上执行以下步骤:

l    为每个Replicat 配置使用检查点表。Replicat 在每个事务结束时会对该表进行检查点。

l    Extract 参数文件中使用TRANLOGOPTIONS FLITERTABLE 选项指定检查点表的名称。Extract 进程将忽略以对指定检查点表的操作结束的事务。

2.    编辑MySQL 配置文件设置auto_increment_increment auto_increment_offset 参数以避免双向操作引起的差异,假设有两个服务器ServerA ServerB:

l   ServerA:

auto_increment_increment = 2

auto_increment_offset = 1

 

自增长值为:1,3,5,7,9

l   ServerB:

auto_increment_increment = 2

auto_increment_offset = 2

 

自增长值为:2,4,6,8,10

 

参数解释:

auto_increment_offset: 自增长字段起始值

auto_increment_increment: 每次自增长值

 

远程捕获

1.    OGG 远程捕获用户授予访问权限

mysql > CREATE USER 'username'@'host' IDENTIFIED BY 'Password'; 

mysql > GRANT ALL PRIVILEGES ON *.* TO 'username'@'host’ WITH GRANT OPTION; 

mysql > FLUSH PRIVILEGES;

 

2.    远程MySQL 服务器的server_id 值应该大于0

mysql > show variables like 'server_id';

如果server_id 的值为0 ,修改my.cnf 以设置server_id 的值大于0.

 

 

 

相关推荐