专利名称:数据库备份数据的压缩和检索方法
技术领域:
本发明的技术领域属数据库备份技术。
背景技术:
数据库在线查询的海量数据,一般都需要定期备份。数据库的数据备份,一般有两个目的一是出于数据库系统的安全性考虑,当数据库系统发生故障时,用备份数据进行恢复;二是对时间已久查询频度已小的数据,进行归档存储,以便需要时仍能进行检索。
对数据库的备份数据,一般由备份存储设备例如磁带机上的压缩芯片来进行压缩。压缩芯片的存储容量一般较小,例如32KB,进行备份的数据亦按相应的数据块大小进行压缩,而且数据块的压缩,不分数据类型(文本,图像,或是否已压缩数据等),一律采用同一种压缩编码,例如LZ压缩编码等。
当备份存储设备自身不提供芯片压缩时,目前的备份软件亦可提供软件压缩,但压缩的方式亦和芯片压缩相似,亦按较小的数据块来进行,并亦不区分数据类型,一律采用同一种压缩编码。
现有的数据备份系统,不论上述的芯片压缩方式或软件压缩方式,均只有很低的压缩率,通常小于2-3倍,并且对已压缩过的数据,如JPEG图象等,再进行LZ之类的压缩,也没有什么压缩效果,会白浪费压缩处理时间。
除了上述数据压缩问题之外,目前对备份数据的检索,亦缺乏简便、快捷的手段。对备份数据的检索,现行的方式是首先将其恢复到在线查询的相应业务数据库中,查询后再从在线查询的相应数据库中予以删除。上述工作过程,需要数据库服务器进行一系列的操作,既非常繁琐费时,又容易增加出错的几率。
本发明的目的,就是给出数据库备份数据的高效压缩和实时检索方法,以大大改善目前数据库备份技术的上述缺陷。
发明内容
本发明的主要内容,包括两个部分
1、对数据库的备份数据,不采用目前数据备份系统中的小数据块压缩方式,而以数据库文件为压缩处理对象,并对不同类型的数据库文件,自动采用不同的压缩技术,从而可极大的提高备份数据的压缩率,大大减少备份数据的存储容量和传输流量。
2、对数据库归档存储的备份数据的检索,不进行费时费力的数据库恢复操作,而是直接对备份数据服务器上的数据库文件进行检索,从而可极大的提高数据库备份数据的查询效率。
图1为本发明的系统逻辑结构图;图2为本发明的一种简化的数据库文件压缩方式示例;图3为本发明的一种树形结构的数据库文件目录的示例。
具体实施例方式
本发明的系统逻辑结构图,如图1所示。下面按数据库的数据备份和数据库备份数据的检索,分别进行具体说明。
第一部分数据库的数据备份。按如下方法来进行1、由备份软件将拟备份的各个数据库表的数据,分别导出到与数据库服务器直接连接的压缩服务器或数据库服务器自身的一个缓冲区中,形成相应的数据库文件。例如数据库表A形成数据库文件A,数据库表B形成数据库文件B等等。
对于字段式的结构化数据库表,为方便以后的检索处理,可在进行上述数据库表的数据导出时,也一并拷贝出其结构信息(字段名称,字段长度,字段数据类型和约束条件等),将数据库表的结构信息与数据信息一起形成数据库文件。
2、压缩服务器或数据库服务器中的压缩软件,对已形成的数据库文件,根据其文件类型的不同,分别采用不同的压缩技术进行压缩。
数据库文件的压缩,一般可分为三个类别来进行一是不进行压缩的文件,例如不需压缩的文件或已进行过压缩的文件;一是宜采用特定压缩技术的文件,例如图象文件用JPEG,声音文件用MP3等;一是可采用通用无损压缩编码的文件,如结构化数据库文件和文本文件等等。
为便于压缩操作由系统自动进行,对于既定的数据库系统,可以对每个数据库表(亦即对相应的数据库文件),预设压缩方式代码,如下面清单所示。当数据库表中包含非结构化数据域,例如图象、音频等大对象数据类型LOB时,该LOB域是指向LOB对象的指针,LOB指向的对象在数据库的某个表空间中,可对之单独预设压缩方式代码
清单中的每个压缩方式代码,对应相应的压缩方式,调用相应的压缩程序。例如00代表不压缩,01代表LZ压缩,02代表JPEG压缩等等。
当然,为简单起见,系统中也可只设不压缩和通用无损压缩两种压缩方式类别。此时系统中可只设不进行压缩的数据库文件清单。当压缩软件对某个数据库文件进行压缩处理时,可只判断它是否属于该清单。如果是,则不予压缩;如果不是,则直接采用系统设定的通用无损编码进行压缩,如图2所示。
对于很大的数据库文件,亦可将其分割为尽可能大的数据块容量(例如X MB)进行压缩,再合成一个压缩后的数据库文件。
3、压缩后的数据库文件,由通常的备份软件送备份数据服务器存储,并在备份数据服务器上生成相应的数据库文件目录。由于定期备份的数据库表数据,是以时间(如年、月、日)为自然标识的,因此相应的数据库文件目录,也会自然形成便于检索的文件树结构。图3为本发明的一种树形结构的数据库文件目录的示例。
为了便于用户识别,数据库表名称,数据库文件名称和已压缩的数据库文件名称,其主体部分可均采取同一名称,仅扩展名不同。例如数据库表名AAA数据库文件名AAA.tmp已压缩的数据库文件名AAA.xxx(xxx表示压缩方法名称,例如Zip等等)第二部分对数据库归档存储的备份数据的检索。本发明提供的方法,是由应用程序直接检索备份数据服务器的数据库文件。具体说明如下
如前所述,备份数据服务器上存储的是已压缩的数据库文件,数据库应用人员可根据备份数据服务器上的文件目录,直接将需要进行检索处理的已压缩的数据库文件取到客户机上,并在读入客户机时,由客户机上的应用程序对其进行解压缩。
由于已解压缩的数据库文件中,既包含数据库表的备份数据,亦包括数据库表的结构信息,客户机的应用程序可首先将该数据库文件的结构信息显示在客户机的界面上,数据库的应用人员依据该结构信息输入检索条件,客户机的应用程序便可根据检索条件,进行相应的检索操作。
例如,银行的取款数据库的结构信息和用户输入的检索条件如下表所示
客户机的应用程序依据该检索条件,可对该数据库文件2004年的全部记录与之进行比较,凡是与上述检索条件完全相符的数据库记录,便记入检索结果文件,用以进行显示、打印或相关统计。
例如上面的结果文件可如下表所示
类似的,也可以对多个数据库表进行关联查询,某种查询形成的中间结果,可作为进行进一步查询的条件,或对中间查询结果进行相关的运算等。
例如,可对银行同一时间段的存取款数据库分别进行检索,两者相减,得出同时间段的存款余额等。
当然,在上述数据库备份数据的检索方法中,为减少信息的传输容量,亦可不将数据库文件取入客户机,而直接由备份数据服务器进行检索处理,或另设一个与备份数据服务器直接相连应用服务器进行检索处理,只将检索处理结果传给客户机;进行检索的数据库文件也可以是未经压缩的,此时显然便无需进行相应的解压缩操作;当数据库文件中不包含原数据库表的结构信息时,该结构信息也可由客户机或应用服务器的应用程序从其存放位置另行读取。
此外,在对备份数据服务器上的数据库文件进行检索时,应用程序所提供的用户界面,也可与原来对数据库服务器进行检索时的界面相同或相似,仅应用程序相异。
由于归档存储的备份数据,是只读不写的,而且无需大量用户进行并发检索,从而由文件检索取代数据库检索,回避进行复杂的数据库恢复操作,应是完全可行的。
本发明的重要价值,主要包括下述几个方面1、本发明可极大的提高备份数据的压缩率,一般可将数据库结构化数据的压缩率由目前的小于2-3倍,提高到10-30倍。这不仅可以大大节省备份存储的投资,而且可以大大减少传输信道中的数据流量。由此,服务器之间的数据迁移,在很多情况下也可用局域网IP信道取代光纤信道,以SCSI接口设备,取代光纤接口设备,从而大大降低整体系统的造价。
2、对备份数据的查询,不再需要非常费时费力的数据库恢复操作,而可简单、方便的实时进行。
3、由于数据压缩率的极大提高,也非常有利于实施数据库数据的高度容错备份,例如一个数据库文件备份两个拷贝,(RAID镜像),从而也可极大地提高备份系统的可靠性。
权利要求
1.数据库备份数据的压缩方法,其主要特徵为数据库的数据进行备份压缩时,不以小数据块(例如32KB)进行压缩处理,而是先将数据库表导出的备份信息形成数据库文件,再以这样的数据库文件做为压缩处理单元。
2.如权利要求1所述的数据库备份数据的压缩方法,将由数据库表导出的备份信息,分割成尽可能大的块容量(例如X MB)进行压缩处理。
3.如权利要求1所述的数据库备份数据的压缩方法,当数据库表的数据为字段式信息时,将数据库表的结构信息(如字段名称,字段长度,字段数据类型和约束条件等),与由数据库表导出的备份信息一起形成数据库文件。
4.数据库备份数据的压缩方法,其主要特徵为对数据库文件的压缩,根据其不同的文件类型,系统自动采用不同的压缩方式,例如不压缩,Zip压缩,JPEG压缩等。
5.如权力要求4所述的数据库备份数据的压缩方法,对于既定的数据库系统,可对每个数据库表(亦即对应的数据库文件),预设其压缩方式,并按预设的压缩方式对每个数据库文件进行压缩。
6.如权力要求4所述的数据库备份数据的压缩方法,系统中只设“不压缩”和“通用无损压缩”两种压缩方式,并只设“不压缩数据库文件清单”。当压缩软件对某个数据库文件进行压缩处理时,只判断它是否属于该清单,如果是,则不予压缩;如果不是,则直接采用系统设定的通用无损编码进行压缩。
7.权利要求4的压缩操作,或由软件进行,或由硬件进行,或由软件与硬件相结合来进行。
8.权利要求5的压缩操作,或由软件进行,或由硬件进行,或由软件与硬件相结合来进行。
9.权利要求6的压缩操作,或由软件进行,或由硬件进行,或由软件与硬件相结合来进行。
10.数据库备份数据的检索方法,其主要特徵为由数据库表导出并已保存在备份数据服务器上相应数据库文件中的备份数据,不将其重新导入到原数据库服务器的数据库表中进行检索,而由应用程序直接对数据库文件进行检索处理。
11.如权力要求10的数据库备份数据的检索方法,其中应用程序对数据库文件的检索,是将备份数据服务器上的数据库文件取到客户机上进行。
12.如权力要求10的数据库备份数据的检索方法,其中应用程序对数据库文件的检索,是将备份数据服务器上的数据库文件取至与备份数据服务器相连的应用服务器上进行。
13.如权力要求10的数据库备份数据的检索方法,其中应用程序对数据库文件的检索,是直接由备份数据服务器进行。
14.如权力要求10的数据库备份数据的检索方法,应用程序在用户界面中提供相关数据库表的结构信息,(字段名称,字段长度,字段数据类型和约束条件等),由用户在相应字段填入相应的检索条件,由应用程序进行检索处理。
15.如权力要求10的数据库备份数据的检索方法,应用程序所提供的数据库表结构信息,是已包含在数据库文件中的,或是另外取来的。
16.如权力要求10的数据库备份数据的检索方法,应用程序对数据库文件的检索和对数据库的检索,给用户提供相同或相似的用户界面。
17.如权力要求10的数据库备份数据的检索方法,其中的数据库文件可以是已压缩的或未压缩的。当其是已压缩的,则在文件进行检索时先进行解压缩;当其是未压缩的,则直接进行检索处理。
全文摘要
本发明对数据库的备份数据,提供了一种新的压缩方式,可使数据库结构化数据的压缩率,一般由目前的2-3倍提高到10-30倍,可大大减少备份数据的存储容量和传输流量;对数据库备份数据的查询,本发明也提供了一种不进行数据库恢复操作,而直接对保存备份数据的数据库文件进行检索的简易方法,可大大提高数据库备份数据的检索效率。
文档编号H03M7/30GK1851691SQ20051006479
公开日2006年10月25日 申请日期2005年4月22日 优先权日2005年4月22日
发明者王金波, 田军, 顾国泰, 孔庆龙 申请人:北京九州软件有限公司, 田军