Tobia Asked: 2017-10-03 23:17:55 +0800 CST2017-10-03 23:17:55 +0800 CST 2017-10-03 23:17:55 +0800 CST 能断电回滚多天的mysql innodb数据库吗? 772 我有一个在带有 MySQL InnoDB 数据库的 x86 系统上运行的应用程序。这个应用程序每天存储很多行,昨天,由于电源故障,我经历了一整天的数据回滚。简单地说,我有一个停电前一天的数据漏洞,我确定停电前有很多数据,因为我检查了备份转储。 断电怎么会涉及数据提交和这么多行?是因为innodb的日志结构?我可以在 MySQL 配置中做些什么吗(希望避免电源故障)? 我的配置是 Windows x64 7 环境中 mysql 安装程序的标准默认配置。 mysql innodb 1 个回答 Voted Best Answer Tobia 2017-10-14T21:35:08+08:002017-10-14T21:35:08+08:00 我很确定回滚是在断电后由自动Windows 7 系统还原完成的。这恢复了 mysql 数据文件夹。我无法理解操作系统还原如何从其他应用程序移动文件,即使我使用的是 mysql-data: 的自定义路径,c:\mysqldata而不是标准的c:\programData\Mysql\.... 我的解决方案是禁用 Windows 还原,但我认为这是更好的解决方案。 编辑 问题是 Mysql/MariaDB 的 IBD 数据文件,这些是“受监控的扩展”,Windows 将它们回滚到卷中的任何位置。 编辑2 似乎将 innodb_file_per_table 选项切换为 OFF 解决了这个问题,因为新表(只有新表)不会使用 IBD 文件。
我很确定回滚是在断电后由自动Windows 7 系统还原完成的。这恢复了 mysql 数据文件夹。我无法理解操作系统还原如何从其他应用程序移动文件,即使我使用的是 mysql-data: 的自定义路径,
c:\mysqldata
而不是标准的c:\programData\Mysql\...
. 我的解决方案是禁用 Windows 还原,但我认为这是更好的解决方案。编辑
问题是 Mysql/MariaDB 的 IBD 数据文件,这些是“受监控的扩展”,Windows 将它们回滚到卷中的任何位置。
编辑2
似乎将 innodb_file_per_table 选项切换为 OFF 解决了这个问题,因为新表(只有新表)不会使用 IBD 文件。