(四)PolarDB高可用架构
除了以上一些传统数据库,现在一些比较流行的云上数据库也有自己的容灾技术。PolarDB是阿里云上一种计算和储存分离架构的数据库,其数据是多份、分布式存储的,其SQL节点是通过网络(RDMA)的方式来访问这些数据,其计算节点也做了多份冗余,这样子就从计算节点和存储节点提供了双重高可用保障,如下图所示。
(五)OceanBase高可用架构
OceanBase是蚂蚁金服自研的一个分布式架构的数据库,其数据同时存在于多个zone,也就是有了多个副本,所有数据通过分布式协议抵达多个节点之间,少数副本故障不影响数据可用性,所以其RPO是0,且RTO也非常的小,在遇到数据风险的时候恢复也相当迅速,基本上是秒级恢复时间。其架构如下图所示。
三、数据安全事故案例
我们需要注意的是,就算我们对数据库做了备份或备库,并不代表就一定不会出现问题了,高可用方案中也会存在一些陷阱,比如以下所介绍的几个问题。
(1)多个容灾节点之间存在物理依赖
如果在进行容灾技术体系建设的时候做了多个备份、多个备库,但是没有考虑到进行节点之间的物理隔离,比如多个备份存在同一台物理机上,那么当这台物理机出问题了之后,多个备份都无法使用,就会造成数据丢失。
(2)备份/备库平时很少用到,出现问题难以发现
有时候我们做了相应的备份/备库,但是很少用到,也没有定期进行相应的检查,在用的时候才发现出了问题,比如备库配置不当,备库失效,直到切换到备库的时候才发现问题。
(3)人为失误导致的问题
有时候人为导致的失误是容灾体系中最大的风险存在。比如运维或开发人员在进行日常维护时误操作删除生产环境的表,造成重大的业务影响;又比如工作人员在进行某些的操作的时候连到了多个终端,本来应该在测试环境执行的命令错误的到主库执行,引起故障;又比如运维人员在进行库的维护的时候操作顺序不当,本来应该先备份数据再进行操作,却先进行了删除操作,引起故障。
四、数据库容灾体系建设
数据库容灾体系的建设是一个系统工程,我们除了从架构层面,还要从运维层面、监控层面去考虑,同时也要从制度上面去保障,比如企业内部不同岗位权限的定位、权限的隔离等,还要从业务层面重视这个问题,要定时进行演练,包括容灾演练、恢复演练等,如下图所示是张新铭老师分享的数据库容灾体系建设中的主要注意点。只有全方位重视数据库容灾体系的建设,才能真正做好数据库容灾体系的建设。
关键词:数据库、数据库容灾、数据安全、数据备份、数据恢复