简短的问题:
在使用InnoDB引擎创建MySQL安装的自定义备份时跳过ib_logfile*文件安全吗?
定制备份只需将/var/lib/mysql + /etc/my.cnf全部(或子集)复制到安全位置。
据我所知,MySQL在start +上重新创建了ib_logfile*文件,这些文件真的很大,所以将它们存储在备份中可能并不明智。是的,假设在备份之前(正确地)停止了MySQL。
发布于 2008-11-19 02:23:06
以您所描述的方式备份数据库是不安全的。
原因是您无法知道某些数据页是否仍在MySQL服务器的内存中,等待I/O刷新到磁盘。因此,无论是否包含ib_log
文件,复制文件都很有可能复制垃圾文件。
不要做你正在做的事情。使用mysqlbackup
或InnoDB的Hot Backup产品。
编辑:
请阅读Farhan Mashraqi关于InnoDB Performance Optimization的博客文章,他在文章中说,如果您已经关闭了ib_log
服务器,您可以删除MySQL文件。
InnoDB日志大小调整:不像更改选项和重新启动那么简单。您需要关闭MySQL服务器,并确保其正常关闭(请查看错误日志以确认错误)。然后移走InnoDB日志文件ib_log*。然后启动MySQL服务器并检查错误日志文件,以查看它是否成功创建了新的日志文件。
所以,是的,您应该只能复制ibdata
文件的文件系统。您不需要包含ib_log
文件,因为它们应该在MySQL服务器启动时重新创建。但是,我重申,我不建议使用文件系统副本备份数据库。
假设您现在使用MySQL 5.0以这种方式备份数据库。有一天,您需要恢复备份,但到那时,您将使用一些未来的版本,例如MySQL 6.5。在该未来版本中,ib_data
文件是否仍使用相同的内部格式?MySQL 6.5会读取你今天备份的那些文件吗?你不能确定。备份格式旨在使其更易于移植。
https://stackoverflow.com/questions/298350
复制相似问题