MySQL Slave警告:配置不保证在崩溃后中继日志信息将保持一致

时间:2013-03-05 10:09:43

标签: mysql replication

我想为 MySQL 5.6 设置一个新的复制从属设备。在CHANGE MASTER和启动从站之后,我在错误日志中看到了这一行:

[Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0

如果重要,这些设置包含在my.ini中:

skip-name-resolve
skip-host-cache

server-id = 111

report-host = myPC

relay-log-recovery

sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1

replicate-do-db = myDB

skip-slave-start

复制似乎有效,但这个警告很可怕。知道是什么让MySQL发出这个警告吗?

1 个答案:

答案 0 :(得分:9)

警告大约是crash-safe replication,这是MySQL 5.6中添加的一项功能。这并不意味着任何可怕的事情发生(基本上,复制的工作方式与早期版本相同),但它通知您可以使用MySQL 5.6中的新功能集做得更好。

  

一个常见的请求是复制崩溃安全,即复制进度信息始终与实际应用于数据库的内容同步,即使发生崩溃也是如此。虽然如果服务器崩溃,事务不会丢失,但可能需要进行一些调整才能重新启动从属服务器。   [...]

     

防撞安全大师

     
      
  • 如果主机在旋转二进制日志时崩溃,则有可能某些孤立binlog文件最终出现在二进制日志索引文件中。这在5.1中得到了修复,但也是安全崩溃的难题之一。
  •   
  • 写入二进制日志不是原子操作,如果在写入二进制日志时发生崩溃,则二进制日志末尾可能会发生部分事件。
  •   
     

防撞安全奴隶

     
      
  • 如果复制信息和数据存储在同一个存储引擎中,它将允许将数据和复制位置更新为单个事务,这意味着它是崩溃安全的。
  •   
  • 如果复制信息和数据存储在不同的存储引擎中,但都支持XA,则它们仍可作为单个事务提交。   复制信息与事务数据一起刷新到磁盘。因此,将复制信息直接写入InnoDB重做日志并不能提供速度优势,但不会阻止用户轻松读取复制进度信息。
  •   
  • 可以使用SQL命令从正常会话中读取表,这也意味着它可以合并到存储过程和存储函数之类的内容中。
  •   

有关操作和设置说明的详细信息,请参阅参考博客文章和MySQL documentation