ITPub博客

首页 > 数据库 > MySQL > 推荐的复制配置

推荐的复制配置

原创 MySQL 作者:biggerl 时间:2015-08-12 18:35:49 0 删除 编辑

1、sync_binlog

sync_binlog = 1,如果开启该选项,mysql每次提交事务前会将二进制日志同步到磁盘上,保证服务器崩溃时不会丢失事件。

2、innodb_flush_logs_at_trx_commit = 0 | 1 | 2 

innodb_flush_logs_at_trx_commit:控制日志缓冲刷新的频繁程度。通常为2或者1
0:把日志缓冲写到日志文件,并且每秒刷新一次,但是事务提交时不做任何操作,会丢失1s的事件。
1:把日志缓冲写到日志文件,并且每次事务提交都刷新到持久化存储。这是默认的也是最安全的设置。
2:每次提交时把日志缓冲写到日志文件,但并不是刷新。
2与0最重要的区别是,如果mysql挂掉了,2不会丢失任何事务,如果整个服务器挂了or 断电,则还是可能丢失一些事务。

2与1的区别是,把日志缓冲写到日志文件和把日志缓冲刷新到持久化存储的区别。
在大部分操作系统中,把缓冲写到日志只是简单的把数据从innodb的内存缓冲转移到了操作系统的缓冲中。
当设置为1 时可能明显地降低innodb每秒可以提交的事务数。不为1 则可能会丢失事务。

3、innodb_support_xa = 1

默认为true,如果关闭则binlog记录事务的顺序可能与实际不符,造成slave不一致

If you turn it off, transactions can be written to the binary log in a different order from the one in which the live database is committing them. This can produce different data when the binary log is replayed in disaster recovery or on a replication slave. Do not turn it off on a replication master server unless you have an unusual setup where only one thread is able to change data.


4、备库上

relay_log=/path/relay-bin    为中继日志指定绝对路径和名称
skip_slave_start 阻止备库在崩溃后自动启动复制。
read_only     阻止大部分用户更改非临时表。

备库可能在崩溃后被中断,因为master.info和中继日志都不是安全的。默认情况下甚至不会刷新到磁盘。
sync_mater_info = 1
sync_relay_log = 1
sync_relay_log_info =1
如果备库和主库的延迟很大,备库的iO线程可能会写很多的中继日志,sql线程在重做完一个事件后尽快将其删除,
通过relay_log_purge选项来控制。

5、slave_skip_errors、binlog_rows_query_log_events

……
……







来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29974949/viewspace-1769586/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: GTID复制实现
请登录后发表评论 登录
全部评论

注册时间:2014-10-24

  • 博文量
    39
  • 访问量
    96957