档案容灾备份是什么意思啊(数据库容灾备份)

Posted

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了档案容灾备份是什么意思啊(数据库容灾备份)相关的知识,希望对你有一定的参考价值。

档案容灾备份是什么意思啊(数据库容灾备份)

数据备份的主要方式

本地备份异地保存

远程磁带库与光盘库

远程关键数据+定期备份

远程数据库复制

网络数据镜像

远程镜像磁盘

数据库容灾需要考虑以下问题

1 本地容灾还是异地容灾,异地容灾的网络带宽及稳定性。

2 灾备数据库

是否需要在线查询,

是否需要校验,比对某些核心数据是否与生产库一致。

3 RPO(数据恢复点目标,指生产系统所能容忍的数据丢失量)

RTO(恢复时间目标,指生产库发生故障到灾备库投入运行期望的时间)

4 备份模式选择,

单向备份模式(active/standby)

双向互备模式。

半双工:在任一时间点依然是单向模式(active/standby),只有一个数据库接受业务请求,当主库故障时允许主备自动切换。

全双工:(active /active),用于双业务中心异地互备,两个数据库同时接受业务请求。对于全双工模式需要考虑数据是否存在主键冲突。

5 部署及维护成本

灾备库是否支持异构(不同操作系统、不同数据库版本)、是否需要在主备库安装代理程序或在数据库额外创建对象、是否需要调表结构等。应用系统升级是否需要重新配置备份过程,是否需要人工干预等。

数据同步与传输

按照监管要求,核心业务系统生产中心的数据库数据能实时同步传输到异地的灾备中心。下面以MySQL数据库场景为例,介绍几种不同的同步传输技术,供数据库容灾架构规划参考。

1.主从复制

MySQL主从复制6是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。

每一组主从复制的连接,都由三个独立的线程协作实现。在主库上为每一个连接到主库的从库创建一个二进制日志(以下简称“binlog”)输出线程。每一个发送给从库的SQL事件或者数据变更事件,都会基于binlog传输给从库。而每一个从库都会为同步创建一个I/O线程和一个SQL线程。I/O线程连接到主库并请求主库发送binlog事件到从库,读取到的binlog会更新到本地中继日志(以下简称“relay-log”)文件。而SQL线程读取到I/O线程写到relay-log的更新事件后,在数据库中进行执行,从而完成数据从主库到从库的同步。

2.半同步复制

半同步复制是MySQL 5.5版本引入的机制7。半同步复制出现前,虽然异步复制可以满足主从实例之间的数据同步要求,但如果主库崩溃,将从库提升为主库时,原来的主库上可能有一部分已经提交的数据还没有来得及被从库接收,主从不一致将导致切换后的新主库丢失这一部分数据。

半同步复制改进了事务提交的逻辑。客户端在主库上写入一个事务时,需要等待从库接收到主库相关的binlog数据,且主库接收到从库的应答之后,客户端才能收到事务成功提交的消息。

早期的半同步复制存在一些缺陷。主库在等待应答的过程中,存储引擎内部已经提交的事务,只是阻塞返回客户端消息而已,此时如果有其他会话对该会话事务修改数据进行查询会查询到数据。如果此时出现主库故障转移,非发起数据库提交的客户端可能会出现幻读。所以MySQL 5.7版本对半同步进行了优化,称为增强半同步复制。优化后一个事务在存储引擎内部提交之前,必须要先收到从库的应答确认,否则不进行事务的最后提交,从而解决上述提到的幻读问题。

3.组复制

MySQL在5.7版本正式推出组复制(MySQL Group Replication8,以下简称“MGR”)机制。MGR集群由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点决议并通过才能得以提交。

引入组复制,主要是为了解决异步主从复制和半同步复制可能产生数据不一致的问题。组复制依靠分布式一致性协议实现了分布式架构下数据的最终一致性,提供了MySQL集群的多主写入方案。

MGR技术与Oracle RAC类似,对集群网络的要求非常高。网络延时和不稳定会严重影响MGR集群的正常工作,所以多用在单数据中心的内网环境中,对于主备和多活容灾架构下异地同步的场景,存在一定的短板。

4.分组强同步

半同步复制机制保障了主库故障切换时事务数据能够在至少一个从库中持久化存储,保证切换过程不丢失最新数据。随着数据库集群规模逐渐增大,同城和异地多机房灾备架构对同步的要求也愈发提高。当跨多机房部署的集群出现大规模故障,例如机房故障或专线故障时,主库和完成接收binlog数据的从库节点可能同时出现故障。因此在半同步的基础上,出现了分组强同步机制。

