要点清洁,我正在MySQL数据库(不同的硬件片段)之间移动25个表。这不是整个数据库,只有几百个中只有25个表...这些表不属于那里,我不会出于NDA的原因而进入为什么。

现在,这将打破大量代码和SQL查询。

这样做的最好方法是什么?

  1. 立即将它们移动。

  2. 将它们超过1乘1

--

一次将它们全部移动,真是太好了。可能是我错过的一些中断和破碎的代码,但是将它们作为一个块移动要快得多,更少的时间将代码推出。

将它们逐一移动是一种很好的,较少的大事打破的机会,但是将花费更多的时间来微观管理工作,冗余的工作和部署。

我有可能在两个数据库之间映射表一段时间吗?也许是联合桌子?

--

MISC信息:有25个表都通过内容相互关联。

我不能一次关闭数据库数小时,大约5分钟的停机时间是可以接受的。

--

移动所有这些数据并保持代码,SQL和我状态的最佳方法是什么?

我可以联合表作为将表复制到新数据库的一种方式吗?

- 丹尼尔

有帮助吗?

解决方案

似乎一次将它们转移到一个方面是必经之路。这样一来,您就会有很多简单的小问题,而不是一个大问题。希望您在许多自动测试下都有系统,以确保所有这些改组不会破坏任何东西。

另一件事:您谈论关闭数据库。如果您在开发环境中进行更改,并且只有在确定一切正常的情况下才能实现更改,为什么需要在生产中进行任何停机时间?我希望您不要在不先开发中进行生产进行这些更改。

其他提示

您可以使用SQLyog(MySQL前端)进行操作。

Meny Option是PowerTools->数据库同步向导

您必须能够远程打开两个数据库(主机%应该在那里)

去过那里,做到了,实际上是在一个类似项目的中间。有了我们的项目,我们继承了一些我们不知道它们是什么或一切的地方,但这里是一般流程:

  • 在新服务器上,设置任何适当的帐户
  • 如果需要在应用程序配置中,请查找在哪里更改服务器和用户名/密码
  • 关闭Web应用程序,因此移动时没有任何写作
  • 移动DB
  • 重新配置该应用程序
  • 向后发射
  • 重复每个DB/应用程序

对于小东西,这仅需几秒钟。 sqlyog 这里是一个很好的帮助。如果您有大数据库或决定不需要任何停机时间,则需要考虑复制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top