blog » Database » mysql物理备份恢复表丢失
mysql物理备份恢复表丢失
所谓物理备份,即直接拷贝相关的文件而不是通过mysqldump的方法备份数据库。
还原时将相应的文件拷贝回数据库即可。
基本操作:
cp -r /var/db/mysql5/mydb ~/
之后换台机器再拷贝回去
cp -r mydb /var/db/mysql5/
通过如上的操作对于恢复MYISAM表没有问题,但是想恢复INNODB就危险了,我就遇上数据库中部分INNODB的表全不见了。
分析:
INNODB表的数据是根据配置存放在.ibd文件或者ibdata文件中。主要分为独享表空间和共享表空间的存储方式。使用独享表空间时,文件保存为.ibd,文件存放在数据库目录下(和Myisam一样)。当使用共享表空间时,文件保存在ibdata文件。该文件通过innodb_data_home_dir和innodb_data_file_path两个参数共同配置。如果是只拷贝了数据库目录,而同时innodb的相关文件没拷贝自然就会丢失表了。另外要注意的是即使是独享表空间的方式,也需要拷贝共享表空间配置的相关文件。因为.ibd只是存放表数据,索引数据以及UNDO信息,REDO信息和元数据都是在共享表空间的文件中。
解决:
拷贝所有innodb需要的文件,包括.idb和ibdata以及ib_logfile(用于innodb的日志文件)
相关文章:
RSS 2.0 | leave a response | trackback
发表评论