一种数据库实时备份方法与流程

文档序号:11176983阅读:1205来源:国知局
一种数据库实时备份方法与流程

本发明涉及计算机数据处理技术领域,尤其涉及一种数据库实时备份方法。



背景技术:

实时备份是指实时地对业务数据进行备份的方式。相对于传统定时备份的方式,实时备份可以达到极小的rpo(recoverypointobjective),最大程度上避免由于故障导致的数据丢失。

目前市场上广泛使用的实时备份方式是cdp(continuousdataprotection,也称连续数据保护)。这种备份方式主要通过在硬件层面或操作系统驱动程序层面捕获磁盘的写操作,然后立即将捕获到的变化数据保存到备份设备上。

这种方式存在以下一些问题:

监控及备份的粒度太大,由于cdp实现在硬件或系统驱动层面,因此其捕获磁盘写操作的粒度最小只能到卷级别,捕获的数据不仅包含所有数据文件和日志文件,还包括同个卷上写入的其它数据,对带宽和存储设备的空间、性能都有较高要求。

稳定性存在隐患,无论软硬件驱动的实现方式,发生问题都直接影响操作系统的正常运行,甚至可能造成业务停摆、数据丢失。同时由于备份的粒度较大,备份系统如果性能达不到要求也可能影响业务系统的性能。

兼容性不好,不同操作系统的驱动实现方式完全不同,甚至不同操作系统版本的驱动接口都有差异。而硬件方式也可能与操作系统不能完全兼容。

大部分并非真正“连续”,大部分cdp实现都只能对备份数据定时做快照,快照的数量是有限的,恢复时只能恢复到某个快照点,而无法恢复到任意“连续”的时间点。

成本较高,如前面所述,由于对带宽、备份设备存储空间、性能等有较高要求,而且兼容性不好导致需要对每个操作系统及版本进行单独开发和维护,总体成本较高。

众所周知,数据库的事务需要保证acid(atomicity,consistency,isolation,durability)特性。为了实现这一目标的同时保证io的效率,主流数据库均使用wal(writeaheadlogging)的方式提交事务。具体地说,就是提交事务时,数据库管理系统先将事务执行的操作以线性的方式记录到事务日志中,并把事务日志写入磁盘,而事务对数据文件修改产生的修改数据仍保留在内存中(在以后合适的时间再写入磁盘)。通常该过程的io数据量较小,所以既保证了事务的持久性,又不会对数据库性能造成明显的影响。当发生系统故障后,数据库管理系统使用事务日志对未写入磁盘的缓存数据进行重做,保证了数据的一致性。

在这个过程中,事务日志起了一个关键作用,这意味着实时备份数据库的事务日志即可实现对数据库的实时保护。



技术实现要素:

本发明正是针对现有技术存在的不足,提供了一种数据库实时备份方法。

为解决上述问题,本发明所采取的技术方案如下:

一种数据库实时备份方法,通过以下模块实现:

a、事务日志监控;

该模块通过操作系统通知方式或轮循方式实时监控数据库事务日志的变化,只要数据库管理系统往事务日志中写入事务信息,该模块即可立即通知事务日志分析模块;

在提供文件改变通知机制的操作系统上,通过获取系统通知的方式监控事务日志的变化,在其它系统上,通过轮循文件内容的方式检测事务日志的变化,无论采用哪种方式,都是基于操作系统之上的,因此不需要任何额外的硬件或驱动程序的支持,对操作系统没有任何影响;

b、事务日志分析;

得到监控模块通知后,该模块通过解析事务日志内容,捕获新写入的事务数据,捕获到的事务数据将由传输模块发送到备份设备进行存储;

由于不同数据库的事务日志格式不同,该模块需要对每种数据库类型进行单独处理;

c、传输模块;

将接收到的事务数据发送到备份设备,备份设备是存储设备或备份服务器;

d、恢复模块;

在数据库出现故障后,该模块能够从备份设备中读取备份的事务数据,并结合传统备份,将数据库恢复到故障发生前的任意时间点,精确到每一个事务。

