CN103345470A - 一种数据库容灾方法、系统及服务器 - Google Patents
一种数据库容灾方法、系统及服务器 Download PDFInfo
- Publication number
- CN103345470A CN103345470A CN2013102135916A CN201310213591A CN103345470A CN 103345470 A CN103345470 A CN 103345470A CN 2013102135916 A CN2013102135916 A CN 2013102135916A CN 201310213591 A CN201310213591 A CN 201310213591A CN 103345470 A CN103345470 A CN 103345470A
- Authority
- CN
- China
- Prior art keywords
- transaction journal
- kinds
- information
- affairs
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据处理领域,提供了一种数据库容灾方法、系统及服务器,所述数据库容灾方法包括事务日志提取步骤、事务日志分析步骤和事务日志装载步骤。本发明实施例通过将事务日志的复制进程划分为了提取、分析和装载三个阶段,在不同阶段采用不同的方法来保证链路的可恢复性,实现全链路的可恢复,具有强大的容错能力和恢复能力,实现了复杂链路环境下的系统整体可恢复和全链路可恢复。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种数据库容灾方法、系统及服务器。
背景技术
经过几十年的高速发展,企业的运行和管理越来越多地依赖于IT系统的稳定运行,使得IT系统容灾的急迫性日益提升。数据库作为系统中的核心部件,承载了对于应用系统的事务支持和数据管理的基础工作,因此在系统容灾的建设过程中,数据库容灾成为最为核心的部分。
数据库容灾的重点在于数据的复制和恢复,根据数据复制的发起点不同有多种技术,如基于存储的磁盘级容灾、基于存储网络的容灾、基于主机的容灾和基于数据库的容灾。
基于存储的磁盘级容灾和基于存储网络的容灾类似于磁盘镜像,在本地磁盘或本地存储网络接收到写I/O指令时,在远程磁盘或远程存储网络上也进行同样的写操作。而基于主机的容灾技术则是通过主机操作系统来实现,基本原理是捕获操作系统的I/O操作,将该操作发送到远程的操作系统,由远程的操作系统执行相同的I/O操作,从而保证两端数据的一致性。
基于磁盘、存储网络和主机的容灾技术都有一个共同的特点,就是在数据复制的进程中不需要关心所复制数据的内容和格式,复制的内容包含数据库数据,也包含各种类型的文件,忽略数据库的特殊属性,将数据库的内容作为无格式的文件来看待,在使用时备份端数据库都是不活动的,不能实现“平战结合”,资源浪费较大,也不能保证数据库ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。在灾难发生需要由备份端提供对外服务时,启动数据库耗费时间较长,有时备份端数据库还不能正常启动,需要通过崩溃恢复方式启动,则消耗更多时间。
数据库级容灾技术则需要关心所处理数据的内容和格式,充分考虑数据库的特性,通过复制数据库日志来实现数据的同步。由于数据库日志保留了数据库的所有事务历史,是数据库保证数据一致性的基础,复制日志就意味着复制了事务历史,因此可以通过对事务历史的重现完成数据库的复制,保证两端数据库数据的一致性。
数据库级容灾技术最大的好处是备份端数据库是随时可用的,可以在完成灾备任务的同时分担源数据库的压力,可对外提供历史数据查询、统计分析、测试数据生成、数据超市(数据开放、分享)、源数据库性能监控分析等多种服务,使备份系统得到充分利用。
现有基于数据库日志的数据库容灾技术基本都是通过各数据库厂商提供的,其工作原理类似,都需要在源数据库服务器和备份数据库服务器上安装相应的程序,在源数据库服务器上读取、分析源数据库日志,从中提取事务定义、SQL语句关键信息等内容,重构SQL语句,并将相关信息发送到备份数据库端,执行SQL语句,使两端数据保持一致,其工作原理如下:
1.日志提取进程从源数据库的联机日志(Online Log)或归档日志(ArchiveLog)中读取日志信息(Redo Log),对日志信息进行分析,转换为自有格式的文件,保持在源数据库服务器的磁盘上;
2.事务日志分析进程读磁盘文件,进行进一步分析,从中分析出事务定义、SQL操作和事务操作的数据等信息,根据分析得到的信息,重新组合出SQL语句,通过数据发送进程将事务信息和SQL语句发送到备份数据库;
3.备份数据库上的接收进程收到事务定义和SQL语句后,转发给数据装载进程;
4.数据装载进程执行SQL语句,更新数据库数据,使备份数据库中的数据与源数据库一致。
基于数据库日志的容灾是一个非常复杂的系统,需要在数据复制的同时保证各类错误发生时的数据可恢复性,包括网络中断或不稳定情况下数据丢失的可恢复性,源系统或备份系统不正常情况下的可恢复性,以及容灾系统本身不正常情况下的可恢复性等,以在数据复制的任何一个阶段出现异常后都可以让数据复制流程恢复并无任何错误的继续进行。
目前的数据库容灾技术可以复制事务日志,但是不能实现复杂链路环境下的系统整体可恢复和全链路可恢复。这样在某些异常情况下,容灾系统不能保证数据库数据的一致性,通常需要在备份端重新恢复某个时间点的数据库备份,重新初始化容灾系统,重新开始数据同步复制工作,需要用户消耗大量的精力来维护容灾系统。
发明内容
本发明实施例提供一种数据库容灾方法,旨在解决现有的数据库容灾技术不能实现复杂链路环境下的系统整体可恢复和全链路可恢复的问题。
本发明实施例是这样实现的,一种数据库容灾方法,所述方法包括:
事务日志提取步骤:读取源数据库事务日志信息,从所述源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将所述事务日志信息的提取状态信息成功写入永久性存储介质;
事务日志分析步骤:以事务标识为关键字,从所述事务日志明细文件中解析出所述事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从所述索引信息中统计出各类事务的各类操作类型的分析汇总信息,将所述索引信息和分析汇总信息存储到永久性存储介质;
事务日志装载步骤:根据所述索引信息从所述事务日志明细文件中解析出对应的事务明细信息,将所述事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从所述索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质;
其中,所述事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息;
所述事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量、已读取的源数据库中的事务日志序列号,以及源数据库的事务日志序列号的条目数量;
所述索引信息中包含事务标识、各类事务的各类操作类型、所述各类事务的各类操作类型在所述事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表;
所述分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
所述装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置;
所述装载恢复表创建在备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置。
本发明实施例还提供一种数据库容灾系统,所述系统包括:
事务日志提取单元,用于读取源数据库事务日志信息,从所述源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将所述事务日志信息的提取状态信息成功写入永久性存储介质;
事务日志分析单元,用于以事务标识为关键字,从所述事务日志明细文件中解析出所述事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从所述索引信息中统计出各类事务的各类操作类型的分析汇总信息,将所述索引信息和分析汇总信息存储到永久性存储介质;
事务日志装载单元,用于根据所述索引信息从所述事务日志明细文件中解析出对应的事务明细信息,将所述事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从所述索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质;以及
装载恢复表,创建于备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置;
其中,所述事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息;
所述事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量、已读取的源数据库事务日志序列号,以及已读取的源数据库事务日志序列号的条目数量;
所述索引信息中包含事务标识、各类事务的各类操作类型、所述各类事务的各类操作类型在所述事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表;
所述分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
所述装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置。
本发明实施例还提供一种数据容灾服务器,所述数据容灾服务器包含有上述数据库容灾系统。
本发明实施例将事务日志的复制进程划分为了提取、分析和装载三个阶段,在不同阶段采用不同的方法来保证链路的可恢复性,实现全链路的可恢复,具有强大的容错能力和恢复能力,实现了复杂链路环境下的系统整体可恢复和全链路可恢复。
附图说明
图1是本发明实施例提供的数据库容灾方法的实现流程图;
图2是本发明实施例提供的事务日志提取恢复的实现流程图;
图3是本发明实施例提供的将索引信息和汇总信息存储到关系数据库的实现流程图;
图4是本发明实施例提供的恢复事务日志装载过程的实现流程图;
图5是本发明实施例提供的数据库容灾系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例将事务日志的复制进程划分为了提取、分析和装载三个阶段,在不同阶段采用不同的方法来保证链路的可恢复性,实现全链路的可恢复,具有强大的容错能力和恢复能力。
图1示出了本发明实施例提供的数据库容灾方法的实现流程,详述如下:
S101.事务日志提取步骤
读取源数据库事务日志信息,从源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将事务日志信息的提取状态信息成功写入永久性存储介质;
S102.事务日志分析步骤
以事务标识为关键字(Key word),从事务日志明细文件中解析出事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从索引信息中统计出各类事务的各类操作类型的分析汇总信息,将索引信息和分析汇总信息存储到永久性存储介质;
S103.事务日志装载步骤
根据索引信息从事务日志明细文件中解析出对应的事务明细信息,将事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质;
在本发明实施例中,事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息;
事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量(Offset)、已读取的源数据库事务日志序列号,以及已读取的源数据库事务日志序列号的条目数量;
索引信息中包含事务标识、各类事务的各类操作类型、各类事务的各类操作类型在事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表;
分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置;
装载恢复表创建在备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置。
作为本发明的一个优选实施例,在事务日志提取过程中发生异常时,可以根据事务日志信息的提取状态信息恢复事务日志提取过程。
本发明实施例提供了一种事务日志提取恢复方法,但是不代表只有此唯一方法,具体实现流程如图2所示,详述如下:
在步骤S201中,根据事务日志信息的提取状态信息中的已读取的源数据库事务日志序列号和已读取的源数据库事务日志序列号的条目数量,从源数据库中继续读取事务日志信息;
在步骤S202中,根据事务日志信息的提取状态信息中的当前写入的事务日志明细文件序号和当前写入的事务日志明细文件的由文件头起计算的偏移量,将从继续读取的事务日志信息中提取的内容从当前写入的事务日志明细文件序号对应的事务日志明细文件中由文件头起计算的偏移量处起继续写入。
作为本发明的一个实施例,索引信息和分析汇总信息可以写入文件,也可以存储在关系数据库,该关系数据库可以位于本地或者网络端。
图3示出了本发明实施例中将索引信息和汇总信息存储到关系数据库的实现流程,详述如下:
在步骤S301中,将索引信息追加到关系数据库的索引表中,该索引表配置有主键;
在步骤S302中,将汇总信息插入关系数据库的汇总表或者更新关系数据库的汇总表,该汇总表配置有主键;
在步骤S303中,将索引信息的追加和汇总信息的插入或更新操作作为一个完整事务提交给关系数据库。
作为本发明的一个优选实施例,在事务日志装载过程中发生异常时,可以根据事务装载恢复表恢复事务日志装载过程。
图4示出了根据事务装载恢复表恢复事务日志装载过程的实现流程,详述如下:
在步骤S401中,查询装载恢复表,获取已装载的事务的事务标识和已装载的索引信息的位置;
在步骤S402中,根据已装载的事务的事务标识,以已装载的索引信息的位置更新装载汇总信息中所对应的当前等待装载的索引信息的位置。
图5示出了本发明实施例提供的数据库容灾系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,该数据容灾系统可以部署到源数据库或者备份数据库上,也可以分单元或者模块部署到生产服务器和备份服务器上。
作为本发明的一个优选实施例,该数据容灾系统装部署到一台独立的数据同步服务器上,这样就不需要在生产服务器和备份服务器上安装任何应用程序,也不需要调整生产服务器和备份服务器的任何软硬件设置,只需要具有到源数据库和备份数据库的数据库连接即可。
事务日志提取单元51读取源数据库事务日志信息,从源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将事务日志信息的提取状态信息成功写入永久性存储介质。
事务日志分析单元52以事务标识为关键字(Key word),从事务日志明细文件中解析出事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从索引信息中统计出各类事务的各类操作类型的分析汇总信息,将索引信息和分析汇总信息存储到永久性存储介质。
事务日志装载单元53根据索引信息从事务日志明细文件中解析出对应的事务明细信息,将事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质。
装载恢复表54创建在备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置。
其中,事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息。
事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量(Offset)、已读取的源数据库事务日志序列号,以及已读取的源数据库事务日志序列号的条目数量。
索引信息中包含事务标识、各类事务的各类操作类型、各类事务的各类操作类型在事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表。
分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置。
作为本发明的一个优选实施例,数据库容灾系统还包括事务日志提取恢复单元55,用于在事务日志提取过程中发生异常时,根据事务日志信息的提取状态信息恢复事务日志提取过程。
其中,事务日志信息读取恢复模块551根据事务日志信息的提取状态信息中的已读取的源数据库事务日志序列号和已读取的源数据库事务日志序列号的条目数量,继续读取源数据库事务日志信息。
事务日志信息写入恢复模块552根据事务日志信息的提取状态信息中的当前写入的事务日志明细文件序号和当前写入的事务日志明细文件的由文件头起计算的偏移量,将从继续读取的事务日志信息中提取的内容从当前写入的事务日志明细文件序号对应的事务日志明细文件中由文件头起计算的偏移量处起继续写入。
作为本发明的一个实施例,索引信息和分析汇总信息可以写入文件,也可以存储在关系数据库,该关系数据库可以位于本地或者网络端。
索引信息和分析汇总信息存储单元56将索引信息和分析汇总信息存储在关系数据库,其中:
索引信息追加模块561将索引信息追加到关系数据库的索引表中,该索引表配置有主键。
汇总信息插入模块562将汇总信息插入关系数据库的汇总表或者更新关系数据库的汇总表,该汇总表配置有主键。
事务提交模块563将索引信息的追加和汇总信息的插入或更新操作作为一个完整事务提交给关系数据库。
作为本发明的一个优选实施例,系统还包括事务日志装载恢复单元57,在事务日志装载过程中发生异常时,根据事务装载恢复表恢复事务日志装载过程。
其中,装载恢复表查询模块571查询装载恢复表,获取已装载的事务的事务标识和已装载的索引信息的位置。
索引信息更新模块572根据已装载的事务的事务标识,以已装载的索引信息的位置更新装载汇总信息中所对应的当前等待装载的索引信息的位置。
以下对本发明实施例的具体实现举例说明:
在具体实现中,将事务日志的提取、分析和装载作为三个独立的进程,三个进程通过调度进程进行调度,具体处理流程详述如下:
1.事务日志提取进程读取源数据库日志信息,从源数据库日志信息中提取所需内容写入事务日志明细文件。同时,将事务日志信息的提取状态信息写入一个事务日志提取恢复文件,该事务日志提取恢复文件需要确保成功写入永久性存储介质,如果事务日志提取进程出错,恢复时读入事务日志提取恢复文件,实现根据事务日志提取恢复文件记录的事务日志信息的提取状态信息无错恢复运行。
在本发明实施例中,事务日志明细文件是流水文件,保存以下内容:
在本发明实施例中,事务日志提取恢复文件记录事务日志信息的提取状态信息,根据事务日志提取恢复文件可以确认事务日志明细文件的序列和位置。
事务日志提取恢复文件记录的事务日志信息的提取状态信息如下:
2.事务日志提取进程将当前的事务日志信息的提取状态信息发给调度进程。
3.调度进程读取事务日志信息的提取状态信息,与事务日志分析进程反馈的分析结果状态信息进行比较,如果发现事务日志分析进程分析的事务日志明细文件的数据少于事务日志提取进程已经读取的日志文件数据,即向事务日志分析进程发起事务日志分析调度命令,调度事务日志分析进程进行事务日志分析,命令内容为事务日志信息的提取状态信息所包含的信息。
在本发明实施例中,调度进程可以根据上表的BreakScn和BreakScn Num,或LogFile ID和LogFile Offset判断事务日志分析进程分析的事务日志明细文件的数据是否少于事务日志提取进程已经读取的事务日志明细文件数据。
4.事务日志分析进程根据事务日志分析调度命令读取事务日志明细文件,以事务标识XID为唯一标识字段,根据事务的类型所操作的表和操作类型解析出各类事务的各类操作类型的索引信息,以表标识为关键字从索引信息中统计出各类事务的各类操作类型的分析汇总信息。
在本发明实施例中,索引信息中保存有以下信息:
XID | 事务标识—确认一个事务,不同的事务有不同的事务标识 |
TxnType | 事务的类型 |
Operation | 事务的操作类型 |
TxnFileID | 各类事务的各类操作类型在事务日志明细文件中的序号 |
Txt Position | 各类事务的各类操作类型在事务日志明细文件中的位置 |
TABID | 各类事务的各类操作类型所对应的表 |
分析汇总信息中保存以下信息:
Tablename | 表的名称 |
TabId | 表的唯一标识 |
InsNum | INSERT操作的汇总数 |
UpdNum | UPDATE操作的汇总数 |
DelNum | Delete操作的汇总数 |
DDLNum | DDL操作的汇总数 |
OFFSET | 索引信息位置 |
5.事务日志分析进程将索引信息和分析汇总信息写入到关系数据库对应的表中,如果事务日志分析进程出错,关系数据库利用自带的事务恢复能力进行错误恢复。
6.事务日志分析进程将事务日志分析状态信息发给调度进程,事务日志分析状态信息包含本次分析的分析汇总信息和索引信息。
7.调度进程读取分析汇总信息后,与事务日志装载进程反馈的装载汇总信息进行比较,如果装载的各类操作的汇总数少于分析的各类操作的汇总数,则向装载进程发送装载调度命令,调度事务日志装载进程进行数据装载。
作为本发明的一个实施例,装载调度命令可以是调度进程直接发送给事务日志装载进程需要执行的索引信息。
8.事务日志装载进程获取调度命令,启动数据装载工作,读入索引信息,并根据索引信息读取事务日志明细文件中的指定内容,分析各个字段的信息,根据这些字段信息和操作类型重构SQL语句,连接备份数据库,调用数据库SQL事务执行命令,并更新装载进度汇总文件,以上两个操作作为一个完整事务提交给备份数据库执行。
在本发明实施例中,调度进程的主要工作是完成控制命令的交换工作,它本身不需要进行恢复,其主要任务是控制各个工作进程的运行状态和分配工作任务。控制运行状态主要是启动、停止、暂停等,分配工作任务主要通过向各个进程发送任务命令来实现。
本发明实施例对于网络错误,不管是与源数据库间的网络故障,还是与备份系统间的网络故障,都不会影响该数据库容灾系统的正常工作。如果与源数据库间的网络故障,事务日志提取进程会持续尝试连接源数据库,当网络恢复时,仍可从最后提取的日志断点处继续提取;如果是与备份系统间的网络故障,数据装载进程可以暂停工作,等待网络恢复后继续进行。由于需要通过通讯程序传输的数据不是持续放入通讯队列中,而是通过内存映射文件来提取的,不会像现有其他实现方法一样出现因通讯队列满而导致的数据丢失。
对于服务器相关故障,如果发生服务器断电、重启或硬件故障,修复后重新启动即可。为保证服务器上保存的数据不发生丢失,需要对服务器的磁盘进行冗余备份,通常采用RAID5即可。
对于源数据库故障,一旦源数据库故障可切换到备份数据库,由备份数据库提供服务。同时,启动反向复制,一旦源数据库恢复,该数据库容灾系统即可将备份数据库自故障发生后的数据变化同步到源数据库。
对于备份数据库故障,如果备份数据库发生软硬件故障,该数据库容灾系统可用停止数据装载进程,并持续尝试连接备份数据库,一旦备份数据库恢复,即可继续进行数据装载进程。
同时,本发明实施例不再需要在出错后重新初始化数据,在任何环节出错均可恢复、可重入,还可以结合表迁移操作,彻底避免了该数据库容灾系统运行后因故障导致的重新数据初始化。
另外,本发明实施例可以不在源数据库和备份系统上安装任何程序,也不修改应用程序、操作系统、数据库及其他程序的任何设置,只需要通过ODBC连接到源数据库,即使数据库容灾系统本身发生故障,也不会影响到源数据库的可用性和安全性,解决了在源数据库上安装高权限程序导致的可用性和安全性问题。
其次,本发明实施例将对源数据库系统的性能影响降到最小,通过将事务日志分析、事务组合过滤、装载调度、监控等含有复杂算法的程序单独部署在独立的服务器上,对源数据库系统来说,只保留了数据库容灾所必须的日志读取操作,最大程度地降低了对源数据库系统的性能影响。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种数据库容灾方法,其特征在于,所述方法包括:
事务日志提取步骤:读取源数据库事务日志信息,从所述源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将所述事务日志信息的提取状态信息成功写入永久性存储介质;
事务日志分析步骤:以事务标识为关键字,从所述事务日志明细文件中解析出所述事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从所述索引信息中统计出各类事务的各类操作类型的分析汇总信息,将所述索引信息和分析汇总信息存储到永久性存储介质;
事务日志装载步骤:根据所述索引信息从所述事务日志明细文件中解析出对应的事务明细信息,将所述事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从所述索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质;
其中,所述事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息;
所述事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量、已读取的源数据库中的事务日志序列号,以及源数据库的事务日志序列号的条目数量;
所述索引信息中包含事务标识、各类事务的各类操作类型、所述各类事务的各类操作类型在所述事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表;
所述分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
所述装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置;
所述装载恢复表创建在备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置。
2.如权利要求1所述的数据库容灾方法,其特征在于,所述方法进一步包括如下步骤:
在事务日志提取过程中发生异常时,根据所述事务日志信息的提取状态信息恢复事务日志提取过程。
3.如权利要求2所述的数据库容灾方法,其特征在于,所述根据所述事务日志信息的提取状态信息恢复事务日志提取过程的步骤具体为:
根据所述事务日志信息的提取状态信息中的已读取的源数据库事务日志序列号和已读取的源数据库事务日志序列号的条目数量,从源数据库中继续读取事务日志信息;
根据所述事务日志信息的提取状态信息中的当前写入的事务日志明细文件序号和当前写入的事务日志明细文件的由文件头起计算的偏移量,将从所述继续读取的事务日志信息中提取的内容从所述当前写入的事务日志明细文件序号对应的事务日志明细文件中由文件头起计算的偏移量处起继续写入。
4.如权利要求1所述的数据库容灾方法,其特征在于,所述索引信息和分析汇总信息存储在关系数据库。
5.如权利要求4所述的数据库容灾方法,其特征在于,将所述索引信息和汇总信息通过如下步骤存储到关系数据库:
将所述索引信息追加到关系数据库的索引表中,所述索引表配置有主键;
将所述汇总信息插入关系数据库的汇总表或者更新关系数据库的汇总表,所述汇总表配置有主键;
将所述索引信息的追加和汇总信息的插入或更新操作作为一个完整事务提交给关系数据库。
6.如权利要求1所述的数据库容灾方法,其特征在于,所述方法进一步包括如下步骤:
在事务日志装载过程中发生异常时,根据所述事务装载恢复表恢复事务日志装载过程。
7.如权利要求6所述的数据库容灾方法,其特征在于,所述根据所述事务装载恢复表恢复事务日志装载过程的步骤具体为:
查询所述装载恢复表,获取已装载的事务的事务标识和已装载的索引信息的位置;
根据已装载的事务的事务标识,以所述已装载的索引信息的位置更新装载汇总信息中所对应的当前等待装载的索引信息的位置。
8.一种数据库容灾系统,其特征在于,所述系统包括:
事务日志提取单元,用于读取源数据库事务日志信息,从所述源数据库事务日志信息中提取所需内容写入事务日志明细文件,并将所述事务日志信息的提取状态信息成功写入永久性存储介质;
事务日志分析单元,用于以事务标识为关键字,从所述事务日志明细文件中解析出所述事务标识所包含的各类事务的各类操作类型的索引信息,以表标识为关键字从所述索引信息中统计出各类事务的各类操作类型的分析汇总信息,将所述索引信息和分析汇总信息存储到永久性存储介质;
事务日志装载单元,用于根据所述索引信息从所述事务日志明细文件中解析出对应的事务明细信息,将所述事务明细信息的装载和装载恢复表的更新作为一个完整的事务提交给备份数据库,并将以表标识为关键字从所述索引信息中统计出的已装载的各类事务的各类操作类型的装载汇总信息写入永久性存储介质;以及
装载恢复表,创建于备份数据库,包含已装载的事务的事务标识、各类事务的各类操作类型的标识,以及已装载的索引信息的位置;
其中,所述事务日志明细文件中包含事务标识、表的唯一标识、各类事务的各类操作类型,以及各类事务的操作信息;
所述事务日志信息的提取状态信息包含当前写入的事务日志明细文件序号、当前写入的事务日志明细文件的由文件头起计算的偏移量、已读取的源数据库事务日志序列号,以及已读取的源数据库事务日志序列号的条目数量;
所述索引信息中包含事务标识、各类事务的各类操作类型、所述各类事务的各类操作类型在所述事务日志明细文件中的序号和位置,以及各类事务的各类操作类型所对应的表;
所述分析汇总信息中包含表的唯一标识、已分析的各类事务的各类操作类型的标识,以及已分析的各类事务的各类操作类型的标识的汇总数;
所述装载汇总信息中包含表的唯一标识、已装载的各类事务的各类操作类型的标识、已装载的各类事务的各类操作类型的标识的汇总数、当前等待装载的事务的事务标识,以及当前等待装载的索引信息的位置。
9.如权利要求8所述的数据库容灾系统,其特征在于,所述系统进一步包括:
事务日志提取恢复单元,用于在事务日志提取过程中发生异常时,根据所述事务日志信息的提取状态信息恢复事务日志提取过程。
10.如权利要求9所述的数据库容灾系统,其特征在于,所述事务日志提取恢复单元包括:
事务日志信息读取恢复模块,用于根据所述事务日志信息的提取状态信息中的已读取的源数据库事务日志序列号和已读取的源数据库事务日志序列号的条目数量,继续读取源数据库事务日志信息;以及
事务日志信息写入恢复模块,用于根据所述事务日志信息的提取状态信息中的当前写入的事务日志明细文件序号和当前写入的事务日志明细文件的由文件头起计算的偏移量,将从所述继续读取的事务日志信息中提取的内容从所述当前写入的事务日志明细文件序号对应的事务日志明细文件中由文件头起计算的偏移量处起继续写入。
11.如权利要求8所述的数据库容灾系统,其特征在于,所述系统还包括:
索引信息和分析汇总信息存储单元,用于将索引信息和分析汇总信息存储在关系数据库。
12.如权利要求11所述的数据库容灾系统,其特征在于,所述索引信息和分析汇总信息存储单元包括:
索引信息追加模块,用于将所述索引信息追加到关系数据库的索引表中,所述索引表配置有主键;
汇总信息插入模块,用于将所述汇总信息插入关系数据库的汇总表或者更新关系数据库的汇总表,所述汇总表配置有主键;以及
事务提交模块,用于将所述索引信息的追加和汇总信息的插入或更新操作作为一个完整事务提交给关系数据库。
13.如权利要求8所述的数据库容灾系统,其特征在于,所述系统还包括:
事务日志装载恢复单元,用于在事务日志装载过程中发生异常时,根据所述事务装载恢复表恢复事务日志装载过程。
14.如权利要求13所述的数据库容灾系统,其特征在于,所述事务日志装载恢复单元包括:
装载恢复表查询模块,用于查询所述装载恢复表,获取已装载的事务的事务标识和已装载的索引信息的位置;以及
索引信息更新模块,用于根据已装载的事务的事务标识,以所述已装载的索引信息的位置更新装载汇总信息中所对应的当前等待装载的索引信息的位置。
15.如权利要求13所述的数据库容灾系统,其特征在于,所述数据库容灾系统独立部署于一台独立的数据同步服务器上。
16.一种数据容灾服务器,其特征在于,所述数据容灾服务器包含有权利要求8至15任一权利要求所述的数据库容灾系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310213591.6A CN103345470B (zh) | 2013-05-31 | 2013-05-31 | 一种数据库容灾方法、系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310213591.6A CN103345470B (zh) | 2013-05-31 | 2013-05-31 | 一种数据库容灾方法、系统及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103345470A true CN103345470A (zh) | 2013-10-09 |
CN103345470B CN103345470B (zh) | 2016-05-25 |
Family
ID=49280265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310213591.6A Active CN103345470B (zh) | 2013-05-31 | 2013-05-31 | 一种数据库容灾方法、系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345470B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761161A (zh) * | 2013-12-31 | 2014-04-30 | 华为技术有限公司 | 恢复数据的方法、服务器及系统 |
CN103902409A (zh) * | 2013-10-21 | 2014-07-02 | 华为技术有限公司 | 一种日志备份方法及装置 |
WO2015070663A1 (zh) * | 2013-11-18 | 2015-05-21 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
CN105045678A (zh) * | 2015-07-09 | 2015-11-11 | 小米科技有限责任公司 | 数据库恢复方法及装置 |
CN105608185A (zh) * | 2015-12-23 | 2016-05-25 | 福建亿榕信息技术有限公司 | 预防数据灭失的方法和系统 |
CN105608190A (zh) * | 2015-12-23 | 2016-05-25 | 福建亿榕信息技术有限公司 | 协同数据处理方法和系统 |
CN106484568A (zh) * | 2016-09-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种数据灾难备份方法及其系统 |
CN106503257A (zh) * | 2016-11-15 | 2017-03-15 | 北京京东金融科技控股有限公司 | 基于binlog补偿机制的分布式事务服务方法及系统 |
CN106776704A (zh) * | 2016-11-14 | 2017-05-31 | 平安科技(深圳)有限公司 | 统计信息收集方法和装置 |
CN107229537A (zh) * | 2017-05-31 | 2017-10-03 | 广州鼎甲计算机科技有限公司 | 一种数据库实时备份方法 |
CN107368500A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 数据抽取方法及系统 |
CN107480009A (zh) * | 2017-08-18 | 2017-12-15 | 北京中电普华信息技术有限公司 | 一种事务恢复方法及装置 |
CN107632906A (zh) * | 2017-09-30 | 2018-01-26 | 北京九桥同步软件有限公司 | 数据库数据备份方法及装置 |
CN107678888A (zh) * | 2017-09-30 | 2018-02-09 | 北京九桥同步软件有限公司 | 数据库数据备份方法及装置 |
CN108228592A (zh) * | 2016-12-13 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 基于二进制日志的数据归档方法及数据归档装置 |
CN109271442A (zh) * | 2018-07-27 | 2019-01-25 | 东软集团股份有限公司 | 数据库同步恢复方法、装置、计算机可读存储介质和电子设备 |
CN109491815A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于多阶段的数据生成方法、装置和计算机设备 |
CN105183581B (zh) * | 2015-07-23 | 2019-03-26 | 深圳市沃信科技有限公司 | 一种数据库容灾系统 |
CN112307118A (zh) * | 2020-09-30 | 2021-02-02 | 武汉达梦数据库有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036660A1 (en) * | 2004-08-13 | 2006-02-16 | Lynn Joseph B | System and method for variable block logging with log-ahead buffers |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和系统 |
CN101667181A (zh) * | 2008-09-05 | 2010-03-10 | 华为技术有限公司 | 一种数据容灾的方法、装置及系统 |
CN102043686A (zh) * | 2009-10-20 | 2011-05-04 | 华为技术有限公司 | 一种内存数据库的容灾方法、备用服务器及系统 |
CN102436490A (zh) * | 2010-10-28 | 2012-05-02 | 微软公司 | 多功能存储器内数据库恢复 |
-
2013
- 2013-05-31 CN CN201310213591.6A patent/CN103345470B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036660A1 (en) * | 2004-08-13 | 2006-02-16 | Lynn Joseph B | System and method for variable block logging with log-ahead buffers |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和系统 |
CN101667181A (zh) * | 2008-09-05 | 2010-03-10 | 华为技术有限公司 | 一种数据容灾的方法、装置及系统 |
CN102043686A (zh) * | 2009-10-20 | 2011-05-04 | 华为技术有限公司 | 一种内存数据库的容灾方法、备用服务器及系统 |
CN102436490A (zh) * | 2010-10-28 | 2012-05-02 | 微软公司 | 多功能存储器内数据库恢复 |
Non-Patent Citations (2)
Title |
---|
刘英,王效武,曾兵: "一种数据备份与恢复系统体系设计", 《通信技术》, vol. 44, no. 1, 31 January 2011 (2011-01-31) * |
赵志慧: "数据容灾备份的方法与实现", 《计算机光盘软件与应用》, no. 8, 31 August 2012 (2012-08-31) * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902409A (zh) * | 2013-10-21 | 2014-07-02 | 华为技术有限公司 | 一种日志备份方法及装置 |
WO2015070663A1 (zh) * | 2013-11-18 | 2015-05-21 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
CN103761161A (zh) * | 2013-12-31 | 2014-04-30 | 华为技术有限公司 | 恢复数据的方法、服务器及系统 |
CN103761161B (zh) * | 2013-12-31 | 2017-01-04 | 华为技术有限公司 | 恢复数据的方法、服务器及系统 |
CN105045678A (zh) * | 2015-07-09 | 2015-11-11 | 小米科技有限责任公司 | 数据库恢复方法及装置 |
CN105045678B (zh) * | 2015-07-09 | 2018-10-26 | 小米科技有限责任公司 | 数据库恢复方法及装置 |
CN105183581B (zh) * | 2015-07-23 | 2019-03-26 | 深圳市沃信科技有限公司 | 一种数据库容灾系统 |
CN105608185A (zh) * | 2015-12-23 | 2016-05-25 | 福建亿榕信息技术有限公司 | 预防数据灭失的方法和系统 |
CN105608190B (zh) * | 2015-12-23 | 2020-02-28 | 福建亿榕信息技术有限公司 | 协同数据处理方法和系统 |
CN105608190A (zh) * | 2015-12-23 | 2016-05-25 | 福建亿榕信息技术有限公司 | 协同数据处理方法和系统 |
CN107368500A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 数据抽取方法及系统 |
CN106484568A (zh) * | 2016-09-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种数据灾难备份方法及其系统 |
CN106776704A (zh) * | 2016-11-14 | 2017-05-31 | 平安科技(深圳)有限公司 | 统计信息收集方法和装置 |
CN106776704B (zh) * | 2016-11-14 | 2020-03-06 | 平安科技(深圳)有限公司 | 统计信息收集方法和装置 |
CN106503257A (zh) * | 2016-11-15 | 2017-03-15 | 北京京东金融科技控股有限公司 | 基于binlog补偿机制的分布式事务服务方法及系统 |
CN106503257B (zh) * | 2016-11-15 | 2019-09-20 | 北京京东金融科技控股有限公司 | 基于binlog补偿机制的分布式事务服务方法及系统 |
CN108228592A (zh) * | 2016-12-13 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 基于二进制日志的数据归档方法及数据归档装置 |
CN107229537A (zh) * | 2017-05-31 | 2017-10-03 | 广州鼎甲计算机科技有限公司 | 一种数据库实时备份方法 |
CN107480009A (zh) * | 2017-08-18 | 2017-12-15 | 北京中电普华信息技术有限公司 | 一种事务恢复方法及装置 |
CN107678888A (zh) * | 2017-09-30 | 2018-02-09 | 北京九桥同步软件有限公司 | 数据库数据备份方法及装置 |
CN107632906A (zh) * | 2017-09-30 | 2018-01-26 | 北京九桥同步软件有限公司 | 数据库数据备份方法及装置 |
CN109271442A (zh) * | 2018-07-27 | 2019-01-25 | 东软集团股份有限公司 | 数据库同步恢复方法、装置、计算机可读存储介质和电子设备 |
CN109491815A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于多阶段的数据生成方法、装置和计算机设备 |
CN112307118A (zh) * | 2020-09-30 | 2021-02-02 | 武汉达梦数据库有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
CN112307118B (zh) * | 2020-09-30 | 2024-03-22 | 武汉达梦数据库股份有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103345470B (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103345470A (zh) | 一种数据库容灾方法、系统及服务器 | |
CN102782656B (zh) | 管理应用程序可用性的系统和方法 | |
CN106776121B (zh) | 一种数据灾备装置、系统及方法 | |
CN102891849B (zh) | 业务数据同步方法、恢复方法及装置和网络设备 | |
CN101042662B (zh) | 用于管理分布式应用环境中的数据备份的系统和方法 | |
US8949188B2 (en) | Efficient backup and restore of a cluster aware virtual input/output server (VIOS) within a VIOS cluster | |
CN105677516B (zh) | 一种计算靠近存储云平台中高效可靠的备份恢复方法 | |
US10565071B2 (en) | Smart data replication recoverer | |
CN102782639B (zh) | 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法 | |
CN101441582A (zh) | 计算机数据对象的备份和恢复方法及实现该方法的系统和程序产品 | |
WO2023046042A1 (zh) | 一种数据备份方法和数据库集群 | |
CN109189860A (zh) | 一种基于Kubernetes系统的MySQL主备增量同步方法 | |
CN106815097A (zh) | 数据库容灾系统和方法 | |
CN102710752B (zh) | 灾备存储系统 | |
CN104239166A (zh) | 一种对运行中虚拟机实现文件备份的方法 | |
KR20110044858A (ko) | 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 | |
KR102016095B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 트랜잭션 레코드들을 유지하기 위한 시스템 및 방법 | |
CN106339278A (zh) | 一种网络文件系统的数据备份及恢复方法 | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
CN102761528A (zh) | 数据管理系统及方法 | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
US8527454B2 (en) | Data replication using a shared resource | |
CN102495774A (zh) | 一种实现计算机系统恢复的方法及系统 | |
US20070271302A1 (en) | Data copy system and method for multi-platform disaster recovery | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |