数据库容灾系统和方法与流程

文档序号:12595799阅读:409来源:国知局
数据库容灾系统和方法与流程

本发明属于涉及数据库的信息安全技术领域,尤其涉及一种数据库容灾系统和方法。



背景技术:

随着社会的发展,越来越多的数据采用电子化形式存储;无论是生活、工作、学习都离不开信息系统的支撑。数据库系统作为信息化技术的核心,其安全性和可靠性直接影响到整个信息化系统。数据库容灾备份一直是保护数据安全的一个重要步骤,能够实时对数据库进行备份以防止数据丢失。现有的数据库容灾备份技术主要有以下几种:

1、早期的数据库复制主要基于数据文件的复制,是基于底层存储或者操作系统的数据同步能力;这样的复制技术对性能影响大,且不能保证及时性。

2、基于日志的数据库复制,在备份端建立同样的基础库,通过在备份端重做日志的方式的实时同步;备份端实时进行日志重做还原,从而达到热备份的目的。这种方案的缺陷在于:备份库在同步过程中不能进行实时查询,只有在主库出现问题停止服务且数据库服务发生切换时,才能读取备份库的内容。

3、实时捕获主库的数据库事务,并且实时同步到至少一个备份库中,使得备份库在同步过程中处于Open状态;这种方案实现了数据的实时查询和在线分析,适合大数据在线分析的需求。

但是现有技术中对于整个数据库都采用相同的容灾备份方案,这样导致整个系统的容灾备份无法满足需要。



技术实现要素:

针对现有技术中整个数据库都采用相同的容灾备份方案的问题,本发明实施例的目的是提供一种有效且高效的数据库容灾系统和方法。

为了解决上述问题,本发明实施例提出了一种数据库容灾系统,包括:主数据库、备数据库、备份控制机构;

其中所述备份控制机构包括:用于监测主数据库和备数据库状态的HA模块、用于在接收到对主数据库的修改操作时生成WAL日志的日志模块、用于将日志模块生成的WAL日志从主数据库传输到备数据库的流复制模块、用于解析WAL日志以使备数据库进行与主数据库相应的修改操作的日志恢复操作模块;

其中所述日志模块在主数据库接收到修改操作时生成WAL日志,并通过流复制模块发送到备数据库;备数据库接收到WAL日志后对WAL日志进行解析,以根据所述WAL日志对备数据库进行与主数据库相同的修改操作;

当所述HA模块监测到主数据库或备数据库发生故障时根据预设的故障处理机制进行模式切换,并在检测到故障恢复时根据预设的故障恢复机制进行历史数据同步。

其中,所述日志模块还用于执行以下操作:利用数据库中间件解析接收到的SQL语句,将所述SQL语句中的修改操作请求和查询请求进行分离,并将修改操作请求发送到主数据库、将查询操作请求发送到备数据库。

其中,所述日志模块还用于执行以下操作:逐条记录主数据库的数据块的变化,并依此生成WAL日志,并将所述WAL日志通过流复制模块发送到备数据库。

其中,所述系统还包括快照模块,所述快找模块在预设时间点对备数据库生成快照,以在接收到查询操作请求时根据生成的快照进行相应查询操作。

同时,本发明实施例还提出了一种利用如前任一项所述的系统的数据库容灾方法,包括:

监测到主数据库或备数据库发生故障时根据预设的故障处理机制进行模式切换,并在检测到故障恢复时根据预设的故障恢复机制进行历史数据同步;

监测在主数据库,以在主数据库接收到修改操作时生成WAL日志,并通过流复制技术发送到备数据库;备数据库接收到WAL日志后对WAL日志进行解析,以根据所述WAL日志对备数据库进行与主数据库相同的修改操作。

其中,所述方法还包括:利用数据库中间件解析接收到的SQL语句,将所述SQL语句中的修改操作请求和查询请求进行分离,并将修改操作请求发送到主数据库、将查询操作请求发送到备数据库。

其中,所述监测在主数据库,以在主数据库接收到修改操作时生成WAL日志,具体包括:逐条记录主数据库的数据块的变化,并依此生成WAL日志,并将所述WAL日志通过流复制模块发送到备数据库。

其中,所述方法还包括:在预设时间点对备数据库生成快照,以在接收到查询操作请求时根据生成的快照进行相应查询操作。

