当前位置:  开发笔记 > 后端 > 正文

在备份中包含ib_logfiles?

如何解决《在备份中包含ib_logfiles?》经验,为你挑选了1个好方法。

简短的问题:
在使用InnoDB引擎创建MySQL安装的定制备份时,是否安全跳过ib_logfile*文件?

定制备份只是将/ var/lib/mysql + /etc/my.cnf的所有(或子集)复制到安全的地方.

据我所知,ib_logfile*文件是由MySQL在启动时重新创建的+文件非常庞大,因此将它们存储在备份中可能并不明智.是的,假设MySQL在备份之前(正确)停止了.



1> Bill Karwin..:

以您描述的方式备份数据库是不安全的.

原因是您无法知道某些数据页是否仍在MySQL服务器的内存中,等待I/O刷新到磁盘.因此,无论是否包含ib_log文件,复制文件都很有可能复制垃圾.

不要做你正在做的事情.使用mysqlbackup或InnoDB的热备份产品.

编辑:

阅读Farhan Mashraqi关于InnoDB性能优化的博客文章,他说如果你关闭了MySQL服务器,你可以删除这些ib_log文件.

InnoDB日志调整大小:不像更改选项和重新启动那么简单.您需要关闭MySQL服务器并确保它正常关闭(检查错误日志以确认错误).然后移开InnoDB日志文件ib_log*.然后启动MySQL服务器并检查错误日志文件以查看它是否成功创建了新的日志文件.

所以,是的,您应该只能对文件进行文件系统复制ibdata.您不需要包含这些ib_log文件,因为它们应该在MySQL Server启动时重新创建.但是,我重申,我不建议使用文件系统副本备份数据库.

假设您使用MySQL 5.0以这种方式备份数据库.有一天你需要恢复备份,但到那时你将使用像MySQL 6.5这样的未来版本.这些ib_data文件在将来的版本中是否仍然使用相同的内部格式?MySQL 6.5会读取你今天备份的那些文件吗?你不能确定.备份格式旨在更加便携.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有