您的位置:首页 > 数据库 > MySQL

MySql innodb 数据库备份和迁移

2012-11-12 14:09 239 查看
首先说明, 这个题目有点大,题目与实际内容不符。

最近几天,在进行数据融合处理时,需要对innodb表(数据以多表形式进行存储,由共享表转为多表,网上资料比较多,不再赘述)的数据进行频繁备份和替换,涉及到innodb数据库表的备份处理。

通过查阅mysql的官方文档,给出两种备份方式:单表备份和使用商业软件进行备份。付费的就不扯了,这里说一下单表备份和恢复的流程:

备份操作:

1。 copy文件*.ibd 和*.frm ,放置到安全环境中进行备份。

恢复时进行如下操作:

2。 执行操作: ALTER TABLE tbl_name DISCARD TABLESPACE;

3。 把之前安全备份的文件*.ibd, *.frm,copy到数据库的相应目录,然后执行:

4。 执行操作: ALTER TABLE tbl_name IMPORT TABLESPACE;

这种处理方式,有个局限就是,只能在相同的DB上进行操作,原来的数据库一旦删除,备份的文件便不能再以如上流程恢复。

如果要对innodb数据库进行备份,流程如下:

1. 关停mysql service; service mysqld stop;

2. copy 所有的*.ibd, *.frm,以及共享表和log文件ibdata*, iblog*,进行安全备份;

3. 进行恢复时, 关停service,并用备份文件将当前数据库文件进行替换,然后重启service即可。

在网上还有一种人工干预方式,恢复单表数据的方式,详细内容见链接:http://www.chriscalender.com/?tag=got-error-1-from-storage-engine

如果您有好的方式,欢迎交流,f1_star@163.com;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: