mysql从一台服务器转储200DB~40GB到另一台服务器

时间:2013-05-08 05:33:42

标签: mysql linux ssh mysqldump

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

我看到的另一个选项是直接通过SSH将mysqldump传递给导入。这会是一个更好的选择吗?如果是这样,你能提供一些关于脚本可能是什么样子的信息吗?

4 个答案:

答案 0 :(得分:5)

如果服务器可以相互ping通,您可以使用PIPES来执行此操作:

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

答案 1 :(得分:0)

快速,快速的方法是使用percona xtrabackup进行热备份。它非常快,您可以在实时系统上使用它,而mysqldump可以导致锁定。如果是Innodb,请避免将/ var / lib目录复制到其他服务器,这会产生非常糟糕的影响。

尝试percona xtrabackup,以下是有关安装和配置的更多信息。 Link here

答案 2 :(得分:-1)

  1. 使用SSH使用命令
  2. 导出MySQL数据库

    mysqldump -p -u username database_name > dbname.sql

    1. 使用来自新服务器SSH的wget移动转储。
    2. wget http://www.domainname.com/dbname.sql

      1. 使用SSH使用命令
      2. 导入MySQL数据库

        mysql -p -u username database_name < file.sql

        完成!!

答案 3 :(得分:-1)

如果两个mysql服务器都具有相同的dbs和配置,我认为最好的方法是使用rsync复制/ var / lib / mysql目录。在执行复制之前停止服务器以避免表损坏