数据库的数据一致
分类:
文章
•
2022-10-11 13:28:19
数据库主备一致
流程
- 备库b通过change master命令,设置主库的ip host,用户名,密码,偏移量等,
- 备库b执行start slave命令,备库开启两个线程,io-thread和sql-thread,io负责连接
- 主库a验证用户名,密码之后,去binlog以偏移量为起点开始读,发给b
- 备库b那个binlog之后,写到本地文件,为relay log(中转日志)
- 备库的sql-thread开始读relay-log,解析执行
binlog的三个格式区别
- row:记录每条sql执行影响的数据
- statement:记录每条执行的sql(备份或者回退都有语义问题和上下文问题)
mysql> show binlog events in ‘master.000001’;//查看记录
- mixed:mysql自己区别语义是否用row还是statement,
可以使用mysqlbinlog工具来查看binlog的内容
循环复制
主备切换流程(双主模式)
- 两个库有自己独有的server id,和另外一个库不相同
- 库a同步数据到库b,binlog里面带有a的server id
- 库b读到server id,判断是否和自己的server id一样,不一样则同步,然后再同步给库a
- 库a读到server id,和自己一样,不写,循环结束