分组强同步机制能够保证在跨机房的场景下仍然保持高可用和强同步的能力。任何一个集群的从库可以分成若干组,在每一组中,只要有一个从库返回成功,则认为该组复制成功。当所有的组都复制成功,主库的事务才能完成提交。

分组强同步复制算法可以保证已经提交成功事务的数据不丢失,修复了MySQL原生半同步可能丢失数据的隐患,确保在主库发生故障情况下,不会因为二进制日志丢失导致从库丢失数据,进一步提升了数据的可靠性。

5.云数据库数据同步服务

为了与数据库产品配套,云平台供应商和数据库厂商推出数据传输服务(DTS),该服务用于在异构数据库之间进行数据迁移、数据同步和数据订阅。DTS 支持在业务不影响源数据库服务的前提下进行数据库迁移,利用实时同步通道构建异地容灾的高可用数据库架构。DTS 往往支持在主流数据库之间进行结构迁移、全量数据迁移和实时增量数据同步,其迁移同步任务还可按照同步范围并行进行同步。

数据传输服务在异地灾备场景下也被作为异步同步的重要方案。


数据恢复过程设计

本地恢复:在本地如果发生服务器故障、数据损坏、软件错误、病毒和最终用户错误等常见问题造成的数据丢失,利用本地的CDP即可快速恢复到任意时间点的数据。

异地恢复:我们直接将数据附加到已配置好的灾备服务器上,配置好网络路由等细节,即可启动应用,恢复原业务系统。

充分利用现有资源,完成数据的容灾保护,为保障数据的安全性和可靠性打下良好基础。

故障自动切换

当分布式数据库各类节点出现故障时,其监控系统应该能实时感知到故障种类和范围,包括各类节点的进程故障、服务器故障、磁盘故障和网络故障等,都可以依据预案配置,自动进行故障切换。

主备容灾架构下,容灾机房内会建设一套与生产机房相同规模的服务。如果生产中心出现灾难而不可用,数据库管理系统应该能自动将数据库服务切换至灾备中心。在异地容灾架构下,数据库甚至能够抵御地理级灾难,如地震洪水等。该类灾难可能会影响整个城市区域,使得同城机房均不可用,从而将服务切换至异地容灾中心。

1.集中式架构

以SQL Server数据库为例,介绍集中式架构数据库的典型故障切换技术。SQL Server采用SQL Server Always On可用性组来支持对一组分散的数据库实施故障转移。一个可用性组支持一组读写主数据库,以及一至八组对应的辅助数据库(包括一个主副本和最多四个同步提交辅助副本),每个副本承载一组辅助数据库,同时也是可用性组的潜在故障转移目标。发生故障转移时,数据库通过一组独立的服务器故障转移群集服务,将实例的资源所有权转移到指定的故障转移节点。然后SQL Server实例在故障转移节点上重新启动,使数据库恢复如常。无论在任何时刻,故障转移群集中只有一个节点可以承载故障转移群集实例和基础资源。

Always On可用性组主副本将每个主数据库的事务日志记录发送到每个辅助数据库,每个次要副本则缓存事务日志记录,然后将日志记录应用到相应的辅助数据库。主数据库与每个连接的辅助数据库独立进行数据同步。因此一个辅助数据库可以挂起或失败,但不会影响其他辅助数据库,一个主数据库也可以挂起或失败,也不会影响其他主数据库。

2.分布式架构

分布式数据库架构由于进程、磁盘和服务器等故障,往往导致集群的少量节点实例不可用,应对措施主要是通过冗余和副本节点进行替换止损,替换过程中可能出现主备切换或主从切换;对于交换机、路由器等网络设备发生故障,除了导致部分节点实例不可用外,还可能出现集群分裂情况,因此分布式数据库需要建立应付各种类型和规模故障的容灾能力。

(1)计算节点故障切换

当其中一个计算节点出现故障,流量以秒级切换至其他计算节点。整个切换过程对用户透明,应用代码无需变更,应用进程无需重启。

计算节点自愈分为故障感知和故障处理两部分。故障感知是指通过节点代理的定时任务定期执行自愈监控项采集任务,对计算节点的监控指标进行采集,并上报至服务自愈模块,该模块对节点的监控数据进行分析,对可能的故障信息进行定位和二次检测,若确定为故障则发起故障处理任务。故障处理是指服务自愈模块检测到故障节点,任务调度模块创建自愈任务,自动对故障节点进行恢复处理,处理完成后故障节点重新上线恢复正常服务。

(2)存储节点故障切换

