2013-02-22 64 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