本发明与现有技术相比较,本发明的实施效果如下:

本发明提供的一种数据库实时备份方法,具有以下优点:

1、细粒度监控及备份。

只监控数据库的事务日志,只备份事务日志变化的内容。相对cdp监控及备份整个卷的变化数据,连续日志备份的备份粒度小了一个数量级以上,无论对业务系统、备份设备,还是对网络带宽,都几乎没有任何压力。

2、稳定可靠。

如前文所述,对事务日志的监控基于操作系统之上,不需要额外的硬件或驱动程序支持,不会对操作系统产生致命的影响。即使极端情况下软件进程出现崩溃,也不会对业务系统有任何影响。

3、兼容性好。

只使用操作系统提供的通知机制或通用的文件操作接口进行监控,可普遍适用于各种操作系统及版本,并且兼容未来的操作系统版本。

4、实现真正的“连续”保护。

由于实时备份了事务日志,并且通过数据库本身提供的恢复接口重做事务达到恢复的目的,因此可以恢复到故障发生前的任意时间点,精确到每一个事务。

5、高效率低成本。

不需要额外硬件,不需要开发和维护驱动程序,对备份设备和带宽没有特别的要求。普通的软硬件成本即可高效地实现对高性能要求的数据库的实时备份。

附图说明

图1为本发明提供的一种数据库实时备份方法的流程图。

具体实施方式

下面将结合具体的实施例和附图来说明本发明的内容。

请参阅图1,图1为本发明提供的一种数据库实时备份方法的流程图。

一种数据库实时备份方法,通过以下模块实现:

a、事务日志监控;

该模块通过操作系统通知方式或轮循方式实时监控数据库事务日志的变化,只要数据库管理系统往事务日志中写入事务信息,该模块即可立即通知事务日志分析模块;

在提供文件改变通知机制的操作系统上,通过获取系统通知的方式监控事务日志的变化,在其它系统上,通过轮循文件内容的方式检测事务日志的变化,无论采用哪种方式,都是基于操作系统之上的,因此不需要任何额外的硬件或驱动程序的支持,对操作系统没有任何影响;

b、事务日志分析;

得到监控模块通知后,该模块通过解析事务日志内容,捕获新写入的事务数据,捕获到的事务数据将由传输模块发送到备份设备进行存储;

由于不同数据库的事务日志格式不同,该模块需要对每种数据库类型进行单独处理,例如oracle使用固定块大小的方式循环写多个在线日志,而sqlserver在事务日志文件中包含多个vlf(virtuallogfiles)的方式,mysql则采用连续写二进制日志的方式。

c、传输模块;

将接收到的事务数据发送到备份设备,备份设备是存储设备或备份服务器;

d、恢复模块;

在数据库出现故障后,该模块能够从备份设备中读取备份的事务数据,并结合传统备份,将数据库恢复到故障发生前的任意时间点,精确到每一个事务。

本发明提供的一种数据库实时备份方法,具有以下优点:

1、细粒度监控及备份。

只监控数据库的事务日志,只备份事务日志变化的内容。相对cdp监控及备份整个卷的变化数据,连续日志备份的备份粒度小了一个数量级以上,无论对业务系统、备份设备,还是对网络带宽,都几乎没有任何压力。

2、稳定可靠。

如前文所述,对事务日志的监控基于操作系统之上,不需要额外的硬件或驱动程序支持,不会对操作系统产生致命的影响。即使极端情况下软件进程出现崩溃,也不会对业务系统有任何影响。

3、兼容性好。

只使用操作系统提供的通知机制或通用的文件操作接口进行监控,可普遍适用于各种操作系统及版本,并且兼容未来的操作系统版本。

4、实现真正的“连续”保护。

由于实时备份了事务日志,并且通过数据库本身提供的恢复接口重做事务达到恢复的目的,因此可以恢复到故障发生前的任意时间点,精确到每一个事务。

5、高效率低成本。

不需要额外硬件,不需要开发和维护驱动程序,对备份设备和带宽没有特别的要求。普通的软硬件成本即可高效地实现对高性能要求的数据库的实时备份。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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