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。
当我执行上述操作时,生产网络应用程序会受到多长时间的影响?
根据我的研究,这是我的想法,但我要小心,因为我正在处理生产数据
在服务器 B 上,mysqldump --databases enrollment > enrollment_backup.sql
scp enrollment_backup.sql 从服务器 B 到服务器 A
drop database enrollment
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 隧道,然后使用该隧道进行转储。
- 如果您不想通过命令行传递密码或根本不想输入密码,请让
mysqldump
或 mysql
通过 [=19] 从单独的选项文件中读取它=].
我阅读了一些关于将 mysql 数据库从一台服务器还原和复制到另一台服务器的主题
但我想确定它可能对我的生产网络应用程序产生的影响。
基本上我的情况是这样的:
服务器 A 有一个名为 enrollment 的数据库。
服务器 B 有一个名为 enrollment 的数据库。
如何通过命令行执行以下操作:
1.Create 'enrollment' 在服务器 A
上的备份副本2。删除服务器 A 上的数据库注册
3。 Copy/Dump 从服务器 B 到服务器 A 的数据库注册(我需要 ssh 或复制 sql 文件还是可以通过 mysql 完成?)
数据库大小约为 64 MB。
当我执行上述操作时,生产网络应用程序会受到多长时间的影响?
根据我的研究,这是我的想法,但我要小心,因为我正在处理生产数据
在服务器 B 上,
mysqldump --databases enrollment > enrollment_backup.sql
scp enrollment_backup.sql 从服务器 B 到服务器 A
drop database enrollment
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 隧道,然后使用该隧道进行转储。
- 如果您不想通过命令行传递密码或根本不想输入密码,请让
mysqldump
或mysql
通过 [=19] 从单独的选项文件中读取它=].