最近,我一直在做冷migrations...which,这意味着在执行迁移(维护页面)时,我无法从应用程序级别读取/写入数据库。
这样,结构更改就不会发生错误,而且如果负载过多,我也不希望mysql在迁移过程中崩溃。
我的结构是每个客户都有自己的数据库。这种方法的唯一缺点是,它们的停机时间可能是15-45分钟,具体取决于所做的更改数量。
我对此的解决办法如下:
同时运行两个代码副本。我有检测程序的版本的代码,如果他们还在旧的,向他们展示旧的code...if,他们在新的,向他们展示新的代码。
唯一让我害怕的是,如果有人在迁移过程中进行拒绝服务攻击,我可能会遇到严重的问题。
我现在有大约360个数据库。
推荐热法吗?我只是担心在其中出现拒绝服务或某种mysql查询错误,因为它们可能是正在进行的数据更改。我以前确实有过一次这种情况,但幸运的是,那是在我开始迁移之前。
发布于 2014-11-25 13:03:40
只有当“新代码库”与“旧DB版本”100%兼容时,您的想法才能奏效,否则,在DB迁移过程中,它可能会崩溃。此外,它还要求在DB迁移过程中的任何阶段,数据库都不会处于不一致的状态(可能通过在适当的事务中包装迁移步骤)。
如果资源允许,我会:
(您甚至可以跳过虚拟主机的修补程序,转而使用符号链接)
https://stackoverflow.com/questions/26976384
复制相似问题