热与冷mysql模式迁移并提高速度

我最近一直在进行冷迁移......这意味着我无法从应用程序级别进行迁移(维护页面)时读/写数据库。

这种方式错误不会发生在结构的变化上,而且如果有很多负载,我不希望mysql在迁移过程中崩溃。

我的结构是每个客户都有自己的数据库。 这种方法唯一的缺点是可能会导致15-45分钟的停机时间,具体取决于进行了多少次更改。

我对此的解决方案如下:

有两份代码同时运行。 我有代码检测他们在哪个版本的程序,如果他们仍然在旧显示他们的旧代码...如果他们在新的显示他们的新代码

唯一让我感到恐惧的是,如果有人在移民中间进行拒绝服务攻击,我可能会遇到严重问题。

我现在有大约360个数据库。

推荐的热门方法是? 我只是担心它中间的拒绝服务或者某种mysql查询错误,因为它们可能会导致数据更改。 我确实曾经遇到过这种情况,但幸运的是它刚好在我开始迁移之前。


只有当“新代码库”与“旧数据库版本”100%兼容时,您的想法才有效,否则在数据库迁移过程中可能会崩溃。 此外,它要求在数据库迁移过程中的任何阶段,数据库永远不会处于不一致的状态(可能通过在适当的事务中包装迁移步骤)。

如果资源允许,我会:

  • 在新的虚拟主机下安装并配置新的代码库,指向新的数据库(见下文)
  • 将“旧”网站置于只读模式
  • 在同一个数据库服务器上复制当前数据库
  • 将重复数据库迁移到新版本
  • 将虚拟主机切换到新的代码库(确保您解除维护模式:)
  • 让新版本成熟几个小时,然后放弃旧的代码库,数据库和虚拟主机。
  • (你甚至可以跳过虚拟主机的修补程序并改用符号链接)

    链接地址: http://www.djcxy.com/p/23467.html

    上一篇: Hot vs cold mysql schema migrations and improving speed

    下一篇: Limit Q promise concurrency in Node js