我在MySQL中有一个4GB的数据库。 我该如何备份? 此外,如果我需要恢复的话,有没有办法可以加快恢复进程?
我目前每天晚上使用一个cron作业调用mysqldump来转储所有内容,并保留3天的备份。
我们在MySQL中有大约90 GB,所以这里有一些build议:
mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar (使用文档检查这些开关是否适用于您。) 最好的方法是不中断正常的操作。 对于高可靠性的容错系统,您有2个数据库保持同步,并备份辅助数据库。 (如这篇howtoforge文章 )
否则,请阅读手册 :像现在这样使用myseldump,或者使用mysqlhotcopy脚本(就像使用mysqldump一样),或者停止数据库并简单地复制frm,MID,MYI文件(使用rsync)。
我认为stop + copy文件机制是最快的。
如果你的一些数据库是只读或者修改的,那么很less把它作为一个不太常用的cron。
要回答你的问题 – extended_insert选项适合我。 如果您有足够的资源进行恢复,那么extended_insert将在单个查询中插入大量数据,使恢复速度更快。
你应该考虑Percona的Xtrabackup
包装脚本“innobackupex”可以处理MyISAM,但对于非locking/在线备份,您的表应该都是InnoDB。
干杯