我已经阅读了大量关于采用mySQL的一致备份的文章,包括一致的数据集的含义是什么? (MySQL) ,但是我仍然不认为自己有足够的信心来回答这个问题。 我原本是在stackoverflow上发布这个问题的,但是有几位知名度高的成员告诉我,这将是一个更好的地方。 所以我基本上复制粘贴这个问题,并从那里删除它。 希望这是一个可以接受的做法 – 我就如何解决问题寻求帮助,但没有得到任何答案。
运行MySQL 5.5,只使用InnoDB表和file-per-table,支持在运行Amazon Linux的Amazon EC2上托pipe的多用户网站。
从我在这里可以find的以及其他Stack Exchange站点,听起来好像复制整个data树以在closures服务器之后进行有效的备份。
我目前正在做的备份是:
Bill Karwin在回答https://stackoverflow.com/questions/9165118/lvm-mysql-backup/9165604#9165604时指出,lvm快照会严重降低I / O性能。 但是我相信由于lvm快照只在短时间内活跃,所以需要rsnapshot(使用rsync)来完成,所以性能不应该受到严重的影响。
所以我的问题是我是否真的需要在使用lvm快照的时候停止服务器。 我想我在某处读到,尽pipe“即时”快照可以用不完整的事务处理InnoDB表,但如果发生这种情况,mySQL将在再次启动时处理它们。 所以我认为,停止服务器可能是矫枉过正的,即使只是在lvm快照拍摄的时候停止了很短的时间。 (我第一次停止Apache所以请求不能进入没有数据库运行)。
我一定会在http://www.percona.com/software/percona-xtrabackup上查看Bill的build议。 这里似乎引用了很多。 它是否适用于MySQL 5.5,还是我需要安装Percona Server? 与此同时,我想知道我是否可以对自己正在做的事情做出渐进的改进,或者如果我正在做的事情已经破裂了!
TL; DR:在LVM快照中不需要停止服务。 +1 XtraBackup。
不需要停止服务。 LVM快照相当于拉动电源,这意味着它是一致的,但是和崩溃一样。 从一个备份启动服务时,必须进行崩溃恢复。 所需的时间取决于您的InnoDB日志文件的大小,但可能需要几分钟的时间。 一旦崩溃恢复完成,您的服务将正常启动并重新运行。
通过在快照之前closures服务,您的恢复将以更快的速度启动,但是每次运行备份时都要花费一些停机时间。 另外值得考虑的是,每当你停止服务,你将失去所有温暖的缓冲池,所以你也会因为不得不将数据再次读入内存而导致性能下降。
XtraBackup旨在与Oracle MySQL以及Percona Server一起使用。 这是一个不错的select,尽pipe如此,所有的事情都需要备份,testing,testing和再次testing,以确保它在您发现需要之前能够正常工作。