本发明的上述技术方案的有益效果如下:上述的技术方案提出了一种数据库容灾系统和方法,采用了关系数据库块级别的数据复制技术、灾备端数据库处于恢复状态下的数据库只读技术、灾备端数据库分钟级快速切换技术、灾备端数据库在轮换运行后或灾难切换后的快速回切与快速重建技术、生产端与灾备端数据库灾备一体化。在工作时,修改操作由主数据库完成,查询操作则由备数据库完成;这样可以实现负载均衡。同时备数据库提供快照功能,这样在进行一些报表、统计服务时无需占用主数据库的资源,且不影响主数据库读写。

附图说明

图1为本发明的复制原理图;

图2为本发明的读写分离原理图;

图3为本发明的主备切换演示图;

图4为本发明的主备回切演示图;

图5为本发明的灾备一体化架构图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

如图1-图5所示的,本发明实施例提出了一种数据库容灾系统,包括:主数据库、备数据库、备份控制机构;

其中所述备份控制机构包括:用于监测主数据库和备数据库状态的HA模块、用于在接收到对主数据库的修改操作时生成WAL日志的日志模块、用于将日志模块生成的WAL日志从主数据库传输到备数据库的流复制模块、用于解析WAL日志以使备数据库进行与主数据库相应的修改操作的日志恢复操作模块;

其中所述日志模块在主数据库接收到修改操作时生成WAL日志,并通过流复制模块发送到备数据库;备数据库接收到WAL日志后对WAL日志进行解析,以根据所述WAL日志对备数据库进行与主数据库相同的修改操作;

当所述HA模块监测到主数据库或备数据库发生故障时根据预设的故障处理机制进行模式切换,并在检测到故障恢复时根据预设的故障恢复机制进行历史数据同步。

其中,所述日志模块还用于执行以下操作:利用数据库中间件解析接收到的SQL语句,将所述SQL语句中的修改操作请求和查询请求进行分离,并将修改操作请求发送到主数据库、将查询操作请求发送到备数据库。

其中,所述日志模块还用于执行以下操作:逐条记录主数据库的数据块的变化,并依此生成WAL日志,并将所述WAL日志通过流复制模块发送到备数据库。

其中,所述系统还包括快照模块,所述快找模块在预设时间点对备数据库生成快照,以在接收到查询操作请求时根据生成的快照进行相应查询操作。

同时,本发明实施例还提出了一种利用如前任一项所述的系统的数据库容灾方法,包括:

监测到主数据库或备数据库发生故障时根据预设的故障处理机制进行模式切换,并在检测到故障恢复时根据预设的故障恢复机制进行历史数据同步;

监测在主数据库,以在主数据库接收到修改操作时生成WAL日志,并通过流复制技术发送到备数据库;备数据库接收到WAL日志后对WAL日志进行解析,以根据所述WAL日志对备数据库进行与主数据库相同的修改操作。

其中,所述方法还包括:利用数据库中间件解析接收到的SQL语句,将所述SQL语句中的修改操作请求和查询请求进行分离,并将修改操作请求发送到主数据库、将查询操作请求发送到备数据库。

其中,所述监测在主数据库,以在主数据库接收到修改操作时生成WAL日志,具体包括:逐条记录主数据库的数据块的变化,并依此生成WAL日志,并将所述WAL日志通过流复制模块发送到备数据库。

其中,所述方法还包括:在预设时间点对备数据库生成快照,以在接收到查询操作请求时根据生成的快照进行相应查询操作。

本发明根据对数据库操作的层级不同和内容不同,包括:关系数据库块级别的数据复制技术、灾备端数据库处于恢复状态下的数据库只读技术、灾备端数据库分钟级快速切换技术、灾备端数据库在轮换运行后或灾难切换后的快速回切与快速重建技术、生产端与灾备端数据库灾备一体化。

1、关系数据库块级别的数据复制,如图2所示的,采用流复制原理,即将主库物理日志以“流”的形式传入备库,备库通过复制进程对传入的日志逐条重演并写入备机的物理日志中。

针对数据块级别的数据复制技术,主要包含以下内容:

①主备库数据同步的延迟情况分析方法。

②主库断电或者自动重启,保证数据一致性和完整性。

③复制过程中发生网络中断等情况,保证数据一致性和完整性。

④备库恢复过程中,发生宕机或者断电,数据的一致性和完整性。

