服务(第二十二篇)主从复制和读写分离

主从复制原理:

首先主节点会开启二进制日志,从节点会开启中继日志,从节点会开启io线程检测主节点是否有更新,如果更新了就会向主节点请求二进制事件,主会开启dump线程发送二进制事件,然后保存在从节点的中继日志中,然后从节点开启sql线程,进行获取和存放二进制事件,这就是主从复制。

复制类型:
基于语句复制、基于行复制、混合复制MIXED

复制类型的区别:
基于语句:会有数据丢失情况;传输效率高,减少延迟。表里有一百万条数据,一条sql更新了所有表,基于语句的复制仅需要发送一条sql,而基于行的复制需要发送一百万条更新记录
基于行:做查漏补缺用;安全性更好。

linux时间不准怎么办?
①使用ntp做服务时间同步
安装,修改配置文件,添加server ntp.aliyun.com iburst
②使用chrony做服务时间同步
安装,修改配置文件,添加server ntp.aliyun.com iburst

为什么主从复制有延迟?
①主服务器是多线程,从服务器的sql是单线程,从服务器可能跟不上处理速度
②主服务器负载
③从服务器负载
④网络延迟
⑤从服务器的硬件太差

怎么判断有没有网络延迟?
show slave status\G;查看seconds_behind_master 是否为0,正数是延迟,负数是bug

怎么解决延迟?
①从服务器放在局域网或者网络延迟低的
②更换硬件
③优化配置(双1等等)

主从数据不一致:

①如果业务上对数据要求不高,相差不大,忽略错误,继续同步。
②如果业务上对数据要求高,相差比较大,首先先停主服务器,然后完全备份在恢复到从服务器上,然后重启服务,继续同步。

实验:

①做时间同步:

主服务器的/etc/ntp.cnf里面添加配置,然后重启ntpd

 从服务器做时间同步:

也可以做个定时任务crontab -e

 

②配置主服务器:

1、做mysql的配置文件添加二进制日志,然后重启

 2、授权:

 3、查看日志文件和日志位置点

③配置从服务器:

1、 做mysql的配置文件添加二进制日志,然后重启

2、进入mysql,进行主从复制的信息校对,并开启服务

 3、查看从的状态,如果io线程和sql线程都是yes就成功了

 ④验证结果

在主服务器上做些简单的数据:

 去从的机子上查询:

 

一般 Slave_IO_Running: No 的可能性:
1、网络不通
2、my.cnf配置有问题(server-id重复)
3、密码、file文件名、pos偏移量不对
4、防火墙没有关闭

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值