在从属服务器上执行RESET SLAVE命令时,会发生哪些操作?
- RESET SLAVE命令会断开从属服务器与主服务器的连接,以重置从属服务器,具体效果如下:
- 清除 master.info和relay.log资料档案库
- 删除所有中继日志
- 启动新的中继日志文件
- 将CHANGE MASTER TO 语句中指定的任何MASTER_DELAY重置为零
- 会保留连接参数,以便可以在不执行CHANGE MASTER TO 的情况下重启从属服务器。但发出RESET SLAVE ALL时会重置连接参数。
在排除MySQL复制故障时,一般会从哪些维度或方向切入?
在解决MySQL复制故障时,通常考虑的因素如下:
- 查看错误日志,错误日志可以提供足够信息来确定和更正复制中的问题。
- 在主服务器上发出SHOW MASTER STATUS语句,检查master状态
- 在从属服务器上发送SHOW SLAVE STATUS命令
如果从属服务器运行正常,Slave_IO_Running和Slave_SQL_Running显示Yes
Last_IO_Error和Last_SQL_Error显示IO和SQL线程的最新错误信息
- 在主服务器和从属服务器上发送SHOW PROCESSLIST 命令,检查Binlog转储线程,I/O线程和SQL线程的状态
- 对于突然停止工作的从属服务器,检查最近复制的语句
- 如果操作因约束问题或其他错误而失败,则SQL线程会停止
- 错误日志会记录包含导致SQL线程停止的事件
- 再验证从属服务器数据没有被直接修改(复制以外的)