lep*_*pix 6 mysql innodb migration
如果 MySQL 服务器关闭,可以在 InnoDB 数据库上使用 rsync 吗?
例如 :
/etc/init.d/mysql stop
rsync -av /home/mysql/mydb/ root@newserver.com:/home/mysql
Run Code Online (Sandbox Code Playgroud)
这实际上取决于 /home/mysql/mydb 下的目录结构 - 如果这只是一个数据库的数据文件,则需要扩展您的范围。
如果您打算使用 rsync(或一般采用基于文件的备份),您需要确保您的备份至少包括:
innodb_file_per_table = 1)显然,这仅涵盖 InnoDB - 大概您还想获取所有其他数据库文件(MyISAM、Archive、CSV 等)。
MySQL 关于该主题的文档还建议set global innodb_fast_shutdown = 0在关闭服务器之前发布- 这应该不是必需的,但它是有道理的。该设置将强制服务器将您的日志文件刷新到您的数据文件,如果您需要从备份中恢复,它将显着加快恢复时间。
(严格来说,缓慢关闭意味着您应该能够在不备份日志文件的情况下逃脱,但这仍然是一个好主意,以防万一有一天服务器由于某种原因没有完全关闭)
我是Percona Xtrabackup备份的忠实粉丝,因为它通常确保它复制所有必要的文件,并且可以在线备份,但在某些情况下 rsync 可能更适合您的要求。
更新:如果您使用 MySQL 5.6,您可能需要查看InnoDB 可传输表空间。此功能可能对您没有用处,如果您有很多表,则需要编写一些脚本,但如果您使用innodb_file_per_table并试图避免在所有其他 InnoDB 之间进行复制,它可能会非常有用行李。