2012-12-07 69 views
0

我有一个MySQL服务器的根访问权限,我需要转储服务器内的所有数据库。 我尝试了一个简单的mysqldump,但由于数据库和表的大尺寸,服务器和pc似乎被阻塞。我可以“优化”这个DUMP,避免锁定服务器(和PC)吗?避免阻塞mysql和PC与mysqldump

非常感谢!

编辑:

我想从一个MySQL服务器导出所有数据库。 我需要了解哪些选项传递给mysqldump的,以避免阻塞:

  1. MySQL服务器< ----它CAN NOT下去
  2. 是goind要做到这一点转储PC

回答

0

从命令行激发转储命令。 :

mysqldump <other mysqldump options> --routines > outputfile.sql 

如果我们想只备份存储过程和触发器,而不是MySQL表和数据,那么,我们应该运行是这样的:如果你需要将它们导入到另一个数据库

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql 

/服务器你将不得不运行类似:

mysql <database> < outputfile.sql 
+0

wonk0,仔细阅读。他希望服务器内的所有数据库。意味着他想要导入一些东西。他从未说过我想禁用锁定。取消你的投票。谁说bigdump质量有问题? –

+0

我仔细阅读,非常感谢。 OP有问题使用mysqldump,它用于*创建*转储,而不是用于插入它。关于bigdump的质量 - 好吧,我这样说。 – wonk0

+0

Dail提问:“我需要转储服务器内的所有数据库”。意味着他想进口,而不是出口。 Mysqldump用于导入和导出,我的朋友。 –

0

您可以禁用锁定:

mysqldump --skip-lock-tables 

当然,您将无法以这种方式创建一致的转储,因此我不推荐使用该选项。

只使用MyISAM和ARCHIVE表时,您可能要考虑使用mysqlhotcopy(包含在常规的mysql包中)。 InnoDB等其他表引擎也有类似的软件可用。

另一种选择是使用复制从站进行备份。