做双活数据中心,数据都存放在底层的存储设备上,存储只要实现双活就可以保障数据是两份同样的数据,为什么数据库也要做双活,数据库里的数据本身不就是在存储里存放的吗?
存储双活只能保证数据不丢失,但是并不能同时在双中心访问。当一边中心故障时,另一边中心相当于只是个冷备。所以为了双中心都能同时提供服务,需要从数据库层做好多节点对共享存储的访问,这就是为啥要做数据库双活。单存储双活没啥意义。
收起存储的双活只能保证数据不丢,但是却做不到业务不断
一些重要业务。为了保证故障时候甚至极端一点的情况。整个核心机房出现火宅,地震等情况的时候。备用机房的业务能够迅速启用。用户并不会感觉到有什么影响。这种情况下就要求系统中所有的点都是双活的。当然。也包括数据库。
谈点个人理解:
1)双活可以站在不同层次上来规划和设计,例如从存储层、数据库层、应用层、业务层、接入层等。
2)存储双活与数据库双活,是属于不同层次的双活。
3)每个层次的双活关注的内容和目标不同,例如存储层双活主要解决单数据中心内部的存储单点故障问题,二而数据库层双活主要解决2个数据中心之间同时对外提供写读请求和单中心故障问题。
4)在一个实际的双活系统中,可以根据具体业务需求和基于企业整体IT架构,组合使用多个层次的双活在一个双活系统中。例如,一个核心银行系统,可以在存储双活层与数据库层上都设计成双活,这样可以同时解决存储单点故障问题和单中心故障问题。
5)单活是多活的坚实基础,如果一个系统单活都存在这样那样的问题,估计多活也没有意义。