智能数据归档.pdf

上传人:大师****2 文档编号:177525 上传时间:2018-01-31 格式:PDF 页数:12 大小:1.02MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380010497.9

申请日:

2013.01.06

公开号:

CN104137103A

公开日:

2014.11.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130106|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

国际商业机器公司

发明人:

S·阿格拉瓦尔; M·K·莫哈尼亚

地址:

美国纽约

优先权:

2012.02.22 US 13/402,529

专利代理机构:

中国国际贸易促进委员会专利商标事务所 11038

代理人:

鲍进

PDF下载: PDF下载
内容摘要

本发明公开涉及智能数据归档。提供了包括计算机程序产品的方法和装置,其实现并利用用于归档数据库中的活动记录的技术。在所述数据库中创建辅助表。所述辅助表可以存储关于要被归档并从所述数据库中删除的活动记录的元数据信息。选择要从所述数据库中删除的活动记录。在所述辅助表中为选定的活动记录存储元数据信息。把所述选定的活动记录归档到数据存储设备中。基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录和所述数据库中的活动记录的列数据。

权利要求书

1.  一种用于归档数据库中的活动记录的计算机实现的方法,所述方法包括:
在所述数据库中创建辅助表,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;
选择要从所述数据库中删除的活动记录;
在所述辅助表中为选定的活动记录存储元数据信息;
把所述选定的活动记录归档到数据存储设备中;及
基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录和所述数据库中的活动记录的列数据。

2.
  如权利要求1所述的方法,还包括:
响应于记录已被归档到所述数据存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获所述记录的元数据信息以反映所述活动记录已被更新。

3.
  如权利要求2所述的方法,其中删除所述选定的活动记录包括:
只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录。

4.
  如权利要求1所述的方法,还包括:
从通过主键-外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录。

5.
  如权利要求1所述的方法,其中所述辅助表具有模式(RowID、Table_Name、Update_Flag、Is_Delete_Successful),其中RowID是所述活动记录的主键标识符,Table_Name指示所述数据库中存储所述活动记录的表,Update_Flag指示所述活动记录在归档之后是否已被更新,以及Is_Delete_Successful指示记录是否已经从所述数据库中成功地删除。

6.
  如权利要求1所述的方法,还包括:
基于所述辅助表中的信息产生报告,所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。

7.
  一种用于归档数据库中的活动记录的计算机程序产品,所述计算机程序产品包括:
其中包含计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:
配置成在所述数据库中创建辅助表的计算机可读程序代码,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;
配置成选择要从所述数据库中删除的活动记录的计算机可读程序代码;
配置成在所述辅助表中为选定的活动记录存储元数据信息的计算机可读程序代码;
配置成把所述选定的活动记录归档到数据存储设备中的计算机可读程序代码;及
配置成基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录的列数据和所述数据库中的活动记录的列数据的计算机可读程序代码。

8.
  如权利要求7所述的计算机程序产品,还包括:
配置成响应于记录已被归档到所述数据存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获用于所述记录的元数据信息以反映所述活动记录已被更新的计算机可读程序代码。

9.
  如权利要求8所述的计算机程序产品,其中配置成删除所述选定的活动记录的计算机可读程序代码包括:
配置成只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录的计算机可读程序代码。

10.
  如权利要求7所述的计算机程序产品,还包括:
配置成从通过主键-外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录的计算机可读程序代码。

11.
  如权利要求7所述的计算机程序产品,其中所述辅助表具有模式(RowID、Table_Name、Update_Flag、Is_Delete_Successful),其中RowID是所述活动记录的主键标识符,Table_Name指示所述数据库中存储所述活动记录的表,Update_Flag指示所述活动记录在归档之后是否已被更新,以及Is_Delete_Successful指示记录是否已经从所述数据库中成功地删除。

12.
  如权利要求7所述的方法,还包括:
配置成基于所述辅助表中的信息产生报告的计算机可读程序代码,其中所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。

13.
  一种用于归档数据库中的活动记录的系统,所述系统包括:
数据存储设备,能够操作来归档从所述数据库中获得的活动记录以便长期存储;
托管带有活动记录的数据库的计算设备,所述计算设备包括处理器及存储指令的存储器,其中所述指令能够操作来使得所述处理器执行以下操作:
在所述数据库中创建辅助表,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;
选择要从所述数据库中删除的活动记录;
在所述辅助表中为选定的活动记录存储元数据信息;
把所述选定的活动记录归档到所述数据存储设备中;及
基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录和所述数据库中的活动记录的列数据。