分布式数据库采用多副本保存数据,存储节点通过多副本方式构成集群。最常见的集群模式是主从集群,即一个主节点负责写入,并基于一定的一致性算法同步至其他从库。当对外提供数据库服务时,主库承担读写服务,从库提供只读服务。当主库节点故障时,系统会自动发现并尝试恢复主库,如果主库无法恢复则发起主从切换。

切换协调模块为切换核心模块,负责存储节点健康诊断、切换仲裁与协调,并变更集群的拓扑信息。如上图所示,数据库实例的三个节点代理构成了切换的协调者。节点代理通过与决策集群通信获取其托管的集群元信息,并借助集群取得集群中其它节点代理的通讯方式。

分布式事务容灾

金融类业务数据模型复杂度较高,往往需要多维度进行数据处理和分析。进行业务系统分布式改造时,分片策略往往无法避免一个事务可能跨越多个数据分片的情况,需要通过分布式事务保证数据的强一致性。为保障分布式事务在跨节点处理时事务的原子性和一致性,一般使用分布式协议处理。常用两阶段提交、三阶段提交协议保障事务的原子性;使用Paxos、Raft等协议同步数据库的事务日志从而保障事务的一致性。支持分布式事务是金融级分布式数据库产品的核心特性,分布式事务的容灾能力是分布式系统容灾能力的重要考量指标。

百度分布式数据库GaiaDB-X采用基于优化的XA协议及两阶段提交算法实现分布式事务机制。其优势有:1)自研DMVCC11算法,解决分布式全局读一致性问题;2)解决MySQL原生XA在事务一致性和持久性上的缺陷;3)在宕机等故障场景下,能够基于持久化的全局事务状态对悬挂事务进行提交或回滚,保证分布式事务的容灾恢复能力;4)支持备份恢复的事务一致性、死锁检测等高级功能。

上图为GaiaDB-X的分布式事务架构,其中分布式事务处理器(Distributed Transaction Manager,以下简称“DTM”)负责SQL路由并管理分布式事务,是业务端访问数据库服务的入口。DTM使用Redis存储多版本的读视图基线并存储数据节点的分布式事务状态信息。

在宕机等故障场景下,全局事务状态持久化在高可用Redis集群中,故障自愈后,新节点能通过Redis恢复悬挂的事务,决定事务应该提交或回滚,保障分布式事务的高可用能力。

当分布式表进行备份和恢复时,如何保证恢复数据的一致性也是考验分布式数据库的难题。GaiaDB-X实现了基于全局事务点的备份恢复机制。

所有分片同时通过备库上定时任务启动备份任务独立进行备份,根据备份结果获取全局事务标识(简称“GTID”),并从主库日志中解析得到备份快照点及对应分片的全局事务信息,与备份数据一同备份。这样基于快照点与全局事务信息的对应关系,即可在备份恢复时保证各分片的全局事务一致性。

(五)应用应激防护

1.过载保护

为了保障数据库服务不受业务系统突发过量压力影响,导致系统稳定性下降,数据库需要提供对请求流量进行控制的功能,保障数据库服务在极端应用负载情况下仍能稳定运行。当监测到连接可用性下降时,会触发进入限流模式,基于实时查询量对主库和从库的访问量进行限制。限制策略有连接数限制、查询量限制和处理时间限制等。

2.SQL入侵防御

SQL入侵防御是对用户发送的SQL进行语法解析,过滤非法SQL的一种安全能力。数据库产品一般通过中间件或基于计算节点集成防火墙功能,对非法SQL进行过滤、阻断和报警,有效的预防SQL注入或恶意非法攻击。对于不同SQL,防火墙采用拦截模式或告警模式进行处理:拦截模式是指当发现非法SQL时,防火墙会自动阻断其执行,并发送报警通知;告警模式是指当发现非法SQL时,防火墙会允许其继续执行,但会发送告警通知。

基于SQL入侵防御技术,数据库可以有效识别和拦截外部的SQL攻击行为,并记录日志,供事后追查。例如各类SQL注入攻击模式,包括脱库、高危SQL等,SQL防火墙都能实现有效拦截。

3.数据回滚

在存储限额范围内,数据库将删除的数据库表移动到数据回收站保存。对于误操作或者需要恢复删除的情况,可以对数据库表进行DROP操作后进行快速“闪回”。数据回收站的数据会自动按照清理策略进行清除,不会影响正常数据库服务。

4.弹性扩容

当分布式数据库的负载不断增加,或出现短期的业务浪涌,可以使用弹性扩容功能对计算节点和存储节点进行扩容,保障数据库服务平稳运行。

(1)计算节点水平扩容

当集群的处理能力不足的时候,分布式数据库支持在线增加计算节点,扩展服务能力。同时,当集群的计算节点资源利用率较低时,支持降低集群规模,减少计算节点数量,降低服务能力,提供服务能力弹性扩展能力。

