2013-02-22 61 views
0

我写了一个shell脚本每日备份,但每当它启动mysql它锁定数据库和网站宕机。如何通过影响生产服务器的mysqldump命令执行mysql备份?

我想不会影响到活的服务器 的网站可以在不同的时区ACCES所以着收回UPS晚上

+0

如何如何使用[复制](http://onlamp.com/pub/a/onlamp/2005/06/16/MySQLian。 HTML)作为备份? – 2013-02-22 12:58:09

+0

[复制不是备份](http://www.unitrends.com/blog/replication-is-not-backup-backup-is-backup/) – sjdaws 2013-02-22 13:01:02

回答

0

如果您使用的MyISAM,你可以告诉MySQL的你不想被锁定表使用--lock-tables=false。如果您使用的是InnoDB,则可以使用--single-transaction来避免锁定。你可以采取以避免这个问题

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

+0

谢谢!!!我使用混合型表(innodb和myisam) 我用的方式 --skip-lock-tables [option] – 2013-02-22 14:19:08

1

一种方法是建立MySQL replication和使用从数据库从做备份。

优点是您可以完全复制数据库,并且可以有效地进行热备份,而不管数据库的类型如何。 但是,您确实需要另一台数据库服务器,并且有效地将存储容量加倍(因为您正在维护另一份数据库副本)。

+0

thanks !!但我需要简单和小解决方案 – 2013-02-22 14:17:50

0

解决问题

的mysqldump -u [用户] -P [口令] DBNAME --skip-锁定表|的gzip> soohoo_backup.sql.gz

+0

更好地接受这个答案呢! – Raad 2013-02-22 14:42:41

0

您可以使用:

mysqldump -u [user] -p[password] [dbname] > dumpfile.sql