Mysql主从同步的工作原理

  • 从库数据库目录下的文件
1. master.info    记录主库信息
2. 主机名-relay-bin.XXXXXX    中继日志文件,记录主库上执行过的sql命令
3. 主机名-relay-bin.index    索引文件,记录当前已有的中继日志文件
4. relay-log.info    中继日志文件,记录当前使用的中继日志信息
  • 从库IO线程和SQL线程的作用
IO线程    把主库binlog日志里的sql命令记录到本机的中继日志文件
SQL线程    执行本机中继日志文件里的sql命令,把数据写进本机

  • IO线程报错原因
1. 从库连接主库失败(ping、grant、firewalld、selinux)
2. 从库指定主库的日志信息错误(日志名、偏移量)
Last_IO_Error: 报错信息
  • 修改步骤
mysql> stop slave;
mysql> change master to 选项="值";
mysql> start slave;

  • SQL线程报错原因
执行本机中继日志文件里的sql命令,用到的库或表在本机不存在
Last_SQL_Error: 报错信息
  • 设置从库暂时不同步主库的数据
  • 在从库上把slave 进程停止 
mysql> stop slave;
  • 把从库恢复成独立的数据库服务器
]# rm -rf /var/lib/mysql/master.info
]# rm -rf 主机名-relay-bin.XXXXXX 主机名-relay-bin.index relay-log.info
]# systemctl restart mysqld

猜你喜欢

转载自blog.csdn.net/baidu_29120075/article/details/80845171