mysql半同步主从复制

一、服务器版本

master: 5.7.42-log
slave:5.7.44

二、主机操作

1、安装半同步插件

# master
mysql > ​install plugin rpl_semi_sync_master soname 'semisync_master.so'; ​

2、配置

[mysqld]
log-bin=mysql-bin
server-id=1
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 1000 # 1 second
rpl_semi_sync_master_wait_for_slave_count=1
binlog_format=ROW          #复制模式
## 下面可选
max_binlog_size=100M         #超过max_binlog_size或超过6小时会切换到下一序号文件
log_bin=/var/lib/mysql/mysql-bin.log   #默认路径可修改
expire_logs_days= 7                           #日志过期时间,设置为0则永不过期
binlog_cache_size=16M           #二进制日志缓冲大小,通过show status like 'binlog_%';查看调整写入磁盘的次数,写入磁盘为0最好max_binlog_cache_size   = 256M
relay_log_recovery = 1            #当slave从库宕机后,假如relay-log损坏了,
#导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,
#并且重新从master上获取日志,这样就保证了relay-log的完整性。
sync_binlog= 1            #二进制日志(binary log)同步到磁盘的频率
innodb_flush_log_at_trx_commit = 1     #每次事务提交将日志缓冲区写入log file,并同时flush到磁盘。

3、重启服务

systemctl restart mysqld

4、创建用户

CREATE USER `rep_user`@`从机ip` IDENTIFIED BY 'password';
GRANT Replication Slave ON *.* TO `rep_user`@`从机ip`;

5、数据备份

为保证数据一致,建议锁表后,查询主机状态,备份完成后再解锁

# 锁表
mysql > flush tables with read lock;

# 查询状态
mysql > show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |       127|              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

数据备份

# 解锁
mysql > unlock tables;

三、从机操作

1、安装半同步插件

# slave
mysql >​install plugin rpl_semi_sync_slave soname 'semisync_slave.so';​

2、配置

[mysqld]
server-id=2
rpl_semi_sync_slave_enabled = 1
## 忽略表(可选)
replicate-wild-ignore-table=mysql.*
replicate-wild-ignore-table=sys.*

3、重启服务

systemctl restart mysqld

4、恢复数据

5、配置同步参数

mysql > CHANGE MASTER TO MASTER_HOST='主机ip',MASTER_PORT=3306, MASTER_USER='rep_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=127;

6、启动同步线程

mysql > start slave;

参考链接:
Mysql主从同步配置
mysql 5.7 开启半同步复制
MySQL备份与恢复

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值