7 x 24 在线支持!
MySQL 物理备份恢复到非空数据目录后的多个InnoDB损坏或崩溃
适用于:
MySQL企业版备份版本3.5及以上
MySQL服务器版本4.0及以上
本文信息适用于所有平台。
症状
InnoDB引擎依赖于数据和日志文件的逻辑一致性。
InnoDB可能会遇到不可预知的行为,包括与来自不同环境的混合的文件损坏有关的崩溃和错误。
一个错误的例子:
2015‐03‐18 11:24:44 11904 [Note] InnoDB: Database was not shutdown normally!
2015‐03‐18 11:24:44 11904 [Note] InnoDB: Starting crash recovery.
2015‐03‐18 11:24:44 11904 [Note] InnoDB: Reading tablespace infor mation from the .ibd
files…
2015‐03‐ 18 11:24:44 11904 [ERROR] InnoDB: Attempted to open a previously opened
tablespace. Previous tablespace test/t uses space ID: 3695 at filepath: ./test/t.ibd.
Cannot open tablespace test/#sql2‐1ab0‐5 which uses space ID: 3695 at filepath:
./test/#sql2‐1ab0‐5.ibd
2015‐03‐18 11:24:44 7fe 914a04720 InnoDB: Operating system error number 2 in a file
operation.
InnoDB: Th e error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must creat e
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: Error: could not open single‐table tablespace file ./test/#sql2‐1ab0‐5.ibd
原因
备份被还原到有有旧的InnoDB数据或日志文件的目录中。
解决方案
保证InnoDB文件之间的一致性最简单的方法就是将备份恢复到空目录中。
MySQL Enterprise Backup (MEB) – 执行恢复操作:
Important
- 当执行一个完整的恢复(例如,当备份数据被用来建立一个新的MySQL服务器或用于替换现有MySQL服务器的所有数据),确保目标数据目录都是干净的,不含旧的或不需要的数据文件(这可能需要手动删除文件位置,通过– datadir 和 –innodb_data_file_path两个选项);否则,将–force选项添加到restore命令来覆盖旧数据。使用–use-tts选项创建的备份恢复不需要同样的清理(在这种情况下,其他要求在第1.4节,“恢复备份创建与–use-TTS选项”应用),通常对恢复部分备份没有必要。
参考
http://dev.mysql.com/doc/mysqlenterprisebackup/en/restore.restore.html
Keywords
CRASH; DATABASE; ERROR; MYSQL; RESTORE