什么是迁移MySQL数据库的最佳方式?

我们将一个繁忙的电子商务网站从一台服务器移到另一台服务器。

这是一个使用MySQLPHP应用程序。 phpMySQL没有安装在任何一台服务器上。 我们使用Navicat Essentials for MySQL来pipe理数据库。

计划如下:

  1. 减lessDNS TTL。
  2. 用户rsync将文件从旧到新的服务器传输。
  3. 在旧服务器上,使用Navicat导出数据库并在新服务器上导入转储的SQL文件。
  4. 在新服务器上进行testing(通过更改本地主机文件,使计算机上的域指向新的服务器)
  5. 如果有任何问题,则排除故障并循环回到步骤4.否则,请转到步骤6。
  6. 在步骤4中一切正常后,打开PHP应用程序中的维护模式(仍旧在旧服务器上运行)。
  7. 再次运行rsync以复制自上次rsync以来的任何剩余文件。
  8. 在Navicat中,在旧服务器上,为相关数据库,转储SQL文件(结构和数据),然后在新服务器上,从最初导入的数据库中删除所有表,然后执行刚刚转储的SQL文件。
  9. 使用新的IP更新DNS详细信息,然后再次增加TTL。

这是一个合适的方法吗? 实际上,步骤1-7已经完成了。 我以前从来没有在迁移过程中使用过Navicat(总是有phpMyAdmin),所以我很担心第8步。是第8步 ,还是应该做不同的事情?

您描述的计划涉及应用程序停机或数据丢失(或两者兼而有之)。 更推荐的方法是立起新的数据库服务器,将其configuration为当前服务器(现在的主服务器)的从服务器,重新configuration您的应用程序以将它们都用作主/从服务器对。 当奴隶赶上(你可以连接到它并发送查询),提升奴隶/降级主。

MySQL复制configuration文档

谷歌search结果最常见的方法是使用mysqldump命令。

https://dba.stackexchange.com/questions/174/how-can-i-move-a-database-from-one-server-to-another – 最详细的

http://www.networkworld.com/columnists/2004/092004drinternet.html 什么是最简单的方法来移动MySQL的Linux箱子一个本地的Vista框?

然而,有人提到Navicat,你提到你正在使用,允许设置数据传输/复制。

希望这可以帮助。