如何基于DNS进行二个机房的数据中心切换
2017-05-11 23:57
253 查看
假设有二个区域A和B,其中A为老平台,B为新平台,并且所有的业务都通过后台服务,不会发生直接操作数据的情况,其过程主要四个阶段:
1>全量备份A的数据到B的平台
2>二个数据中心同时进行写,然后比对新环境下和老环境的数据一致性
注意:
1)将从区域A中的数据都通过2-2转发到区域B的负载均衡设备上
2)数据比对服务要长时间跟踪二边数据的不一致,如果发生不一致,手动矫正,如果是程序的bug,进行修订
进行第三步的条件:二边的数据达到一致,并且在新增数据的情况下,仍然保持一致
3>更改dns服务到新地址,区域A只负责转发数据,区域B进行实际的业务处理
注意:
a)dns在全局的广播完成,需要一个时间,这个时间客户端有的请求到区域A,有的请求到区域B,要有一段时间才可以将DNS全部更新到各个节点,大概数小时以上
b)需要监控从区域A接入的数据的数量
进行第四步的条件:区域A已经接收不到数据
4>将区域A的服务都进行停止,到此,数据中心切换完成
从CAP中的P的角度来分析下切换过程:
分析:
a)步骤一开始的状态为S,然后区域A和区域B各自进入自己的状态,如果在步骤2中针对分区A的操作有直接数据库的操作,没有转移到区域B中,那么二边的数据会不一致,如果出现这种情况,要自动恢复的话,设计上有一个前提是变化的数据可以很容易的从区域A中抽出来,这样就比较方便的进行手动或者人工的分区合并
b)步骤3主要是为了容忍网络环境下DNS更新到一致性必须需要一个较长的时间
总结:切换的过程还是有很多细节上的注意事项,但是大体流程异常。如果有直接操作数据库的业务,那么方案可能更加复杂一些,后续补充。
1>全量备份A的数据到B的平台
2>二个数据中心同时进行写,然后比对新环境下和老环境的数据一致性
注意:
1)将从区域A中的数据都通过2-2转发到区域B的负载均衡设备上
2)数据比对服务要长时间跟踪二边数据的不一致,如果发生不一致,手动矫正,如果是程序的bug,进行修订
进行第三步的条件:二边的数据达到一致,并且在新增数据的情况下,仍然保持一致
3>更改dns服务到新地址,区域A只负责转发数据,区域B进行实际的业务处理
注意:
a)dns在全局的广播完成,需要一个时间,这个时间客户端有的请求到区域A,有的请求到区域B,要有一段时间才可以将DNS全部更新到各个节点,大概数小时以上
b)需要监控从区域A接入的数据的数量
进行第四步的条件:区域A已经接收不到数据
4>将区域A的服务都进行停止,到此,数据中心切换完成
从CAP中的P的角度来分析下切换过程:
分析:
a)步骤一开始的状态为S,然后区域A和区域B各自进入自己的状态,如果在步骤2中针对分区A的操作有直接数据库的操作,没有转移到区域B中,那么二边的数据会不一致,如果出现这种情况,要自动恢复的话,设计上有一个前提是变化的数据可以很容易的从区域A中抽出来,这样就比较方便的进行手动或者人工的分区合并
b)步骤3主要是为了容忍网络环境下DNS更新到一致性必须需要一个较长的时间
总结:切换的过程还是有很多细节上的注意事项,但是大体流程异常。如果有直接操作数据库的业务,那么方案可能更加复杂一些,后续补充。
相关文章推荐
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置
- 如何用TSS进行任务切换?我切换不成功:((内有汇编代码/as86)‹‹12
- [ZT]如何使用Erwin进行基于MYSQL的数据库设计
- 如何基于PDCA思想进行发展型产品管理
- VC如何SDI中进行多视图切换(销毁原视图)
- Ubuntu下root用户和user用户如何进行相互切换
- 如何选择最可靠的机房进行主机托管
- 如何进行DNS查询
- 如何在同一台计算机上的oracle10g和11g之间进行oracle环境切换
- 如何使用ERwin进行基于Mysql的数据库设计
- 如何选择最可靠的机房进行主机托管
- 页面中Div之间如何进行切换???
- 如何在Infopath的浏览器表单中获取当前用户,并进行视图切换
- 在Ubuntu 10.10中如何进行图形界面与文本界面的切换
- 如何对机房环境进行监理堪察?
- .Net平台如何基于wsdl文件搭建虚拟WebService服务器进行跨平台服务调试?
- 如何在Infopath的浏览器表单中获取当前用户,并进行视图切换
- 将节约进行到底 如何精打细算建机房
- 【百度地图API】关于如何进行城市切换的三种方式
- 如何SDI中进行多视图切换