对于一点点清理,我在MySQL数据库(不同的硬件)之间移动了25个表。这不是整个数据库,只有几百个表中的25个......这些表并不属于那里,我不会为NDA原因而讨论原因。
现在,这将打破很多代码和SQL查询。
这样做的最佳方式是什么?
立即将它们全部移动。
将它们移动1比1
-
立即将它们全部移动,非常好。可能是我错过了一些中断和破坏的代码,但将它们作为块移动要快得多,花在推出代码上的时间更少。
将它们一个接一个地移动是一种很好的,大的东西破坏的可能性更小,但是需要花费更多的时间来微观管理工作,冗余工作和部署。
我可以暂时在两个数据库之间镜像表吗?也许是一个联合表?
-
其他信息:共有25个表格彼此相关。
我无法一次关闭数据库数小时,大约5分钟的停机时间是可以接受的。
-
最好的方法是移动所有这些数据并保持代码,sql和我的状态良好?
我可以将表联合作为将表复制到新数据库的方法吗?
-daniel
答案 0 :(得分:1)
似乎一次一个地移动它们将是要走的路。这样你就会有一堆简单的问题,而不是一个很大的难题。我希望你的系统经过大量的自动化测试,以确保所有这些改组不会破坏任何东西。
另一件事:你谈到关闭数据库。如果您在开发环境中进行更改并且仅在确定一切正常时才进行更改,那么为什么还需要在生产中停机?我希望你不要考虑在生产中进行这些改变而不先在开发中进行。
答案 1 :(得分:1)
您可以使用SQLYog(mysql前端)来执行此操作。
Meny选项是Powertools - >数据库同步向导
您必须能够远程打开两个数据库(主机%应该在那里)
答案 2 :(得分:0)
去过那里,做到了,实际上现在正处于类似项目的中间。通过我们的项目,我们继承了一些我们不知道它们是什么或者一切都在哪里,但这里是一般流程:
对于小东西,这只需要几秒钟。 SQLyog在这里是一个很好的帮助。如果您有大型数据库或决定不需要任何停机时间,那么您需要考虑复制。