14.
  如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令:
响应于记录已被归档到所述数据存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获所述记录的元数据信息以反映所述活动记录已被更新。

15.
  如权利要求14所述的系统,其中删除所述选定的活动记录包括:
只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录。

16.
  如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令:
从通过主键-外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录。

17.
  如权利要求13所述的系统,其中所述辅助表具有模式(RowID、Table_Name、Update_Flag、Is_Delete_Successful),其中RowID是所述活动记录的主键标识符,Table_Name指示所述数据库中存储所述活动记录的表,Update_Flag指示所述活动记录在归档之后是否已被更新,以及Is_Delete_Successful指示记录是否已经从所述数据库中成功地删除。

18.
  如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令:
基于所述辅助表中的信息产生报告,所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。

说明书

智能数据归档
技术领域
本发明涉及数据归档(data archiving),更具体地,涉及存储在数据库中的数据的归档。
背景技术
数据归档指把不再积极使用的数据转移到单独的数据存储设备用于长期保留的过程。数据档案通常包括仍然重要并且需要用于将来参考的较旧的数据,以及必须为法规遵从、审计跟踪的目的而保持的数据,或者基于历史数据可以从中得到业务概况的资源。通常,数据档案是有索引的并且具有查找功能,使得文件及文件的部分能够被容易地定位和检索。
通常,数据库归档工作分三个阶段。首先,从数据库中获取要被归档的数据库中的记录并将其存储在数据档案中。获取通常可以利用SQL(结构化查询语言)查询来完成,诸如“SELECT”查询。被检索的记录以适当的格式归档到诸如磁盘、磁带等的某种类型的长期存储介质上。然后,验证归档的记录以确保它们的正确性,并且一旦验证完成,最终从数据库中永久地删除这些记录。
在传统的数据库归档中,使用了两种主要的方法来从数据库中删除归档的记录。第一种方法是基于完全的数据比较模型。即,在从数据库中删除记录之前,在归档的数据和数据库中的活动(active)(产品)数据之间做一对一的比较。第二种方法是基于以下思想:基于分区数据归档数据库记录(当归档策略是基于数据的整个分区时),然后放弃整个分区。
这些方法带有的缺陷是(带有所有属性值的)记录比较是昂贵并且计算密集型的,部分地因为归档的记录必须从档案(即,存储介质 /磁盘等)中获取以用于比较。此外,当记录在归档之后被更新时,没有维护元数据。因此,可能存在某人更新已经归档并且符合删除条件的记录的可能性。由于没有维护数据库相关的元数据,所以这使得数据库中更新的记录与同一记录的归档拷贝不一致。因此,存在提高用于归档数据的技术的需要。
发明内容
根据本发明的一种实施例,提供了用于归档数据库中的活动记录的方法和装置,其中包括计算机程序产品。在数据库中创建辅助表。该辅助表能够存储关于要归档并从数据库中删除的活动记录的元数据信息。选择要从数据库中删除的活动记录。为选定的活动记录在辅助表中存储元数据信息。选定的活动记录被归档到数据存储设备中。基于辅助表中的更新信息,从数据库中删除选定的活动记录,而无需在从数据库中删除活动记录之前,比较数据存储设备中的归档记录的列数据和数据库中的活动记录的列数据。
本发明的一种或多种实施例的细节将在附图及以下描述中进行阐述。根据描述和附图以及权利要求,本发明的其它特征和优点将显而易见。
附图说明
图1是示出根据一种实施例的用于智能数据归档的过程(100)的流程图。
图2是示出根据一种实施例的用于从表中删除记录的图1的步骤(108)的更详细示图的流程图。
图3是示出根据一种实施例的用于识别表之间的关系的图2的步骤(202)的更详细示图的流程图。
在各个图中,相同的标号都指示相同的元素。
具体实施方式
本发明的各种实施例提供了用于归档数据的技术,这将在以下进行详细描述。本质上,通过在数据库目录中维护辅助表中的参考键,就使得能够进行“智能删除”,而无需把归档的记录与原来的活动记录进行比较。而且,对归档记录的更新可以通过在辅助表中标记参考键记录来处理,使得这些记录不被删除。由于利用了这些技术,因此能够完成更有效的审计跟踪和报告生成。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质 以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以加载到计算机、其它可编程数据处理装置 或者其它设备上,使得一系列操作步骤在计算机、其它可编程装置或者其它设备上执行,以产生一种计算机实现的过程,使得在所述计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图1示出了根据一种实施例的用于智能数据归档的过程(100)的流程图。如在图1中可以看到的,过程(100)通过创建附加的目录表(catalog table)作为辅助表开始(步骤102)。对于这个示例,附加的目录表将被称为“DELETEON”并且将具有模式(schema)(RowID、Table_Name、Update_Flag、Is_Delete_Sucessful)。RowID指示归档的记录ID(通过任何主键标识符)。Table_Name指示来自其的记录已被归档的表。Update_Flag是每当具有RowID的记录被更新时,其值被设置为“1”,否则的话设置为“0”的标志。Is_Delete_Sucessful是当具有RowID的记录没被删除时设置为“0”,并且当记录被删除时设置为“1”的标志。
然后,选择数据库中要被归档的记录并且通过为每条要被归档的记录插入新的元组来更新DELETEON表(步骤104)。在一种实施例中,存在SELECT查询语法,其指示所有被访问的记录都具有将来被删除的资格。这个SELECT查询是当应该进行记录归档时由用户执行的。在一种实施例中,SELECT查询具有下述语法:
SELECT*from<tab>where<predicates if any>with DELETEON;
一旦被执行,上述SELECT查询就在DELETEON目录表中标记每个被访问的记录用于删除。所有被访问记录的RowID在每一行中都与在其上运行SELECT查询的表的Table_Name一起存储。
初始地,为记录把Update_Flag的值设置为“0”并且把Is_Delete_Sucessful设置为“1”。如果带有RowID的记录随后发生更新,那么用于这个记录的Update_Flag的值改变成“1”。以这种方式,能够确保在SELECT查询运行之后被改变的记录没有从活动数据库中删除。
在一些实施例中,提供了进一步的表“List_of_Deleteon”。表“List_of_Deleteon”具有列“Table_Name”,其通过主键-外键(PK-FK)关联到DELETEON表的“Table_Name”列。
如果对于已经被标记用于删除的记录,接收到更新请求,那么更新请求将把用于该记录的Update_Flag列值设置为“1”。在DELETEON表中改变用于该记录的Update_Flag(而不是简单地删除整个记录)的原因是该Update_Flag值可以在以后用来产生哪些已被归档和哪些已被删除之间的差异报告,如将在以下进一步详细描述的。
在已经使用SELECT语句选择数据之后,所有选择的行都被获取并存储在存储装置中(步骤106)。如本领域普通技术人员所熟悉的,这种存储装置可以是例如各种类型的磁盘、磁带等。
然后,从所有通过PK-FK关系连接的表中删除所选择的记录(步骤108)。在一种实施例中,使用带有下述语法的新的DELETE查询用于删除记录。
DELETE{ALL|<表格名列表>}WITH DELETEON
当执行该DELETE查询时,将参考DELETEON表并且那些标记为删除的记录(即,那些具有Update_Flag列值“0”的记录)将被删除。用于删除记录的过程在图2和3进行进一步详细的描述。如在图2中可以看到的,过程(108)以在表中识别关系(如果有的话)开始(步骤202)。图3进一步详细地示出了这个步骤的一种实施例,并且现在将对其进行描述。
如在图3中可以看到的,用于识别关系的过程(202)通过从List_of_Deleteon目录表中获取单个列中的所有记录——即,具有要被删除的记录的所有表的名称——开始(步骤302)。然后,为这些表创建关系树,其为这些表识别父子关系(步骤304)。在一种实施例中,使用现有的数据库目录表来建立这种关系树,其中现有的数据库目录表为List_of_Deleteon表中的每个表存储关于关系的信息。这结束步骤203。
现在返回到图2,在关系树中选择最低层的孩子,即,本身不具有任何关联的子表的表(步骤203)。然后对RowID和Table_Name的值进行匹配并从List_of_Deleteon表中删除记录(步骤204)。然后,把DELETEON表中的Is_Delete_Successful列标记为“1”(步骤206)。如果由于某种原因,特定记录的删除没有成功,那么为了确保完整性,对所有关联的表的记录,将把用于该记录的Is_Delete_Successful列更新为“0”。
然后,该过程检查在关系中是否有在DELETEON表中具有匹配记录的任何进一步的表(步骤208)。如果存在在DELETON表中带有匹配记录的进一步的表,那么过程返回到步骤204并且如上所述继续。如果没有在DELETEON表中带有匹配记录的进一步的表,那么过程以基于Is_Delete_Successful列中的值从DELETEON表自身中删除记录来继续(步骤210)。如果在Is_Delete_Successful列中的值是“1”,那么该记录从DELETEON表中删除。如果在Is_Delete_Successful列中的值是“0”,那么由于这些记录还没有从数据库中删除,因此记录被保留。来自List_of_Deleteon目录表中的记录以类似的方式删除。最终,给发起DELETE查询的用户(或应用)呈现指示该DELETE查询的成功或失败的报告(步骤212),这使该过程结束(即,图1的步骤108)。
如技术人员所意识到的,利用上述实施例可以实现许多优点。例如,行的RowID指定数据文件和包含该行的数据块及该行在那个块中的位置。由于指定了在数据库中行的精确位置,因此通过指定其RowID来定位行是检索单个行的最快方法。而且,RowID扫描是由查询优化器使用来产生最好的查询执行计划的访问路径。
仍然还有的优势包括不需要在数据库之外维护任何元数据信息的事实。磁盘访问的次数减少了,这使得I/O成本减少。没有比较记录的需要,这进一步显著地减少了计算成本。记录通过参考目录表来删除,即,不需要外部的元数据。通过在DELETON表中标记每一行,很容易确定记录是否已经被更新。辅助信息在审计跟踪和商业智 能应用中会是有帮助的。
如上所述,在一种实施例中,DELETEON表也可以用来产生已归档的数据和已从数据库中删除的数据之间的差异报告。在成功地执行“DELETE{ALL|<表格名列表>}WITH DELETEON”SQL查询之后,通过检查DELETEON表的“Is_Delete_Successful”列,可以检查DELETEON表,以检验是否仍然留有“Is_Delete_Successful”列值设置为“0”的任何记录。基于这些值,能够创建报告(主要通过执行特定的SQL命令),该报告列出所有没被删除的记录。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文所使用的术语仅仅是为了描述特定的实施例而不是要作为本发明的限制。所本文所使用的,除非上下文明确地另外指出,否则单数形式“一个”和“这个”是要也包括复数形式。还应当理解,当在本说明书使用时,术语“包括”和/或“包含”规定所述的特征、整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。
以下权利要求中所有手段或步骤加功能元素的对应结构、材料、动作及等价物都是要包括用于结合具体所述的其它所述元素执行所述功能的任何结构、材料或行为。已经为了说明和描述给出了本发明的 描述,但这不是详尽的或者要把本发明限定到所公开的形式。在不背离本发明范围与主旨的情况下,许多修改和变化对本领域普通技术人员都将是显而易见的。实施例的选择和描述是为了最好地解释本发明的原理和实践应用,并使本领域普通技术人员能够理解本发明具有适于预期特定使用的各种修改的各种实施例。

