我在x86系统上运行了一个具有MySQL InnoDB数据库的应用程序。这个应用程序每天和昨天存储许多行,由于停电,我经历了一天的数据回滚。简单地说,我有一个漏洞前一天的电力故障,我肯定有很多数据之前,电力故障,因为我检查备份转储。
涉及提交的数据和这么多行的电源故障怎么可能发生呢?是因为innodb的日志结构吗?我可以在MySQL配置中做一些事情(希望避免电源故障)吗?
我的配置是在x64 7环境中的标准默认配置。
发布于 2017-10-14 05:35:08
我非常肯定,回滚是由自动Windows 7系统恢复后,电源故障。这恢复了mysql数据文件夹。我无法理解OS还原如何将文件从其他应用程序中移除,因为我使用的是mysql的自定义路径:c:\mysqldata,而不是标准的c:\programData\Mysql\...。我的解决方案是禁用窗口还原,但我认为可以是一个更好的解决方案。
问题是Mysql/MariaDB的IBD数据文件,它们是一个“监视扩展”,Windows在卷中的任何地方都会回滚它们。
切换innodb_file_per_table选项似乎解决了这个问题,因为新表(只有新表)不会使用IBD文件。
https://dba.stackexchange.com/questions/187500
复制相似问题