mysqldump数据通过命令行而不影响Web应用程序

时间:2015-08-03 22:09:37

标签: mysql database mysqldump mysqladmin

我阅读了一些关于将mysql数据库从1台服务器恢复和复制到另一台服务器的主题

但我想确保它可能对我的制作网络应用产生影响。

所以基本上就是我的情况:

服务器A有一个名为enrollment的数据库。

服务器B有一个名为enrollment的数据库。

通过命令行,我该如何执行以下操作:

1.创建'注册'的备份副本在服务器A上

2。删除服务器A上的数据库注册

第3。将数据库注册从服务器B复制/转储到服务器A(我是否需要ssh或复制sql文件或者可以通过mysql执行此操作?)

数据库大小约为64 MB。

在执行上述操作时,生产网络应用会受到多长时间的影响?

基于我的研究,这是我的想法,但我想要小心,因为我正在处理生产数据

  1. 在服务器B上,mysqldump --databases enrollment > enrollment_backup.sql

  2. 从服务器B到服务器A的scp enrollment_backup.sql

  3. drop database enrollment

  4. mysqldump < enrollment_backup.sql

  5. 注意:我在服务器A&amp;服务器B.

2 个答案:

答案 0 :(得分:0)

您必须在最后一步执行 drop database : 1)备份服务器A. 2)在服务器B上转储数据A. 3)将Web应用程序更改为指向B. 4)如果一切正常,你可以放弃服务器A

答案 1 :(得分:0)

您可以将任何远程服务器转储到本地服务器。甚至任何远程服务器到任何其他远程服务器。

mysqldump -hproduction -uroot1 -p --add-drop-database --add-drop-table --extended-insert --lock-all-tables --routines --databases mydatabase | \
mysql -hlocalhost -uroot2 -ppassword

这将使用用户production连接到服务器root1,并通过提示输入密码。

然后使用用户mydatabase和密码localhost将包含所有命令的标准输出重定向到在root2(也可以是任何其他主机)上运行的另一个MySQL服务器。第二个密码必须在命令行上给出。

高级可能性:

  • 如果两个系统都不在VPN中或通过任何其他方式保护,您可以创建SSH隧道,然后使用此隧道进行转储。
  • 如果您不想通过命令行传递密码或根本不想输入密码,请passwordmysqldump通过mysql从单个选项文件中读取密码