历史数据归档和查询装置及方法

文档序号:6441804阅读:264来源:国知局
专利名称:历史数据归档和查询装置及方法
技术领域
本发明涉及计算机领域,尤其涉及一种历史数据的归档和查询方法。
背景技术
历史数据的归档和查询在任何大型关系型数据库应用系统中都是一个不可或缺的功能。尤其在通讯行业,为了评估系统的近期性能必须要有性能历史数据。利用这些性能历史数据可进行故障的区段定位。当积累了较多的性能历史数据后,对性能历史数据的查询分析可预测将来可能发生的故障,对系统的维护是很有用的。
现有的应用系统一般是通过数据库管理系统DBMS(如Sybase和Microsoft SQL Server)的备份归档工具实现。以Microsoft SQL Server为例,机械工业出版社出版的《SQL Server 7关系数据库系统管理与开发指南》提供了三种归档方式完全归档——归档所有数据库对象、事务日志和数据;增量归档——归档从最近一次完全归档开始以来所有的数据;日志归档——归档从最近一次日志归档开始以来所有日志。
以上三种方式都是对整个数据库进行归档,包括数据库对象、数据结构、数据都进行了归档。如果用户要求对部分库表,甚至单个库表进行归档,则现有的方式不能满足要求。而且该三种方式不支持直接查询归档文件,如果用户要求查询归档文件中满足条件的记录,则只能将历史数据全部恢复到数据库中再查询,显然效率低下,也费时费力。另外由于历史数据量大,如果将历史数据全部恢复到数据库中再查询极易造成表空间满、表溢出的情况。最后,现有工具面向具有数据库系统知识的数据库管理员,对于普通用户不易掌握。

发明内容
本发明所要解决的技术问题是克服现有技术中不能对部分库表,甚至单个库表进行归档,以及效率低下、容易造成数据库中表空间满表溢出、用户掌握复杂的缺点,以期提出一种能够有效对部分库表直接查询归档、高效高稳定性而且简单的历史数据归档和查询装置及方法。
本发明所述历史数据查询和归档装置包括归档备注文件、归档模块和归档管理装载器;所述归档备注文件在每完成一种类型的归档后,记录所归档的历史表名、归档字段、归档时间范围和归档记录数等信息;所述归档模块具体完成数据的归档和装载,在查询归档文件时,为了提高查询效率,将归档数据装载到数据库管理系统的临时库中;所述归档装载管理器负责在装载归档文件时,判断临时数据库是否有足够的自由空间,如果不满足则删除最近未使用的装载表。
所述历史数据查询和归档方法包括以下步骤第一步准备工作(1)在数据库中建立历史表元数据信息表;(2)建立历史表记录限制链表,保存历史表记录大小。
(3)在数据库中建立归档装载信息表;(4)建立归档装载信息链表。
第二步归档历史数据(1)根据具体情况选择归档类型、归档方式;(2)根据归档类型查找历史表元数据信息表得到需要归档的历史表和历史表的归档字段。在数据库中以表的形式保存需要归档的历史表、历史表的归档字段及上次进行归档操作的时间。如果归档方式为增量归档,依据该信息表,得出此次归档的时间范围为上次归档操作的时间到当前时间。如果归档为全量归档,需归档所有数据,时间范围也需包括所有数据;(3)查找归档字段在此时间范围的记录,将记录以文本文件的方式保存在本地硬盘上;(4)将本次归档的历史表名,归档字段名,时间范围,记录数以文本文件的方式保存在归档备注文件中,同时修改历史表元数据信息表中相应历史表的归档时间。
第三步检索归档文件(1)根据具体情况灵活选择查询的归档类型和时间范围,形成查询条件;(2)根据查询条件检索归档目录下的归档备注文件,找出满足条件的归档文件;(3)根据归档文件名得到装载的数据库表;(3.1)查找归档是否已装载到临时数据库,如找到,则修改归档装载信息表的访问时间,转(4);(3.2)判断临时数据库是否有足够的自由空间;(3.3)如不满足步骤(3.2)所述条件,根据归档装载信息链表中的各装载数据表的访问时间删除最近未访问的数据表,直到满足对临时数据库自由空间的要求;(3.4)在临时数据库中创建数据库表,将数据恢复到该表;(3.5)将创建的库表信息加入归档装载信息链表,并修改访问时间(4)返回表中满足条件的记录。
本发明所述方法与现有的归档技术相比,可自由选择任意归档类型、任意时间范围的历史数据。而且由于使用归档备注文件的方式记录每次归档的信息,使装载历史数据时可有条件的选择部分数据进行装载。由于使用归档装载管理器,可提供高效快速地从归档文件查询满足条件的历史数据,充分利用了临时数据库的资源,避免了数据空间的浪费。另外,用户查询某个归档数据文件前,可查看归档备注文件,以确定是否查询。本发明所述方法支持不同的数据库,不同的操作平台。对操作人员的要求不高,无需知道数据库的结构和对象就可进行归档操作。查询归档文件时只需选择归档类型输入查询的时间范围即可。本发明适用于大型数据库应用系统中对历史数据需要归档及查询的情况。


