【发布时间】:2015-01-14 13:59:26
【问题描述】:
我最近一直在进行冷迁移...这意味着我在迁移时无法从应用程序级别读取/写入数据库(维护页面)。
这样,结构更改不会发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。
我的结构是每个客户都有自己的数据库。这种方法的唯一缺点是停机时间可能为 15-45 分钟,具体取决于进行了多少更改。
我的解决方案如下:
同时运行 2 个代码副本。我有代码可以检测他们所使用的程序版本,如果他们仍然在旧版本上,则向他们展示旧代码......如果他们在新版本上,则向他们展示新代码
唯一让我害怕的部分是,如果有人在迁移过程中进行拒绝服务攻击,我可能会遇到严重问题。
我现在有大约 360 个数据库。
推荐热法吗?我只是担心中间的拒绝服务或某种 mysql 查询错误,因为它们可能是正在进行的数据更改。我以前确实发生过这种情况,但幸运的是就在我开始迁移之前。
【问题讨论】:
-
第一件事,如果有人在服务器关闭时试图访问该页面,您可以提供一个页面,上面写着它关闭了一个小时以进行临时维护(所以如果冷更新就好了,如果你这样做了...我之前访问过这样的页面,因为停机时间只有 45 分钟,所以看起来时间不会太长)...第二件事,你为什么要存储数据每个客户端在一个单独的数据库中?每个客户的内容/存储需求是否很大?看起来你应该能够有比这更好的设置。
-
我有一个销售点系统,每个客户都有自己的数据库,我一个一个地迁移它们。它使每个客户端的所有内容都是独立的,并且易于携带。我测试了我的迁移策略,它似乎工作得很好。大约需要 30-45 分钟,但基本没有停机时间。