智能数据归档.pdf_第1页
第1页 / 共12页
智能数据归档.pdf_第2页
第2页 / 共12页
智能数据归档.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《智能数据归档.pdf》由会员分享,可在线阅读,更多相关《智能数据归档.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104137103A43申请公布日20141105CN104137103A21申请号201380010497922申请日2013010613/402,52920120222USG06F17/3020060171申请人国际商业机器公司地址美国纽约72发明人S阿格拉瓦尔MK莫哈尼亚74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人鲍进54发明名称智能数据归档57摘要本发明公开涉及智能数据归档。提供了包括计算机程序产品的方法和装置,其实现并利用用于归档数据库中的活动记录的技术。在所述数据库中创建辅助表。所述辅助表可以存储关于要被归档并从所述数据库中删除的活动记录的。

2、元数据信息。选择要从所述数据库中删除的活动记录。在所述辅助表中为选定的活动记录存储元数据信息。把所述选定的活动记录归档到数据存储设备中。基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录和所述数据库中的活动记录的列数据。30优先权数据85PCT国际申请进入国家阶段日2014082286PCT国际申请的申请数据PCT/CN2013/0700892013010687PCT国际申请的公布数据WO2013/123831EN2013082951INTCL权利要求书3页说明书5页附图3页19中华人民共和国国家知识。

