0

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

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

4

4 回答 4

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
于 2013-05-08T05:41:37.827 回答
0

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

试试 percona xtrabackup,这里有更多关于安装和配置的信息。链接在这里

于 2013-05-08T08:13:15.370 回答
-1

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

于 2013-05-08T06:03:39.090 回答
-2
  1. 使用 SSH 和命令导出 MySQL 数据库

mysqldump -p -u username database_name > dbname.sql

  1. 使用 wget 从新服务器 SSH 移动转储。

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

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

mysql -p -u username database_name < file.sql

完毕!!

于 2013-05-08T05:39:05.253 回答