我目前使用mysqldump备份我的MySQL数据库,例如:
mysqldump --user USERX --password=PWDX DBNAMEX > dbbackup__`date '+%m-%d-%Y'`.sql
当我执行备份(通过cron作业启动)时,我在我的站点上设置了一个.htaccess规则,以将任何请求redirect到一个静态的“down for backup,short soon”页面。 一旦备份完成,我删除规则和网站重新打开。
一切顺利,好多年来一直如此,你可以想象这个工作完美,我没有任何问题。
然而…
我想在备份过程中不必closures网站,所以问题是我可以用mysqldump来做这个吗? 该工具是否能够处理备份后数据发生变化的情况? 如果确实有活的备份,我可以保证我不会得到损坏的备份? 有没有更好的方法来做一个实时备份?
尝试看看mysqlhotcopy-根据您的数据库大小/表等,这可能会为您提供答案。
如果你的存储引擎是InnoDB,你可以通过使用–single-transaction标志(只要你在备份过程中不改变你的表结构)来获得一个一致的mysqldump。 但是它不适用于MyISAM。
对InnoDB数据库使用--single-transaction选项,对MyISAM使用--lock-tables 。