3、产权局12发明专利申请权利要求书3页说明书5页附图3页10申请公布号CN104137103ACN104137103A1/3页21一种用于归档数据库中的活动记录的计算机实现的方法,所述方法包括在所述数据库中创建辅助表,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;选择要从所述数据库中删除的活动记录;在所述辅助表中为选定的活动记录存储元数据信息;把所述选定的活动记录归档到数据存储设备中;及基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录和所述数据库中的活动记录的列数据。。

4、2如权利要求1所述的方法,还包括响应于记录已被归档到所述数据存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获所述记录的元数据信息以反映所述活动记录已被更新。3如权利要求2所述的方法,其中删除所述选定的活动记录包括只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录。4如权利要求1所述的方法,还包括从通过主键外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录。5如权利要求1所述的方法,其中所述辅助表具有模式ROWID、TABLE_NAME、UPDATE_FLAG、IS_DELETE。

5、_SUCCESSFUL,其中ROWID是所述活动记录的主键标识符,TABLE_NAME指示所述数据库中存储所述活动记录的表,UPDATE_FLAG指示所述活动记录在归档之后是否已被更新,以及IS_DELETE_SUCCESSFUL指示记录是否已经从所述数据库中成功地删除。6如权利要求1所述的方法,还包括基于所述辅助表中的信息产生报告,所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。7一种用于归档数据库中的活动记录的计算机程序产品,所述计算机程序产品包括其中包含计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括配置成在所述数据库中创建。

