【问题标题】:Innodb log flush to prevent data lossInnodb 日志刷新以防止数据丢失
【发布时间】:2014-02-19 22:15:51
【问题描述】:

我需要对我的 innodb 引擎具有高功率容错能力,并且我无法更改硬件配置。 你建议打电话吗

FLUSH ENGINE LOGS;

经过很重要的操作? 是否有助于防止因断电或进程崩溃而导致数据丢失?

【问题讨论】:

    标签: mysql logging innodb flush fault-tolerance


    【解决方案1】:

    使用FLUSH ENGINE LOGS 应该是不必要的。你的 MySQL/InnoDB 配置应该有:

    • innodb_flush_logs_at_trx_commit = 1
    • sync_binlog = 1

    除此之外,如果您的硬件不可靠,则无能为力。

    【讨论】:

    • 默认的“服务器机器”配置类型没有启用“sync_binlog”你建议启用它吗?有时在电源故障后,我发现很多数据丢失,不仅仅是上次服务器启动的数据,还有之前 3-4 次启动的数据......你认为使用这个选项可以避免这种情况吗?
    • 没有。 sync_binlog 标志只控制二进制日志是否刷新到磁盘。二进制日志用于复制,因此它们有助于复制不会因崩溃而完全中断。如果您看到数据丢失多达 3-4 次重新启动,这意味着数据永远不会同步到磁盘,我个人会寻找新的主机。
    • 我不能 :-) 这是一个客户端应用程序,有时我不能选择硬件...你能猜出这种同步缺失的原因吗?我确信这发生在一些电源故障之后,但我不明白为什么。我可以接受上次交易的数据丢失,但为什么是几天前的数据丢失?
    • 您必须指定正在运行的硬件和操作系统配置。这只会真正发生,因为数据没有按应有的方式刷新到磁盘中,在堆栈中的某个位置。
    • 我还在这里写了一个主题forums.mysql.com/read.php?22,604726,604726,但运气不佳...我在两台不同的 Win7 计算机中发现了这个问题,它们遭受了一些电源故障(标准计算机、无 RAID 或特定硬盘)。 Mysql 截断了一些数据,在日志中没有任何特别通知,我认为这是一种罕见的情况,但几个月后我在另一台具有相同断电历史的计算机上发现了同样的问题。
    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2021-04-13
    相关资源
    最近更新 更多