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

mysqldump data through command line without affecting web application

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

但我想确定它可能对我的生产网络应用程序产生的影响。

基本上我的情况是这样的:

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

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

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

1.Create 'enrollment' 在服务器 A

上的备份副本

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

3。 Copy/Dump 从服务器 B 到服务器 A 的数据库注册(我需要 ssh 或复制 sql 文件还是可以通过 mysql 完成?)

数据库大小约为 64 MB。

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

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

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

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

  3. drop database enrollment

  4. mysqldump < enrollment_backup.sql

注意:我在服务器 A 和服务器 B 上具有根访问权限。

您必须在最后一步删除数据库: 1)备份服务器A 2)在服务器B上转储数据A 3)将网络应用更改为指向B 4) 如果一切正常,你可以删除服务器 A

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

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

这将使用用户 root1 连接到服务器 production 以及您将通过提示输入的密码。数据库mydatabase(您也可以提供数据库列表)将被转储。

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

高级可能性:

  • 如果两个系统都不在 VPN 中或未通过任何其他方式保护,您可以创建一个 SSH 隧道,然后使用该隧道进行转储。
  • 如果您不想通过命令行传递密码或根本不想输入密码,请让 mysqldumpmysql 通过 [=19] 从单独的选项文件中读取它=].