阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL数据库多源复制方案

132次阅读
没有评论

共计 1791 个字符,预计需要花费 5 分钟才能阅读完成。

概述

由于目前生产环境的 MySQL 数据库分布在两台服务器,若从单一主从来看,配置很简单,但是需要将两台服务器的数据库同步到一台从库上面,需要进行更多配置和注意事项。多源复制有两种方案,Binlog+Position 和 GTID,我们采用的是第一种方案 Binlog+Position 进行的多源复制。

安装 mysql

在从库的服务器上安装 mysql-5.7 版本的,目前只有 mysql5.7 以上的版本才支持多源复制。

配置 mysql

1、配置两台 master 的 mysql

在 my.cnf 配置文件中增加或修改以下参数:

server_id = 90

log_bin = master_1

log-bin-index = master_1.index

2、配置 slave

在 my.cnf 配置文件中增加或修改以下参数

server_id = 92

relay_log = slave

relay_log_index = slave.index

master-info-repository = TABLE

relay-log-info-repository = TABLE

replicate_ignore_db = mysql

开始配置多源主从复制

1、设置 master

在 master 新建 slave 复制用户:

grant replication slave,replication client on *.* to repl@’192.168.2.92′ identified by ‘repl’;

flush privileges;

分别进入两台 master 的 mysql 终端执行以下命令将 mysql 进行锁表操作

flush tables with read lock;

然后执行 show master status; 获取 master 的 log_bin_file 的文件名和 file_size。

分别导出两台 master 的 mysql 需要备份的数据库的结构和数据。

2、设置 slave

登入 slave 的 mysql 终端,新建需要备份的数据库(例:CREATE DATABASE `order_00` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;)

进入各个数据库导入 master 备份的数据库的结构和数据(所花时间长短取决于数据量的大小)。

在 slave 执行完以上步骤后开始配置从复制,先执行 stop slave; 然后 slave 复制 master 配置如下:

change master to master_host=’192.168.2.91′,master_port=3507,master_user=’repl’,master_password=’repl’,master_log_file=’master_91.000001′,master_log_pos=376 FOR CHANNEL ‘master_91’;

注意:需要分别配置两台 master,然后分别执行。

以上配置命令执行完成后,启动 slave 执行命令:start slave;

检查 slave 有没有启动成功:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上两项为 yes 代表配置多源主从复制成功。

最后分别在 master 库执行命令 unlock tables; 解除锁表。

测试

分别在两台 master 中的数据库中抽查几个数据库进行新建数据表和数据,对 master 的新建表数据进行手动增删改查,然后查询 slave 有没有进行同步,若和 master 的数据一致,则表示多源主从复制成功,若没有同步则不成功,不成功从第一步开始检查。

注意事项

1、遇到 Slave_IO_Running: connection 的时候,检查 master 和 slave 的防火墙,若防火墙没有问题,检查 change master 配置的时候 IP,port,user,pwd 等。

2、遇到 Slave_IO_Running: Yes,Slave_SQL_Running: Yes 都是 yes 却数据不同步的时候检查 my.cnf 配置文件中 replicate-do-db 参数。可以将其注释或者分库单独写。

3、一定要在 master 锁表后才能进行数据的导出,不然可能会导致主从数据不一致。

4、再所有步骤完成后一定要解除 master 的锁表,不然 master 插入数据会报错。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150322.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1791字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中