我们是否需要在生产数据库(MySQL / InnoDB)上使用障碍?

即使我们使用启用了屏障的日记文件系统(EXT3),这仍然是更安全和推荐的吗?

例如

mount -o barrier=1 /dev/sda /mntpnt

参考:

> http://lwn.net/Articles/283161/
> https://serverfault.com/questions/403891/journaled-filesystems-and-power-failure

解决方法:

是的,它总是更安全.认为实际上腐败的可能性很低.当文件系统损坏时,修复它很可能会成功.符合ACID标准的数据库(如InnoDB)也会执行fsyncs / barrier以确保提交的更改永久存储在磁盘上.

不要忘记,在生产环境中,您应该使用使用冗余PSU和UPS的高质量服务器,因此您实际需要该期刊的机会已经相当小.

不启用它的原因可能是性能.当然,这只会影响写入性能.但是应该测量这些类型的东西,因为它们高度依赖于您的硬件.例如,当在raid控制器上运行带有电池支持的写缓存时,由于控制器的写回缓存,性能损失将达到零.

总而言之,我认为风险非常小,但这取决于利害攸关的问题.就个人而言,我认为如果风险高到足以保证这一点,你应该考虑复制到第二台服务器.您已经在进行定期备份了.

BTW:fsync在ext3上效率低,因为它总是同步所有文件!符合ACID标准的数据库往往会做很多fsyncs,所以如果可以,最好使用ext4.

上一篇:linux – 根据机器的部分硬件组件生成密钥(数字?)


下一篇:如何在localhost上使用php获取硬盘序列号