Windows环境下MySql5.7.20主主互备与过滤库表的配置方法,同步遇到错误的重配方法

前置条件: 相同网段下的两台win server 2019标准版, 网络与端口3306皆通, 都已解压免安装版的 MySql5.7.20, 且部署绝对路径完全相同, my.ini 文件完全相同

设第一台ip: 192.168.0.47, 设第二台ip: 192.168.0.49

一、配置步骤:

1. 修改增加47的my.ini文件如下, 保存并重启mysql服务

[mysqld]
# 配置主主互备,开启日志
log_bin = mysql-bin
# 配置唯一机器识别码
server-id = 1

2. 修改增加49的my.ini文件如下, 保存并重启mysql服务

[mysqld]
# 配置主主互备,开启日志
log_bin = mysql-bin
# 配置唯一机器识别码
server-id = 2

3. 给47和49分别加上一个专用于备份的账户, 并授予相应的权限

CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;

4. 在47和49上分别查看当前的二进制日志文件名和位置, 记下来一会儿用

SHOW MASTER STATUS;

5. 先后操作配置slave

  47配置如下, 以49为主库执行变更

CHANGE MASTER TO
MASTER_HOST='192.168.0.49',
MASTER_USER='replica',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='49记录的二进制日志文件名',
MASTER_LOG_POS=49记录的位置;

  49配置如下, 以47为主库执行变更

CHANGE MASTER TO
MASTER_HOST='192.168.0.47',
MASTER_USER='replica',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='47记录的二进制日志文件名',
MASTER_LOG_POS=47记录的位置;

6. 配置过滤条件和日志过期时间

  配置只同步某个库, 过滤该库某个表, 编辑my.ini, 添加修改如下, 修改完保存并重启mysql服务

  如果需要多个库或过滤多个表, 换行重写即可

# 仅同步的数据库
replicate-do-db = dbtest
# 需要过滤的,不需要同步的数据表
replicate-ignore-table = dbtest.sys_config
# 日志过期时间,不想存储爆炸的话,一定要配,我这边是只留30天
expire_logs_days = 30

7. 各自启动从库slave

# 按照刚刚做好的配置启动从库
START SLAVE;
# 查看从库运行情况
SHOW SLAVE STATUS\G

8. 检查主主互备是否成功, 使用相关数据库管理客户端修改未被过滤或被过滤的表, 发现另一个库已同步修改

二、当发生同步错误时,主主互备会产生失败,此时需要重新配置一次

因为之前已经完成过ip和账密的配置,重新配置只需要配置master_log_file和master_log_pos两个参

1. 先把两个主主互备的mysql暂停同步

# 暂停备份
STOP SLAVE;

2. 先后操作配置slave

 47配置如下, 以49为主库执行变更

CHANGE MASTER TO
MASTER_LOG_FILE='49记录的二进制日志文件名',
MASTER_LOG_POS=49记录的位置;

  49配置如下, 以47为主库执行变更

CHANGE MASTER TO
MASTER_LOG_FILE='47记录的二进制日志文件名',
MASTER_LOG_POS=47记录的位置;

3. 各自启动从库slave

# 按照刚刚做好的配置启动从库
START SLAVE;
# 查看从库运行情况
SHOW SLAVE STATUS\G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值