图1是本发明所述方法中归档历史数据流程图。
图2是本发明所述方法中查询归档历史数据的流程图。
图3是本发明所述方法中归档装载管理器的流程图。
具体实施例方式
下面结合附图和具体实施实例对本发明作进一步的详细描述1)准备工作1.根据数据来源划分历史表所属的归档类型告警类型、性能类型和日志类型;2.归档方式分为全量归档和增量归档;3.在数据库中建立历史表元数据信息表,字段包括归档类型、历史表的表名、归档字段、归档时间。归档操作完成后需修改相应历史表的归档时间。
4.建立历史表记录限制链表,保存历史表记录大小。
5.在数据库中建立归档装载信息表,字段包括归档目录、归档名称、起始时间、终止时间、装载表名、装载表记录数、装载表访问时间。主要是在归档装载管理器中对其进行访问。归档装载信息表保存了归档装载的信息,每装载一个归档需同步修改归档装载信息表,在卸载归档时也需同步修改归档装载信息表。
6.建立归档装载信息链表,保存已经装载的转储信息,与归档装载信息表进行同步修改。
2)归档历史数据图1给出了具体归档流程。
步骤1输入归档类型和归档方式;步骤2检索历史表元数据信息表,找出该归档类型的历史表;步骤3对每一个历史表进行归档,如下表所示

步骤3.1如果是增量归档,从历史表元数据信息表的归档时间字段得到上次归档时间,则本次归档时间范围为上次归档时间到当前时间。如果是全量归档,需归档全部记录,时间范围从1970年1月1日0点0分开始到当前时间。
步骤3.2根据时间范围从历史表中找出满足条件的记录。
步骤3.3将字段名写入数据文件第一行。
步骤3.4读取每一条记录,依字段顺序,写入各个字段的值。
步骤4将本次操作的归档表名,归档字段,时间范围,记录数等以文本文件的方式保存在归档备注文件中。并修改历史表元数据信息表中相应历史表的归档时间。
下表给出了归档备注文件的格式。

