一种实时数据库备份恢复方法

文档序号:8528210阅读:850来源:国知局
一种实时数据库备份恢复方法
【技术领域】
[0001]本发明属于实时数据库在信息化系统应用领域,特别是涉及一种信息系统实时数据库在数据备份以及数据恢复的方法。
【背景技术】
[0002]随着生产系统信息化、自动化水平的不断提高,数据库技术的不断发展和广泛应用,为保证综合业务信息实时处理系统(简称综合业务系统)7 X 24小时不间断地安全生产运行,通常在系统应用层面和数据库层面通过软硬件容错技术来提高综合业务系统的安全稳定性。
[0003]系统应用层面常见的有磁盘阵列机、双机热备、流带备份等容错技术,主要从系统应用层面通过双机冗余等方式同时维护多套运行系统,保证系统稳定。
[0004]数据库层面则主要通过数据库备份恢复技术来确保在系统运行发生故障的情况下不丢失数据。常见的数据库备份恢复方案主要有物理备份和逻辑备份两种。物理备份拷贝数据库的物理文件(包括控制文件、数据文件、日志文件等)入磁带或其他存储介质,根据数据库运行状态又分为脱机备份(冷备)和联机备份(热备)两种。脱机备份是指在关闭数据库的情况下,将数据库的物理文件拷贝到存储介质,一般利用操作系统自带的命令和工具来完成,操作简单,缺点在于这种方法往往需要将数据库关闭,对于系统应用的连续性有一定影响。联机备份是指在数据库开启并提供用户访问的情况下,对物理文件做操作系统级别的备份,缺点是操作比较复杂,需要对操作系统有较深的认识。逻辑备份是针对用户、表空间、表、分区等数据库逻辑组件进行备份,一般将数据库逻辑组件信息导出转存为二进制文件,恢复操作中,将导出的二进制文件重新装载到目标数据库中。特点在于操作灵活,可实现不同数据库之间的数据迀移,可以对单个数据库对象进行备份。许多商业数据库厂商采用不同的实现方式提供了很多功能强大的逻辑磁带读写工具,如Oracle公司的export/import、数据泵技术等。然而现有的逻辑备份方法大多是针对关系型数据库,对于大规模归档流数据的备份恢复在效率上很难满足,而针对以处理大规模归档流数据见长的实时数据库,其备份恢复方法目前则比较缺乏,主要研宄成果集中在检查点技术、日志记录、协议、重装算法等,但大多适用于内存数据库方面。

【发明内容】

