必须采取哪些步骤来确保默认configuration的InnoDB服务器真正符合ACID标准? InnoDBconfiguration页面提到硬件本身必须configuration为实现fsync调用,即禁用任何写回caching。
这个页面提到了一些其他的问题,但是可能会混淆二进制日志和InnoDB日志,并且可能会过时地关于MySQL 5.x的默认设置。
在阅读二进制日志文档页面时,似乎一般不需要“sync_binlog = 1”的设置,只有ACID属性需要与时间点恢复和复制。
那么,禁用写回磁盘caching是否足够,还是有其他设置必须调整?
你问一个很难的问题。 以下是MySQL中的设置:
并从OS /文件系统/等:
禁用回写不一定会破坏ACID。 如果您的RAID控制器上有电池支持的写入caching,则不会这样做,并且写入容量会大幅增加。 需要注意的是,一些硬盘和固态硬盘(例如英特尔X-25)有自己的回写caching,即使你的RAID控制器是电池供电,他们肯定需要禁用。 设置O_DIRECT也将使您的操作系统和文件系统保持原样,让RAID控制器更有效地执行操作。
我通常使用这些设置来保证合理的可靠性
innodb_flush_method = O_DIRECT innodb_support_xa = 1 innodb-flush-log-at-trx-commit = 2