由于在分布式数据库系统中计算节点往往被设计为无状态,通过新增或减少计算节点数量,并在配置节点中进行相关元数据的更新即可完成计算节点的调整。

(2)存储节点水平扩容

存储节点水平扩展通过增加存储节点线性提升集群整体容量和吞吐性能,分布式数据库的控制台可以发起扩容操作。以百度分布式数据库为例,该操作主要分成四个步骤:1)创建新的存储节点;2)重新分布数据,并保持新节点和原节点数据实时同步;3)变更计算节点拓扑,切换流量到新节点;4)清理原节点上的数据。

在整体扩容过程中,第三步会对业务有秒级的连接闪断(一般应用层具有重连机制),因此分布式数据库往往提供手动触发第三步切换操作,运维人员可选择业务低峰期完成切换。

本文聚焦金融领域的数据库在灾备方面的技术内容。介绍了容灾与备份的定义、分类,分析了金融机构灾备现状、需求与灾备市场情况,梳理了主流数据库容灾备份技术架构、实现方式与部署方案。

相关参考

数据备份及容灾(怎么做硬盘数据容灾备份,数据容灾备份方案)

最关键的问题在于如何利用数据备份和容灾策略尽快恢复业务系统,恢复原有的业务数据,使其能正常运行。为了能在需要的时候恢复数据,企业必须建立自己的数据备份与容灾系统。  数据备份是容灾的基础,是指为防止系...

数据容灾备份方案(数据容灾备份方案怎么做?)

数据容灾备份方案概述传统容灾在业务痛点:1传统容灾在业务同步过程中数据复制,由于数据格式复杂、数据量大,数据在传输过程中,网络受带宽的限制,无法满足RPO和RTO的要求。2容灾备份成本高、备份系统消耗了冗长的恢...

数据的容灾备份方案(异地容灾备份解决方案)

什么是异地容灾备份首先说下容灾备份其实是两个不同的概念,容灾是指企业为了保证业务系统在遭受意外原因的情况下能保证原有的业务系统正常运转而在异地部署了一套与现有的业务系统一样的生产环境,保证业务的正常运...

异地备份解决方案(异地容灾备份介绍)

异地容灾,顾名思义就是在不同的地域,构建一套或者多套相同的应用或者数据库,起到灾难后立刻接管的作用。异地容灾对企业应用及数据库起到了安全性、业务连续性等方面的作用,因此他与私有云或者公共云起到的容灾结...

广州数据容灾备份有哪些公司(鼎甲科技:数据灾备国产路上的破冰者)

...科技)的产品便扮演着“硬盘”的角色,行业专业名词为容灾备份(简称灾备)一体机,他们被称为数据安全的最后一道防线。这一直都是一个不为普通大众关注的细分领域。搜索鼎甲科技相关资讯,你也只能找

恢复与备份是什么意思(档案的“备份”与“归档”有何不同?)

随着档案信息化建设与数字化工作的快速发展,档案作为一种原生信息资源,其重要性正日益凸显出来。面对档案数据量骤增的现状,如何充分运用先进的技术手段,保证档案数据资源的安全,充分长效发挥其价值,是当前档案...

数据备份(微信怎么备份数据?微信聊天记录备份迁移和恢复教程)

微信怎么备份数据?当我们在更换手机、重置系统、版本降级的时候,会导致原来的微信聊天记录等数据丢失。如果想要在这些情况下保留微信聊天数据,则需要提前对微信聊天记录进行备份,方便之后恢复。今天小编给大家带...

文件备份软件(开源文件备份同步神器-freefilesync)

...文件夹比较和同步软件,可以创建和管理所有重要文件的备份副本。FreeFileSync不是每次都复制每个文件,而是确定源文件夹和目标文件夹之间的差异,并仅传输所需的最少数据量。FreeFileSync是开源软

排烟风机改造(​数据中心:气体灭火灾后排风及配电设计探讨)

...的电子信息系统在其他数据中心内安装有承担相同功能的备份系统时,也可设置自动喷水灭火系统。13.1.2B级和C级数据中心的主机房宜设置气体灭火系统,也可设置细水雾

彩盒提手(数据安全最重要,个人备份怎么选,市售五款RAID磁盘阵列横向评测)

...略的,那就是数据。数据安全保护说到底还是三个字--勤备份。成本最低的莫过于冷备份,但是保管安全性不高,而且检索麻烦,从而遗忘甚至丢失。硬盘+硬盘盒,这样方便临时查找,但受限于硬盘盒设计并不适合长时间联机使...