主备一致基本原理
状态1A主B备,从A更新同步到B。
需要主备切换的时候,B主A备。
备库要设置成只读:
- 运营类查询有时候需要放到备库上去查,设置只读防止误操作。
- 防止主备切换逻辑不一致,不只读容易出现双写。
- 通过只读状态可以判断出这个库是备库。
主库到备库的数据怎么同步的,单主模式
假设有一个更新语句,执行过程如上,其中主库内部又一个线dump_thread,专门用来服务备库的长连接。
一个事务日志同步的完整过程是这样的
- 备库B通过change master命令,设置主库的IP 端口 用户名 密码,以及从那个位置(包含文件名+日志偏移量)开始请求binlog
- 在备库B上执行start slave,启动Io_thread负责与主库建立连接。以及sql_thread。
- 主库A校验用户名密码。按照备库B传过来的位置,从本地读Binlog,发给B。
- 备库B拿到binlog,写道本地文件的中专日志 relay log
- 备库B的sql_thread读取中转日志,