gpt4 book ai didi

mysql - 在备份中包含 ib_logfiles?

转载 作者:可可西里 更新时间:2023-11-01 07:55:23 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

不要做你正在做的事。使用 mysqlbackup 或 InnoDB 的 Hot Backup产品。

编辑:

阅读 Farhan Mashraqi 关于 InnoDB Performance Optimization 的博客文章,其中他说您可以删除 ib_log 文件如果您关闭了 MySQL 服务器

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 服务器启动时重新创建。不过,我重申,我不建议使用文件系统副本来备份数据库。

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

关于mysql - 在备份中包含 ib_logfiles?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/298350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com