2、灾备端数据库处于恢复状态下的数据库只读。建立数据库中间件,解析传输过来的SQL语句,将所有的写操作和查询请求通过配置文件进行分离,并分别发送至主从数据库,达到备库分担主库的压力负载的效果;同时,主库通过流复制技术,将数据块的变化,逐条记录传输给备库,保证两边的数据库数据一致性。备库则利用快照技术,按照检查点时间定期产生快照,从而保证查询与恢复的同时进行,即在介质恢复过程中,可以对备库进行统计和查询操作。同时,当出现一主多备的情况,中间件会采取分布式计算中的动态算法和自适应算法来保证备机间的负载均衡;也会考虑级联复制的部署方式来解决主机的性能问题。

在介质恢复过程中,备库处于只读状态,可以处理查询、报表和统计等只读业务。

①判断当前事务为事务性操作或者是查询类操作的相关方法。

②在做介质恢复时,保证备库的状态是只读状态。

③如何将读写操作请求自动发送到对应主备库服务器。

④如何保证各节点的负载均衡。

⑤提出数据库读写分离的解决方案。

3、灾备端数据库分钟级快速切换;如图3所示。主备切换架构可以划分为五个主要模块:主库、备库、HA模块、wal recover模块以及连接它们的流复制模块。主库接收用户请求,对所有数据库修改操作生成WAL日志,根据复制设置,在适当时机,通过流复制模块将WAL日志发送到备库。备库收到WAL日志后,由wal recover模块解析WAL日志,进行重做主库操作,实现数据同步。HA模块监控主库和备库状态,当检测到故障发生时,启动相应的故障处理流程,进行模式切换;当检测到故障站点恢复时,启动恢复流程,同步历史数据。

在主库故障,并且短时间内无法恢复情况下,为持续提供数据库服务,需进行主备切换,将备库提升为主库,继续对外提供服务。同时为缩短服务中断时间,最小化对业务运行的影响,实现分钟级快速切换。

主备切换分为如下两种模式:

①自动切换模式:主库故障时,备库自动切换为主库,继续对外提供服务。

②手动切换模式:系统升级、维护、演练过程中,手工切换主备库,即将主库变为备库,备库变为主库。

4、灾备端数据库在轮换运行后或灾难切换后的快速回切与快速重建;如图4所示。通常情况下,主数据库服务器硬件配置优于备数据库服务器。这样在主库故障排除后,为了保持数据库服务的高性能,需进行一次回切操作,恢复容灾系统原有架构。同时在主库故障短时间内无法排除的情况下,为避免备库单点运行,降低业务终断风险,需对主库进行快速重建,将容灾系统恢复到可提供故障自动切换的高可用状态。

系统回切主要由历史WAL日志同步、历史WAL日志应用及一次切换操作组成。通过加速回切各步骤,可实现快速回切目标,具体如下:

①日志压缩传输:历史WAL日志采用压缩格式传输,减少网络传输所需时间。

②并行恢复:Wal recover模块开启并行操作,快速应用wal日志,缩短主备同步时间。

③快速切换:采用快速切换技术实现主备切换。

5、生产端与灾备端数据库灾备一体化,如图5所示。开发并完善生产端与灾备端数据库灾备一体化,由灾备端提供生产端本地备份功能。

①本地容灾系统

本地容灾系统用于当生产系统出现硬件故障、数据库故障等,例如:服务器无法启动、磁盘阵列无法启动、数据库的性能问题、或者数据库无法启动,导致不能正常提供服务时,快速接管生产系统,以确保业务运行的连续性。

在实现容灾的同时,用户可以只读访问备用数据库,执行报表生成、数据备份等功能,减轻主用数据库的负载,提高资源利用率。

②本地备份系统

本地备份系统采用数据库备份工具,对生产数据进行自动、定时备份。根据业务可恢复性需求,形成历史备份版本。通过这些备份版本,可以将数据恢复到指定时间内的任意一个时间点。

该系统主要用于防范人为误操作造成的数据破坏,比如Truncate Table、Drop Table等造成的数据破坏,尤其是历史数据的破坏,这时需要利用本地备份系统来恢复丢失的数据。

③异地容灾系统

采用数据复制技术将生产系统的数据同步/异步复制到异地容灾系统上。

异地容灾系统用于本地发生电力故障、网络故障、火灾、地震以及其他环境故障时,业务可以在短期内快速接管至异地的容灾系统上,以确保业务不间断运行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1