【发布时间】:2013-12-11 17:23:24
【问题描述】:
我写了一个 shell 脚本,每天备份一次,但是每当它启动 mysql 时,它会锁定数据库并且站点会关闭。
我不想影响实时服务器 因为网站可以访问不同的时区,所以不能在晚上进行备份
【问题讨论】:
-
用replication作为备份怎么样?
我写了一个 shell 脚本,每天备份一次,但是每当它启动 mysql 时,它会锁定数据库并且站点会关闭。
我不想影响实时服务器 因为网站可以访问不同的时区,所以不能在晚上进行备份
【问题讨论】:
避免此问题的一种方法是设置MySQL replication 并使用从数据库进行备份。
优点是您可以获得数据库的完整复制,并且可以有效地进行热备份,无论数据库类型如何。 但是,您确实需要另一个数据库服务器,并且有效地将存储容量翻倍(因为您正在维护另一个数据库副本)
不是每个人的一杯茶,但仍然是一种选择。
【讨论】:
如果您使用的是 MyISAM,您可以使用 --lock-tables=false 通知 MySQL 您不想锁定表。如果你使用 InnoDB,你可以使用--single-transaction 来避免锁。
【讨论】:
解决问题
mysqldump -u[user] -p[password] dbname --skip-lock-tables | gzip > soohoo_backup.sql.gz
【讨论】:
你可以使用:
mysqldump -u [user] -p[password] [dbname] > dumpfile.sql
【讨论】: