2013-05-08 105 views
0

对于我导出总共40GB数据的200个数据库并将其导入另一台服务器,最有效的方法是什么?我原本计划运行一个将每个数据库导出到自己的sql文件的脚本,然后将它们导入新的服务器。如果这是最好的方法,是否有一些额外的标记可以传递给mysqldump来加快速度?从一台服务器到另一台服务器mysql dump 200DB〜40GB

我看到的另一个选择是直接通过SSH将mysqldump传输到导入。这会是更好的选择吗?如果是的话,你能提供一些脚本可能的样子的信息吗?使用SSH用命令

mysqldump -p -u username database_name > dbname.sql

回答

5

如果服务器可以互相ping通,你可以使用管道这样做:

mysqldump -hHOST_FROM -u -p db-name | mysql -hHOST_TO -u -p db-name 

爽快!

[编辑]

回答你的问题:

mysqldump -hHOST_FROM -u -p --all | mysql -hHOST_TO -u -p 
+0

如果数据库不存在于远程服务器上,我将如何使用此命令?我需要导入的所有数据库也需要在远程服务器上创建。 – 2013-05-08 06:13:26

+0

我编辑了我的答案。 – medina 2013-05-08 06:29:00

0
  1. 出口MySQL数据库使用wget来自新服务器的SSH移动转储。

wget http://www.domainname.com/dbname.sql

    中使用SSH命令

mysql -p -u username database_name < file.sql

完成

  • 导入MySQL数据库!

  • 0

    如果两个MySQL服务器将拥有相同的DBS和配置,我认为最好的方法是复制到/ var/lib中/ MySQL的目录使用rsync。在复制之前停止服务器以避免表损坏

    1

    快速且最快的方法是使用percona xtrabackup进行热备份。它速度非常快,您可以在实时系统上使用它,而mysqldump可能导致锁定。在Innodb的情况下,请避免将/ var/lib目录复制到其他服务器,这会造成非常不好的影响。

    尝试percona xtrabackup,这里是关于安装和配置的更多信息。 Link here

    +0

    由于简单,我最终用mysql dump pipe去远程服务器选项。但是,我确实在网络上看到了一些关于xtrabackup的参考资料,绝对看起来很有用。我将在不久的将来执行相同的任务,所以我必须尝试一下。谢谢! – 2013-05-08 13:53:49

    相关问题