6、辅助表的计算机可读程序代码,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;配置成选择要从所述数据库中删除的活动记录的计算机可读程序代码;配置成在所述辅助表中为选定的活动记录存储元数据信息的计算机可读程序代码;配置成把所述选定的活动记录归档到数据存储设备中的计算机可读程序代码;及配置成基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备中归档的记录的列数据和所述数据库中的活动记录的列数据的计算机可读程序代码。8如权利要求7所述的计算机程序产品,还包括配置成响应于记录已被归档到所述数据。

7、存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获用于所述记录的元数据信息以反映所述活动记录已被更新的计权利要求书CN104137103A2/3页3算机可读程序代码。9如权利要求8所述的计算机程序产品,其中配置成删除所述选定的活动记录的计算机可读程序代码包括配置成只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录的计算机可读程序代码。10如权利要求7所述的计算机程序产品,还包括配置成从通过主键外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录的计算机可读程序代码。11如权利要求7。

8、所述的计算机程序产品,其中所述辅助表具有模式ROWID、TABLE_NAME、UPDATE_FLAG、IS_DELETE_SUCCESSFUL,其中ROWID是所述活动记录的主键标识符,TABLE_NAME指示所述数据库中存储所述活动记录的表,UPDATE_FLAG指示所述活动记录在归档之后是否已被更新,以及IS_DELETE_SUCCESSFUL指示记录是否已经从所述数据库中成功地删除。12如权利要求7所述的方法,还包括配置成基于所述辅助表中的信息产生报告的计算机可读程序代码,其中所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。13一种用于归档数。

9、据库中的活动记录的系统,所述系统包括数据存储设备,能够操作来归档从所述数据库中获得的活动记录以便长期存储;托管带有活动记录的数据库的计算设备,所述计算设备包括处理器及存储指令的存储器,其中所述指令能够操作来使得所述处理器执行以下操作在所述数据库中创建辅助表,所述辅助表能够操作来存储关于要被归档并从所述数据库中删除的活动记录的元数据信息;选择要从所述数据库中删除的活动记录;在所述辅助表中为选定的活动记录存储元数据信息;把所述选定的活动记录归档到所述数据存储设备中;及基于所述辅助表中的更新信息,从所述数据库中删除所述选定的活动记录,而不需要在从所述数据库中删除所述活动记录之前,比较所述数据存储设备。

10、中归档的记录和所述数据库中的活动记录的列数据。14如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令响应于记录已被归档到所述数据存储设备中之后又接收到对所述活动记录的更新,在所述辅助表中捕获所述记录的元数据信息以反映所述活动记录已被更新。15如权利要求14所述的系统,其中删除所述选定的活动记录包括只有所述辅助表中用于所述记录的更新值指示在所述活动记录被归档之后没有对所述活动记录进行更新,才从所述数据库中删除所述活动记录。16如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令权利要求书CN104137103A3/3页4从通过。

11、主键外键关系与其中存储所述选定的记录的表连接的表中删除与所述选定的记录相关的活动记录。17如权利要求13所述的系统,其中所述辅助表具有模式ROWID、TABLE_NAME、UPDATE_FLAG、IS_DELETE_SUCCESSFUL,其中ROWID是所述活动记录的主键标识符,TABLE_NAME指示所述数据库中存储所述活动记录的表,UPDATE_FLAG指示所述活动记录在归档之后是否已被更新,以及IS_DELETE_SUCCESSFUL指示记录是否已经从所述数据库中成功地删除。18如权利要求13所述的系统,其中所述存储器存储能够操作来使得所述处理器执行以下操作的指令基于所述辅助表中的信息产。

12、生报告,所述报告指示已在所述数据存储设备中归档的数据与已从所述数据库中删除的数据之间是否存在任何差异。权利要求书CN104137103A1/5页5智能数据归档技术领域0001本发明涉及数据归档DATAARCHIVING,更具体地,涉及存储在数据库中的数据的归档。背景技术0002数据归档指把不再积极使用的数据转移到单独的数据存储设备用于长期保留的过程。数据档案通常包括仍然重要并且需要用于将来参考的较旧的数据,以及必须为法规遵从、审计跟踪的目的而保持的数据,或者基于历史数据可以从中得到业务概况的资源。通常,数据档案是有索引的并且具有查找功能,使得文件及文件的部分能够被容易地定位和检索。0003通常。

13、,数据库归档工作分三个阶段。首先,从数据库中获取要被归档的数据库中的记录并将其存储在数据档案中。获取通常可以利用SQL结构化查询语言查询来完成,诸如“SELECT”查询。被检索的记录以适当的格式归档到诸如磁盘、磁带等的某种类型的长期存储介质上。然后,验证归档的记录以确保它们的正确性,并且一旦验证完成,最终从数据库中永久地删除这些记录。0004在传统的数据库归档中,使用了两种主要的方法来从数据库中删除归档的记录。第一种方法是基于完全的数据比较模型。即,在从数据库中删除记录之前,在归档的数据和数据库中的活动ACTIVE产品数据之间做一对一的比较。第二种方法是基于以下思想基于分区数据归档数据库记录当。

14、归档策略是基于数据的整个分区时,然后放弃整个分区。0005这些方法带有的缺陷是带有所有属性值的记录比较是昂贵并且计算密集型的,部分地因为归档的记录必须从档案即,存储介质/磁盘等中获取以用于比较。此外,当记录在归档之后被更新时,没有维护元数据。因此,可能存在某人更新已经归档并且符合删除条件的记录的可能性。由于没有维护数据库相关的元数据,所以这使得数据库中更新的记录与同一记录的归档拷贝不一致。因此,存在提高用于归档数据的技术的需要。发明内容0006根据本发明的一种实施例,提供了用于归档数据库中的活动记录的方法和装置,其中包括计算机程序产品。在数据库中创建辅助表。该辅助表能够存储关于要归档并从数据库。

15、中删除的活动记录的元数据信息。选择要从数据库中删除的活动记录。为选定的活动记录在辅助表中存储元数据信息。选定的活动记录被归档到数据存储设备中。基于辅助表中的更新信息,从数据库中删除选定的活动记录,而无需在从数据库中删除活动记录之前,比较数据存储设备中的归档记录的列数据和数据库中的活动记录的列数据。0007本发明的一种或多种实施例的细节将在附图及以下描述中进行阐述。根据描述和附图以及权利要求,本发明的其它特征和优点将显而易见。说明书CN104137103A2/5页6附图说明0008图1是示出根据一种实施例的用于智能数据归档的过程100的流程图。0009图2是示出根据一种实施例的用于从表中删除记录。

16、的图1的步骤108的更详细示图的流程图。0010图3是示出根据一种实施例的用于识别表之间的关系的图2的步骤202的更详细示图的流程图。0011在各个图中,相同的标号都指示相同的元素。具体实施方式0012本发明的各种实施例提供了用于归档数据的技术,这将在以下进行详细描述。本质上,通过在数据库目录中维护辅助表中的参考键,就使得能够进行“智能删除”,而无需把归档的记录与原来的活动记录进行比较。而且,对归档记录的更新可以通过在辅助表中标记参考键记录来处理,使得这些记录不被删除。由于利用了这些技术,因此能够完成更有效的审计跟踪和报告生成。0013所属技术领域的技术人员知道,本发明的各个方面可以实现为系统。

