恢复独立表空间的表
如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:
- 发出这个ALTER TABLE语句:
2. ALTER TABLE tbl_name DISCARD TABLESPACE;
警告:这个语句删除当前.ibd文件。
- 把备份的.ibd文件放回到恰当的数据库目录。
- 发出这个ALTER TABLE语句:
5. ALTER TABLE tbl_name IMPORT TABLESPACE;
在上下文中,一个.ibd文件干净的备份意为:
ibd文件里没有尚未提交的事务做的修改。
.ibd文件里无未合并的插入混充条目。
净化已经从.ibd文件移除所有已标注删除的索引记录。
mysqld已经把.ibd文件的所有已修改页面从缓冲池刷新到文件。
你可以用下列方法生成一个.ibd文件的干净备份:
- 停止所有来自mysqld服务器的活动,并提交所有事务。
- 等待直至SHOW INNODB STATUS显示在数据库被已经没有激活的事务,并且InnoDB主线程的状态是Waiting for server activity。然后你就可以复制.ibd文件了。
生成一个.ibd文件的干净复制的另一个方法是使用商业的InnoDB热备份工具:
- 使用InnoDB热备份工具备份InnoDB安装。
- 在备份上启动第二个mysqld服务器,让它清洁备份里的.ibd文件。
» 转载保留版权:老陈 » 《恢复独立表空间的表》» 如果喜欢可以: 点此订阅本站