Mysqldump在备份过程中停止网站服务

我有一个运行在MySQL数据库后端上的网站,每天通过以下命令进行备份

mysqldump -h server.com -uuser -ppass database > /home/directory/backup`date +"%Y%m%d"`.sql 

我注意到,由于数据库已经变大,备份需要更长的时间(也许几分钟),在备份过程中,站点不能正常工作。

在备份期间需要挂载备份数据库的页面挂起,并且在备份完成之前无法加载。 通常他们似乎没有超时,直到备份完成后,MySql超时30秒的错误 – 即使超过30秒过去了。

我猜mysqldump命令是locking对数据库某些部分的访问,并阻止来自web服务器的客户端连接,但无法find更多关于此的信息。

我在服务器上运行mysql 5,表格是ISAM格式。

您可以使用复制将数据库复制到另一个,然后备份副本。

对于MyISAM表,你也可以使用mysqlhotcopy。 但是,这不会消除您的问题,因为这也使用表锁。 所以我也build议看看复制。