17、、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即完全的硬件实施方式、完全的软件实施方式包括固件、驻留软件、微代码等,或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。0014可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储。

18、介质的更具体的例子非穷举的列表包括具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑盘只读存储器CDROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。0015计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还。

19、可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。0016计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。0017可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如JAVA、SMALLTALK、C等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执。

20、行、说明书CN104137103A3/5页7部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网LAN或广域网WAN连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供商来通过因特网连接。0018下面将参照根据本发明实施例的方法、装置系统和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得。

21、这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。0019也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品ARTICLEOFMANUFACTURE。0020计算机程序指令也可以加载到计算机、其它可编程数据处理装置或者其它设备上,使得一系列操作步骤在计算机、其它可编程装置或者其它设备上执行,以产生一种计算机实现的过程,使得。

22、在所述计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。0021图1示出了根据一种实施例的用于智能数据归档的过程100的流程图。如在图1中可以看到的,过程100通过创建附加的目录表CATALOGTABLE作为辅助表开始步骤102。对于这个示例,附加的目录表将被称为“DELETEON”并且将具有模式SCHEMAROWID、TABLE_NAME、UPDATE_FLAG、IS_DELETE_SUCESSFUL。ROWID指示归档的记录ID通过任何主键标识符。TABLE_NAME指示来自其的记录已被归档的表。UPDATE_FLAG是每当具有R。

23、OWID的记录被更新时,其值被设置为“1”,否则的话设置为“0”的标志。IS_DELETE_SUCESSFUL是当具有ROWID的记录没被删除时设置为“0”,并且当记录被删除时设置为“1”的标志。0022然后,选择数据库中要被归档的记录并且通过为每条要被归档的记录插入新的元组来更新DELETEON表步骤104。在一种实施例中,存在SELECT查询语法,其指示所有被访问的记录都具有将来被删除的资格。这个SELECT查询是当应该进行记录归档时由用户执行的。在一种实施例中,SELECT查询具有下述语法0023SELECTFROMWHEREWITHDELETEON;0024一旦被执行,上述SELECT。

24、查询就在DELETEON目录表中标记每个被访问的记录用于删除。所有被访问记录的ROWID在每一行中都与在其上运行SELECT查询的表的TABLE_NAME一起存储。0025初始地,为记录把UPDATE_FLAG的值设置为“0”并且把IS_DELETE_SUCESSFUL设置为“1”。如果带有ROWID的记录随后发生更新,那么用于这个记录的UPDATE_FLAG的值改变成“1”。以这种方式,能够确保在SELECT查询运行之后被改变的记录没有从活动数据库中删除。0026在一些实施例中,提供了进一步的表“LIST_OF_DELETEON”。表“LIST_OF_说明书CN104137103A4/5页8。

25、DELETEON”具有列“TABLE_NAME”,其通过主键外键PKFK关联到DELETEON表的“TABLE_NAME”列。0027如果对于已经被标记用于删除的记录,接收到更新请求,那么更新请求将把用于该记录的UPDATE_FLAG列值设置为“1”。在DELETEON表中改变用于该记录的UPDATE_FLAG而不是简单地删除整个记录的原因是该UPDATE_FLAG值可以在以后用来产生哪些已被归档和哪些已被删除之间的差异报告,如将在以下进一步详细描述的。0028在已经使用SELECT语句选择数据之后,所有选择的行都被获取并存储在存储装置中步骤106。如本领域普通技术人员所熟悉的,这种存储装置可。

26、以是例如各种类型的磁盘、磁带等。0029然后,从所有通过PKFK关系连接的表中删除所选择的记录步骤108。在一种实施例中,使用带有下述语法的新的DELETE查询用于删除记录。0030DELETEALL|WITHDELETEON0031当执行该DELETE查询时,将参考DELETEON表并且那些标记为删除的记录即,那些具有UPDATE_FLAG列值“0”的记录将被删除。用于删除记录的过程在图2和3进行进一步详细的描述。如在图2中可以看到的,过程108以在表中识别关系如果有的话开始步骤202。图3进一步详细地示出了这个步骤的一种实施例,并且现在将对其进行描述。0032如在图3中可以看到的,用于识别。