[0005]本发明提供一种实时数据库备份恢复方法,目的是为了解决单个实时数据库在本地磁盘的备份和恢复问题,该实时数据库的数据存储结构需满足以下几个条件:1、物理文件包括控制文件、缓存文件、索引文件、数据文件、日志文件;2、索引文件、数据文件无时间标识,无法以时间段进行离线分离,即不能通过单独拷贝某时间段的索引、数据文件进行备份;3、数据文件中的数据结构包含文件头和若干均匀大小的文件块,每个文件块中包含若干数据节点(数据节点是一个数据集合)。
[0006]本发明采用的技术方案主要包含三个部分:一、离线(数据库停止运行)全量备份及其恢复,主要解决实时数据库停止运行情况下的全量备份和全量恢复;二、在线(数据库正常运行)全量备份及其恢复,主要解决实时数据库开启并提供用户查询访问的情况下的全量备份和全量恢复;三、增量备份及其恢复,主要解决实时数据库开启并提供正常服务的情况下,对新增加或新更新的物理文件进行备份及其恢复。
[0007]本发明的方法具有如下特点:
[0008](a)适用于实时数据库在信息化系统应用领域,特别是涉及信息系统实时数据库在数据备份以及数据恢复方面。
[0009](b)数据库的数据结构特定并且索引文件和数据文件分别耦合在一起,无时间标识,无法以时间段进行离线分离,不能通过单独拷贝某时间段的索引、数据文件进行备份。
[0010](C)提供数据库离线和在线两种备份方式。
[0011](d)提供数据库物理文件全量和增量两种备份恢复方式。
[0012](e)增量备份通过备份数据文件新增的文件块、控制文件、缓存文件和日志文件相结合的方式实现。
[0013](f)适用于索引、数据文件号按序增长的数据库系统。
[0014]本发明中的离线全量备份恢复方案包括如下步骤:
[0015]步骤A:停止正在运行的实时数据库,依次拷贝物理文件至备份目录;
[0016]步骤B:打开控制文件,读取索引文件和数据文件列表,更新文件所在目录为备份目录;
[0017]步骤C:创建全量备份信息记录文件,保存在全量备份目录中。打开文件编号最大的数据文件,读取出文件头信息,根据该信息获取数据库最后一次分配文件块的时间,将该时间与该文件的文件名、文件号、已写数据的偏移位置写入全量备份信息记录文件中供增量备份使用;
[0018]步骤D:更新备份历史记录文件,记录备份时间、备份类型及备份目录等信息,备份结束。
[0019]步骤E:离线全量恢复时,由于离线全量备份出的物理文件本身就是完整的一套数据库文件,因此可直接使用全量备份目录中的物理文件启动数据库。
[0020]本发明中的在线全量备份恢复方案包括如下步骤:
[0021]步骤A:对实时数据库加写锁,确保备份过程中无新数据处理,数据库对外依然提供查询业务;
[0022]步骤B:执行离线全量备份恢复方案步骤B、C、D ;
[0023]步骤C:对实时数据库解写锁,恢复实时数据库提交处理业务;
[0024]步骤D:同离线全量恢复一样,在线全量恢复时,由于全量备份出的物理文件本身就是完整的一套数据库文件,因此可直接使用全量备份目录中的物理文件启动数据库。
[0025]本发明中的增量备份方案包括如下步骤:
[0026]步骤A:获取增量备份方式及开始、结束时间。提供三种增量备份方式:①参数为结束时间endTime,即备份从上次备份时间点到endTime之间新近分配的所有文件块。②参数为天数N,即备份从上次备份时间点以后N天分配的所有文件块。③无参数,即备份从上次备份时间点到系统当前时间之间分配的所有文件块;
[0027]步骤B:备份控制文件。创建增量备份目录,以时间命名。将数据库控制文件拷贝至增量备份目录下;
[0028]步骤C:备份缓存文件。调用数据库接口将缓存数据取出,写入自定义格式的缓存文件中;
[0029]步骤D:备份日志文件。将数据库日志文件拷贝至增量备份目录下;
[0030]步骤E:备份增量数据文件。读取备份信息记录文件,获取上次备份时记录的最大文件号及偏移,从该位置开始顺序读取文件块至备份结束时间,将读取的文件块写入自定义格式数据文件中;
[0031]步骤F:创建增量备份信息记录文件,保存在本次增量备份目录中。打开文件编号最大的数据文件,读取出文件头信息,根据该信息获取数据库最后一次分配文件块的时间,将该时间与该文件的文件名、文件号、已写数据的偏移位置写入增量备份信息记录文件中供下次增量备份使用;
[0032]步骤G:更新备份历史记录文件,记录备份时间、备份类型及备份目录等信息,备份结束。
[0033]本发明中的增量数据恢复方案包括如下步骤:
[0034]步骤A:通过输入参数获取恢复时间点,顺序查找增量备份目录,选择小于等于恢复时间点的所有增量备份目录以及全量备份目录作为恢复使用目录;
[0035]步骤B:以增量备份目录η (I SnS N,N为步骤A获取的增量备份目录个数)下的控制文件Fl为基础,通过比较全备目录下的控制文件F2进行调整,如果Fl中的测点在F2中存在,则调整该测点是根节点为F2中对应的根节点指针,便于连接全量备份数据。如果Fl中的测点在F2中不存在,则说明该测点为新增测点,将其根节点指针置为0,便于后续数据添加。如果F2中的测点在Fl中不存在,则说明该测点被删除,删除该测点数据。使最终生成的控制文件F3为恢复时间点A时刻的控制文件;
[0036]步骤C:以步骤B生成的控制文件和全备目录中的数据、索引文件为基准,临时启动数据库DB_T ;
[0037]步骤D:读取增量备份目录n(l<n<N,N为步骤A获取的增量备份目录个数)下的自定义格式缓存文件,按序回写至DB_T ;
[0038]步骤E:读取增量备份目录n(l<n<N,N为步骤A获取的增量备份目录个数)下的自定义格式数据文件,按序回写至DB_T ;
[0039]步骤F:读取增量备份目录n(l<n<N,N为步骤A获取的增量备份目录个数)的日志文件,获取其中的删除数据信息,删除DB_T中的数据;
[0040]步骤G:递归至步骤B,实现全部增量目录的文件恢复,关闭数据库DB_T。
[0041]本发明的有益效果如下:
[0042]首先,对实时数据库数据备份以及数据恢复方面提供了一套完整可行的解决方案;其次,本方案增量数据备份和恢复的实现方式,解决了长期以来使用全量备份导致的磁盘空间急剧增长的缺陷,节约维护成本;再次,由于增量备份数据量远小于全量备份,因此时间开销比全量备份要小得多,节约了备份数据的维护时间及成本;最后,方案中的增量备份支持数据库系统在线运行,不影响已经投运的业务系统,有效的保证了业务系统稳定性和有效性。
【附图说明】
[0043]图1是本发明实时数据库备份恢复方法的总体实现流程图;
[0044]图2是本发明中的离线全量备份过程的实现流程图;
[0045]图3是本发明中的在线全量备份过程的实现流程图;
[0046]图4是本发明中的增量备份过程的实现流程图;
[0047]图5是本发明中的增量恢复过程的实现流程图。
【具体实施方式】
[0048]下面结合附图对本发明作进一步详细说明。
[0049]本发明实时数据库备份恢复方法的总体实现流程图如图1所示。图中左边的模块表示原实时数据库,右边虚框内的模块表示针对原实时数据库备份出来的文件结构,向右的箭头表示备份过程,其中右边虚框内最上方的模块为h时刻对原实时数据库做的全量备份,全量备份下方的若干个模块表示k2lvkjt刻对原实时数据库做的增量备份。数据恢复则由全量备份模块和若干个增量模块共同实现,例如,需要恢复k3时刻的数据库文件,则需要全量备份模块、增量备份一模块和增量备份二模块共同完成数据恢复。以附图1所示的备份示意图为例,假设原实时数据库的工作目录为D:\HS-1,要完成原实时数据库在匕时刻的全量备份和k2k3…匕时刻的增量备份(均备份在本地文件系统),并依据备份文件进行数据恢复至k4时刻的数据库文件,具体的实施方式如下:
[0050]步骤I A1时刻对原实时数据库进行在线全量备份,生成全量备份,全量备份目录设为D: \HS-l-fbak,备份的文件包括控制文件CTLl、缓存文件CAHl、索引文件INXl、数据文件D
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1