mysql slave 宕机_mysql主从服务器slave宕机后复制中断处理

基于docker搭建的mysql主从数据库模拟模拟宕机后数据恢复

生产环境中不可避免会出现MySQL服务宕机的情况,常见的场景如下:

对于单一服务器结构一般通过设置sync_binlog=1与innodb_flush_log_at_trx_commit = 1(这两个选项可在提交事务之前启用二进制日志到磁盘的同步,从而保证了数据的安全性,如果发生电源故障或操作系统崩溃,二进制日志中缺少的事务将仅处于准备状态。这允许自动恢复例程回滚事务,从而保证二进制日志中不会丢失任何事务),可保证数据不丢失。

对于主从结构的mysql而言,不但要保证master的数据完整性与安全,同时也要保证slave的数据完整与安全。如果其中任意一台服务器宕机,如何保证slave服务器数据的同步不受影响呢?

关于mysql主从结构数据会有以下问题:

(1)如何保证master的通知能有效到达slave?

(2)如何避免slave中继日志修改信息未刷新到磁盘时宕机,重新启动后slave不能正常工作?

通过以下测试流程模拟mysql宕机并查找问题:

事先启动搭建好的mysql主从服务

1、在master服务器的某个库中插入数据

INSERT INTO `rbac`.`think_user`(`u_id`, `u_name`, `u_password`, `register_time`, `is_delete`, `status`, `update_time`, `last_login_time`, `role_id`, `u_phone`, `u_email`) VALUES (26, 'aaaaaa', '123456', '2019-05-31 18:03:58', 1, 1, 1561384746, '2019-05-31 18:04:10', '1', NULL, NULL);

INSERT INTO `rbac`.`think_user`(`u_id`, `u_name`, `u_password`, `register_time`, `is_delete`, `status`, `update_time`, `last_login_time`, `role_id`, `u_phone`, `u_email`) VALUES (27, 'aaaaaa', '123456', '2019-05-31 18:03:58', 0, 1, 1561384674, '2019-05-31 18:04:10', '1', NULL, NULL);

INSERT INTO `rbac`.`think_user`(`u_id`, `u_name`, `u_password`, `register_time`, `is_delete&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值