27、关系的过程202通过从LIST_OF_DELETEON目录表中获取单个列中的所有记录即,具有要被删除的记录的所有表的名称开始步骤302。然后,为这些表创建关系树,其为这些表识别父子关系步骤304。在一种实施例中,使用现有的数据库目录表来建立这种关系树,其中现有的数据库目录表为LIST_OF_DELETEON表中的每个表存储关于关系的信息。这结束步骤203。0033现在返回到图2,在关系树中选择最低层的孩子,即,本身不具有任何关联的子表的表步骤203。然后对ROWID和TABLE_NAME的值进行匹配并从LIST_OF_DELETEON表中删除记录步骤204。然后,把DELETEON表中的IS_。

28、DELETE_SUCCESSFUL列标记为“1”步骤206。如果由于某种原因,特定记录的删除没有成功,那么为了确保完整性,对所有关联的表的记录,将把用于该记录的IS_DELETE_SUCCESSFUL列更新为“0”。0034然后,该过程检查在关系中是否有在DELETEON表中具有匹配记录的任何进一步的表步骤208。如果存在在DELETON表中带有匹配记录的进一步的表,那么过程返回到步骤204并且如上所述继续。如果没有在DELETEON表中带有匹配记录的进一步的表,那么过程以基于IS_DELETE_SUCCESSFUL列中的值从DELETEON表自身中删除记录来继续步骤210。如果在IS_DEL。

29、ETE_SUCCESSFUL列中的值是“1”,那么该记录从DELETEON表中删除。如果在IS_DELETE_SUCCESSFUL列中的值是“0”,那么由于这些记录还没有从数据库中删除,因此记录被保留。来自LIST_OF_DELETEON目录表中的记录以类似的方式删除。最终,给发起DELETE查询的用户或应用呈现指示该DELETE查询的成功或失败的报告步骤212,这使该过程结束即,图1的步骤108。0035如技术人员所意识到的,利用上述实施例可以实现许多优点。例如,行的ROWID指定数据文件和包含该行的数据块及该行在那个块中的位置。由于指定了在数据库中行的精确位置,因此通过指定其ROWID来定。

30、位行是检索单个行的最快方法。而且,ROWID扫描是由说明书CN104137103A5/5页9查询优化器使用来产生最好的查询执行计划的访问路径。0036仍然还有的优势包括不需要在数据库之外维护任何元数据信息的事实。磁盘访问的次数减少了,这使得I/O成本减少。没有比较记录的需要,这进一步显著地减少了计算成本。记录通过参考目录表来删除,即,不需要外部的元数据。通过在DELETON表中标记每一行,很容易确定记录是否已经被更新。辅助信息在审计跟踪和商业智能应用中会是有帮助的。0037如上所述,在一种实施例中,DELETEON表也可以用来产生已归档的数据和已从数据库中删除的数据之间的差异报告。在成功地执行。

31、“DELETEALL|WITHDELETEON”SQL查询之后,通过检查DELETEON表的“IS_DELETE_SUCCESSFUL”列,可以检查DELETEON表,以检验是否仍然留有“IS_DELETE_SUCCESSFUL”列值设置为“0”的任何记录。基于这些值,能够创建报告主要通过执行特定的SQL命令,该报告列出所有没被删除的记录。0038附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能。

32、的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。0039本文所使用的术语仅仅是为了描述特定的实施例而不是要作为本发明的限制。所本文所使用的,除非上下文明确地另外指出,否则单数形式“一个”和“这个”是要也包括复数形式。还应当理解,当在本说明书使用时,术语“包括”和。

33、/或“包含”规定所述的特征、整数、步骤、操作、元素和/或部件的存在,但是并不排除一个或多个其它特征、整数、步骤、操作、元素、部件和/或其组的存在或添加。0040以下权利要求中所有手段或步骤加功能元素的对应结构、材料、动作及等价物都是要包括用于结合具体所述的其它所述元素执行所述功能的任何结构、材料或行为。已经为了说明和描述给出了本发明的描述,但这不是详尽的或者要把本发明限定到所公开的形式。在不背离本发明范围与主旨的情况下,许多修改和变化对本领域普通技术人员都将是显而易见的。实施例的选择和描述是为了最好地解释本发明的原理和实践应用,并使本领域普通技术人员能够理解本发明具有适于预期特定使用的各种修改的各种实施例。说明书CN104137103A1/3页10图1说明书附图CN104137103A102/3页11图2说明书附图CN104137103A113/3页12图3说明书附图CN104137103A12。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1