服务迁移的时候,域名解析不同步导致的数据差异你们是怎样处理的?

2014-02-10 20:14:41 +08:00
 qq286735628
[背景]
一个系统,现在从服务器A搬到服务器B,所有的数据有已经搬好之后,修改域名解析。

[问题]
域名生效有延迟,在这个过程中,假如有用户解析到了A服务器,并且进行了一系列的操作,这部分保留在A服务器的新数据怎么办?
5555 次点击
所在节点    问与答
19 条回复
orzfly
2014-02-10 20:19:44 +08:00
在 A 上做反代或者端口转发到 B 上?
X-Force
2014-02-10 20:31:04 +08:00
省事做法,A提示维护中请稍后访问。
alexrezit
2014-02-10 20:35:56 +08:00
搬迁过程中 A 设为 RO.
raincious
2014-02-10 20:38:18 +08:00
原有服务器A,A上有数据库+Web(无论多复杂的系统其实就是界面+数据);

新服务器B,安排在用户操作最少+用最短时间署迁移数据库部分,然后开放B上数据库的访问接口,将A上的访问数据库指向到B服务器上。(也可以做主从库访问),这样就不会导致数据不一致的问题了。

当稳定时,关闭A上的数据库,备份,迁移程序和其他部分,然后慢慢撤销指向A的解析。

完成。
adrianzhang
2014-02-10 20:56:49 +08:00
服务器A的IP挂到B上面去,然后改了DNS解析,过了一天A服务器IP就应该没有什么访问了吧?
GTim
2014-02-10 21:15:09 +08:00
@adrianzhang 我们直接RO
adrianzhang
2014-02-10 21:39:18 +08:00
@GTim 恩,要没要求必须可写的话做RO就可以。
qq286735628
2014-02-10 23:04:58 +08:00
RO是read only的意思?
misaka
2014-02-10 23:58:15 +08:00
@qq286735628 是的。

原站点直接 RO +1。
zeinima
2014-02-11 00:45:40 +08:00
数据库放在C,附件放在D
爱谁谁
fatpa
2014-02-11 00:55:01 +08:00
把迁移时间放在半夜,应该就没啥影响了
dndx
2014-02-11 02:49:14 +08:00
迁移前两天,修改记录 TTL 到一个很小的值,比如 10 秒。

挑流量最少的时候,先把原站 RO, 再修改解析到新 IP。

这样应该可以最小化影响。
msg7086
2014-02-11 10:27:37 +08:00
数据迁移完毕以后把A改成反代就行了,然后DNS什么时候生效都无所谓。
julyclyde
2014-02-12 10:28:59 +08:00
迁移完成后,立即进行原子切换,把旧的从实体运行改为proxy_pass
然后再改域名
julyclyde
2014-02-12 10:29:44 +08:00
已经差异了就困难了。除非你的应用程序有工作日志,去另外一遍replay一遍日志就得了
jk2r
2014-02-12 11:29:08 +08:00
你A服务器不会是 端 + DB 吧,那就没解了。

要解决DB上行,数据不一致么?SQL/NoSQL得有IP或域名对吧,去A上设置hosts,域名指向B新机器的IP,就写过去了。。。

哈哈哈哈,仅供参考,曾经这么干过。。问题也多。A、B不是一个机房的,访问就很慢。
jk2r
2014-02-12 11:32:07 +08:00
先切过去再慢慢修吧。The damage is done

半夜,悄悄的,操起mysql改吧。。数据不多就手动修SQL脚本,多就写个脚本搞。

可以当作新数据。
evefree2
2014-02-12 11:50:05 +08:00
切的1秒先锁库...
lyragosa
2014-02-14 10:13:31 +08:00
关掉原站,我就是这么干的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/99610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX