我正在为生产运行 AWS RDS 大型实例。我每天半夜服用 mysqldumps。但是取mysql dump的时间太长,在mysql dump过程中网站没有响应。现在我每天都在拍摄数据库快照,而不是进行 mysql 转储。
我的问题
有没有其他方法可以将转储的数据库快照复制到本地盒子,以便我每天在本地备份它?
我正在为生产运行 AWS RDS 大型实例。我每天半夜服用 mysqldumps。但是取mysql dump的时间太长,在mysql dump过程中网站没有响应。现在我每天都在拍摄数据库快照,而不是进行 mysql 转储。
我的问题
有没有其他方法可以将转储的数据库快照复制到本地盒子,以便我每天在本地备份它?
我建议检查Percona XtraBackup (
innobackupex
)。确保所有数据表都是 InnoDB 引擎类型,因为如果不锁定所有表,MyISAM 将无法让您接近解决方案。XtraBackup 能够对正在运行的数据库进行在线备份,对性能的影响非常小,锁定时间也最短。在开始之前阅读文档。
如果您需要一个没有任何影响的完整备份/快照,您可以考虑在从机上进行这些备份的主从安装。虽然设置起来有点困难和痛苦。
您还可以依赖 InnoDB 崩溃恢复并获取 EBS 快照。然后你可以挂载这个文件系统并让 InnoDB 用它恢复事务日志。但是,我不推荐这种方法。
确保在不干扰 MySQL 数据库操作的情况下获得良好备份的正常方法是使用主/从配置并从从属服务器获取备份。这甚至可以是一台机器上的两个 MySQL 实例。在这种情况下,slave 会受到性能影响,而不是 master。