以您描述的方式备份数据库是不安全的.
原因是您无法知道某些数据页是否仍在MySQL服务器的内存中,等待I / O刷新到磁盘.因此,无论是否包含ib_log文件,复制文件都很有可能复制垃圾.
不要做你正在做的事情.使用mysqlbackup或InnoDB的Hot Backup产品.
编辑:
阅读Farhan Mashraqi关于InnoDB Performance Optimization的博客文章,他说如果你关闭了MySQL服务器,你可以删除ib_log文件.
InnoDB log resizing: is not as simple
as changing option and restarting. You
need to shut down MySQL server and
make sure it shuts down normally
(check error log for errors to
confirm). Then move away InnoDB log
files ib_log*. Then start the MySQL
server and check error log files to
see if it successfully created new log
files.
所以,是的,您应该只能执行ibdata文件的文件系统副本.您不需要包含ib_log文件,因为它们应该在MySQL Server启动时重新创建.但是,我重申,我不建议使用文件系统副本备份数据库.
假设您使用MySQL 5.0以这种方式备份数据库.有一天你需要恢复备份,但到那时你将使用像MySQL 6.5这样的未来版本. ib_data文件在将来的版本中是否仍然使用相同的内部格式? MySQL 6.5会读取你今天备份的那些文件吗?你不能确定.备份格式旨在更加便携.