3)查询归档历史数据图2给出了查询归档数据的流程。
步骤1输入归档类型、起始时间和终止时间;步骤2从历史表元数据信息表中检索出该归档类型的历史表。搜索归档目录下所有的归档备注文件,找出历史表在此时间范围的归档文件名;步骤3检索归档装载信息表,根据归档文件名得到装载的数据库表,同时修改归档访问时间为当前时间。对于没有装载的归档文件,需通过归档装载管理器进行装载。归档装载管理器的流程图如图3所示;步骤3.1检索归档装载信息表,根据归档文件名得到装载的数据库表,同时修改归档访问时间为当前时间。转步骤4;步骤3.2对于没找到装载表的归档文件,需进行装载。
步骤3.2.1读取该归档的备注文件,得到归档数据文件的记录数;步骤3.2.2根据历史表记录限制链表计算归档数据所需的空间;步骤3.2.3检查临时库是否有足够的未使用空间,如果不满足,需检索归档装载信息链表,根据归档访问时间卸载临时库中最近未访问的归档,卸载的同时修改归档装载信息链表和归档装载信息表。当临时库满足对自由空间的要求时停止卸载操作;步骤3.2.4在临时库中创建临时表并装载归档数据文件,同时修改归档装载信息表和归档装载信息链表。
步骤4返回装载表中满足时间范围的记录。
权利要求
1.一种历史数据查询和归档装置,其特征在于,包括归档备注文件、归档模块和归档管理装载器;所述归档备注文件在每完成一种类型的归档后,记录所归档的历史表名、归档字段、归档时间范围和归档记录数等信息;所述归档模块具体完成数据的归档和装载,将归档数据装载到数据库管理系统的临时库中;所述归档装载管理器负责在装载归档文件时,判断临时数据库是否有足够的自由空间,如果不满足则删除最近未使用的装载表。
2.一种历史数据查询和归档方法,其特征在于,包括以下步骤第一步准备工作;第二步归档历史数据;(1)根据具体情况选择归档类型、归档方式;(2)根据归档类型查找历史表元数据信息表,得到需要归档的历史表和历史表的归档字段,在数据库中以表的形式保存需要归档的历史表、历史表的归档字段及上次进行归档操作的时间;(3)查找归档字段在此时间范围的记录,将记录以文本文件的方式保存在本地硬盘上;(4)将本次归档的历史表名、归档字段名、时间范围、记录数以文本文件的方式保存在归档备注文件中,同时修改历史表元数据信息表中相应历史表的归档时间;第三步检索归档文件(1)根据具体情况灵活选择查询的归档类型和时间范围,形成查询条件;(2)根据查询条件检索归档目录下的归档备注文件,找出满足条件的归档文件;(3)根据归档文件名得到装载的数据库表;(4)返回表中满足条件的记录。
3.根据权利要求2所述的历史数据查询和归档方法,其特征在于,所述第一步进一步包括以下步骤(1)在数据库中建立历史表元数据信息表;(2)建立历史表记录限制链表,保存历史表记录大小;(3)在数据库中建立归档装载信息表;(4)建立归档装载信息链表。
4.根据权利要求2所述的历史数据查询和归档方法,其特征在于,所述第二步(2)中,如果归档方式为增量归档,依据该信息表,得出此次归档的时间范围为上次归档操作的时间到当前时间;如果归档为全量归档,需归档所有数据,时间范围也需包括所有数据。
5.根据权利要求2所述的历史数据查询和归档方法,其特征在于,所述第三步(3)进一步包括以下步骤(3.1)查找归档是否已装载到临时数据库,如找到,则修改归档装载信息表的访问时间,转(4);(3.2)判断临时数据库是否有足够的自由空间;(3.3)如不满足步骤(3.2)所述条件,根据归档装载信息链表中的各装载数据表的访问时间删除最近未访问的数据表,直到满足对临时数据库自由空间的要求;(3.4)在临时数据库中创建数据库表,将数据恢复到该表;(3.5)将创建的库表信息加入归档装载信息链表,并修改访问时间。
全文摘要
本发明公开了一种计算机领域中历史数据查询和归档装置及方法,所述方法中归档部分包括(1)根据具体情况选择归档类型、归档方式;(2)根据归档类型查找历史表元数据信息表得到需要归档的历史表和历史表的归档字段;(3)查找归档字段在此时间范围的记录,将记录以文本文件的方式保存在本地硬盘上;(4)将本次归档的历史表名,归档字段名,时间范围,记录数以文本文件的方式保存在归档备注文件中,同时修改历史表元数据信息表中相应历史表的归档时间。本发明克服现有技术中不能对部分库表,甚至单个库表进行归档,及效率低下、容易造成数据库中表空间满表溢出、用户掌握复杂的缺点,能够有效对部分库表直接查询归档、高效高稳定性而且简单。
文档编号G06F17/30GK1783063SQ20041009625
公开日2006年6月7日 申请日期2004年11月29日 优先权日2004年11月29日
发明者郭文君 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1