CN104657672B - 用于对表的预定义部分存档的方法和系统 - Google Patents

用于对表的预定义部分存档的方法和系统 Download PDF

Info

Publication number
CN104657672B
CN104657672B CN201410645159.9A CN201410645159A CN104657672B CN 104657672 B CN104657672 B CN 104657672B CN 201410645159 A CN201410645159 A CN 201410645159A CN 104657672 B CN104657672 B CN 104657672B
Authority
CN
China
Prior art keywords
backup copies
access state
state mark
backup
delete
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.)
Active
Application number
CN201410645159.9A
Other languages
English (en)
Other versions
CN104657672A (zh
Inventor
K·斯托尔泽
L·M·库尼奥卡-威斯
B·布鲁尔
C·肯普弗特
O·科埃斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104657672A publication Critical patent/CN104657672A/zh
Application granted granted Critical
Publication of CN104657672B publication Critical patent/CN104657672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用于对数据安全存档的方法和系统。该方法由计算机实现,用于对驻留在数据库系统(100)中的表(201)的预定义部分(203A)进行存档,该方法包括:创建表的部分(203A)的第一备份副本(203B);向表的部分(203A)指配访问状态标志;设置访问状态标志;使用访问状态标志用于防止对表的部分(203A)的现有备份副本的修改并且用于防止对表的部分(203A)的进一步的备份操作;将表的部分(203A)存档到分离的系统(135);从数据库系统中删除表的部分(203A)的内容并且将访问状态标志保留在所述数据库系统中。

Description

用于对表的预定义部分存档的方法和系统
技术领域
本发明涉及计算系统,并且更具体地涉及用于对数据安全存档的方法。
背景技术
由数据库系统存储和处理的数据量正在加速增长。存储数以亿计的数据库记录会对存储该数据所需要的磁盘空间产生影响。对于像z/OS存储服务器那样的高质量存储来说,该磁盘空间可能是昂贵的。此外,在数据库系统中存储数以亿计的记录可能会影响数据库系统的性能。
因此,不频繁改变的数据和/或不频繁使用的数据可能经受被移动(“存档(archive)”)到较便宜的存储装置或系统。
将数据从一个位置移动到另一位置(例如,到另一数据库系统)的过程在本发明中将被称为“存档”。
对几乎所有已知的“存档”解决方案共同的是,数据被移动到存档系统中并且然后将数据从源系统中清除。然而,这种数据分离导致对源系统的数据维护问题。
发明内容
本发明的实施例的目的是提供用于对数据安全存档的改进的方法、计算机系统和计算机程序产品。所述目的由独立权利要求的主题解决。有利的实施例在从属权利要求中描述。
在一个方面,本发明涉及一种用于对驻留在数据库系统中的表的预定义部分进行存档的计算机实现的方法。该方法包括:
a.创建表的该部分的第一备份副本;
b.向表的该部分指配访问状态标志;
c.设置访问状态标志;
d.使用访问状态标志来防止修改表的该部分的现有备份副本并且防止对表的该部分的进一步备份操作;
e.将表的该部分存档到分离的系统;
f.从数据库系统中删除表的该部分的内容并且将访问状态标志保留在数据库系统中。
通过使用在删除源系统中的数据之前已经创建的受保护的备份副本来防止数据丢失,这些特征可以提供用于存档数据的安全方法。也就是说,假如存档系统故障或需要对存档数据的数据修改,可以在数据库系统中恢复该数据。此外,这可以节省在从存档系统恢复数据时将另外需要的资源(例如,处理功率)。
对表的部分的修改包括将新数据插入在表的该部分中或者更新(覆写)表的该部分中的现有数据或者删除表的该部分的内容。
本方法可以允许使用相同的单个数据源(即,从第一备份副本)创建多个存档。这与基于相应多个数据源来提供多个存档的常规方法相反。这是因为,跟随数据存档之后的是数据源的删除,并且因此利用常规方法的进一步的存档操作可能首先要求恢复被删除的数据源。结果,本方法还可以节省资源并防止可能发生在处理相同数据的多个源时多个存档之间的数据不一致性。
例如,现有备份副本至少包括表的部分的最后备份副本。
根据一个实施例,该方法进一步包括针对表的部分使用第一备份副本重复存档步骤e)至少两次。这可以使用第一备份副本提供表的相同部分的多个存档副本。
根据一个实施例,该方法进一步包括接收对表的部分的查询,其应当返回源系统的表的部分的数据(即,没有存档数据);响应于所接收的查询,使用访问状态标志用于返回空结果。该查询可以包括例如结构化查询语言(SQL)或多维表达(MDX)查询,或者备选地可以遵循任何其它合适的格式或语言。
由于表的部分已经从数据库系统中被删除,因此仅存在访问状态标志可以足以作为没有数据存在并且没有数据需要被扫描的指示符。因此,查询处理可受益(例如,受益于需要较少的资源),因为可以不必打开针对表的该部分空间的文件,并且没有内部元数据(空闲空间映射、索引、页信息等)必须被加载和解译。
根据一个实施例,第一备份副本具有使用第一标识算法确定的第一标识符。该方法进一步包括:在创建步骤a)之后并且在设置步骤c)之后,确定是否创建了具有使用第二标识算法确定的第二标识符的表的部分的第二备份副本,其中假如创建了第二备份副本,则创建具有使用第一标识算法确定的第三标识符的表的部分的第三备份副本。
第三备份副本变为表的部分的最后备份副本,并且因此,下面描述的针对第一备份副本(即,作为最后的备份副本)的方法适用于第三备份副本。
该实施例可以是有利的,因为通过防止使用不同的标识算法用于存档数据的备份副本,可以加强本方法的安全性方面。
根据一个实施例,该方法进一步包括使用访问状态标志以用于防止修改表的部分。这可以是有利的,因为没有新记录可以被插入到表的部分中,其将不会反映在存档数据中。
根据一个实施例,该方法进一步包括如下步骤:在删除步骤f)之前复位访问状态标志;并且在删除步骤f)之后重置访问状态标志。
根据一个实施例,该方法进一步包括:在删除步骤f)之后:
-确定表的部分在创建步骤a)之后没有被除删除步骤f)之外的操作修改;
-确定第一备份副本是表的部分的最后备份副本,并且成功地结束该方法。
例如,可以存在除本公开的删除步骤f)操作外的可以修改表的部分的其它操作。确定是否表的部分没有被修改的步骤可以通过检验是否表的部分被这样的其它操作修改来执行。
根据一个实施例,该方法进一步包括:在重置访问状态标志之后:
-确定表的部分在创建步骤a)之后没有被除删除步骤f)之外的操作修改;
-确定第一备份副本是表的部分的最后备份副本,并且成功地结束该方法。
这可以提供一致性检查方法,而不必比较备份数据与存档数据。
根据一个实施例,该方法进一步包括:在重置访问状态标志之后:
-确定表的部分在创建步骤a)之后没有被除删除步骤f)之外的操作修改;
-响应于确定存在表的部分的第二较后的备份副本而确定第一备份副本无效;
-复位访问状态标志;
-使用第一备份副本来恢复表的部分;以及
-重新运行步骤a)至f),从而创建新的备份副本。
由于访问状态标志可以用于保护存储在数据库系统中的最后创建的备份副本;该实施例可以防止,除根据本发明创建(例如使用第一标识算法)的备份副本外的其它备份副本(例如使用其它标识算法的第二备份副本)受到访问状态标志的保护。仅保护最后的备份副本可以是有利的,因为这可以允许删除旧的备份副本,并且因此节省存储资源。
根据一个实施例,该方法进一步包括:在重置访问状态标志之后:
-响应于确定表的部分在创建步骤a)之后被除删除步骤f)之外的操作修改,而使用关联于表的部分的统计数据来确定对表的部分的修改;
-复位访问状态标志;
-使用第一备份副本恢复表的部分;
-将所确定的修改应用到表的部分,并且针对修改的表的部分重新运行步骤a)至f)。
例如,假如在设置了访问状态标志的情况下删除步骤f是不可能的。那么可以执行,在步骤f)之前要求对其复位。同时可以发生数据修改。这将在上述实施例的范围内被检测和处理。
根据一个实施例,该方法进一步包括:在删除步骤f)之后:
-确定表的部分在创建步骤a)之后没有被除删除步骤f)之外的操作修改;
-响应于确定存在表的部分的第二较后的备份副本,而确定第一备份副本无效;
-使用第一备份副本恢复表的部分;以及
-重新运行步骤a)至f),从而创建新的备份副本。
根据一个实施例,该方法进一步包括:在删除步骤f)之后:
-响应于确定表的部分在创建步骤a)之后被除删除步骤f)之外的操作修改,而使用关联于表的部分的统计数据来确定对表的部分的修改;
-使用第一备份副本来恢复表的部分;
-将所确定的修改应用到表的部分,并且针对修改的表的部分重新运行步骤a)至f)。
根据一个实施例,由数据库系统的删除模块执行删除。该方法进一步包括控制删除模块以删除表的部分,而不管是否设置了访问状态标志。
该实施例可以被无缝地集成在现有系统中,因为对于忽略访问状态标志来说,其可以具有很少或没有技术限制。这是因为,不需要撤销访问状态标志,并且因此不需要检查是否表的部分被修改或者第一备份副本被无效。
根据一个实施例,由数据库系统的备份模块执行第一备份副本的创建,该方法进一步包括控制备份模块以包括步骤a、b和c作为原子操作。这可以是有利的,因为其可以防止修改表的部分以及防止采用新的备份副本,这可能以其它方式发生在设置访问状态标志之前。
根据一个实施例,该方法进一步包括接收恢复表的部分的请求;复位访问状态标志;以及使用第一备份副本恢复表的部分。
根据一个实施例,该方法进一步包括接收指示对表的部分的入侵企图的数据;使用访问状态标志以防止访问第一备份副本和存档数据。对表的部分的入侵可以例如是未授权的根级访问的获得和所产生的信息窃取。禁止访问表的部分可以仅关心尝试入侵企图的入侵者(例如,在阻挡入侵者访问的同时,其它授权用户可以访问表的部分)。该方法可以进一步包括将访问错误消息发送给入侵者。该实施例可以是有利的,因为其通过提供用户相关的访问状态标志,可以加强本方法的安全方面。
在另一方面中,本发明涉及一种计算机程序产品,其包括计算机可执行指令以执行任一前述实施例的方法的方法步骤。
在另一方面中,本发明涉及一种用于存档驻留在数据库系统中的表的预定义部分的数据库系统,该数据库系统包括:
-备份模块,可操作用于
创建表的部分的第一备份副本;
向表的部分指配访问状态标志;
设置访问状态标志;
使用访问状态标志以防止修改表的部分的现有备份副本并且防止对表的部分的进一步的备份操作;
-存档模块,可操作用于将表的部分存档到分离的系统;
-删除模块,可操作用于从数据库系统中删除表的部分的内容并且将访问状态标志保留在数据库系统中。
如本文中使用的‘计算机可读存储介质’包含可以存储可由计算设备的处理器执行的指令的任何有形存储介质。计算机可读存储介质可以被称为计算机可读非瞬态存储介质。计算机可读存储介质还可以被称为有形计算机可读介质。在一些实施例中,计算机可读存储介质还可以能够存储其能够由计算设备的处理器访问的数据。计算机可读存储介质的示例包括——但不限于:软盘、磁性硬盘驱动器、固态硬盘、闪速存储器、USB拇指驱动器、随机存取存储器(RAM)、只读存储器(ROM)、光盘、磁光盘以及处理器的寄存器堆。光盘的示例包括紧凑盘(CD)和数字通用盘(DVD),例如CD-ROM、CD-RW、CD-R、DVD-ROM、DVD-RW或DVD-R盘。术语计算机可读存储介质还指有能力经由网络或通信链路由计算机设备访问的各种类型的记录介质。例如,通过调制解调器、因特网或局域网可以检索数据。体现在计算机可读介质上的计算机可执行代码可以使用任何适当的介质来传输,该任何适当的介质包括——但不限于——无线、有线、光纤电缆、RF等或者前述的任何合适的组合。
计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可执行代码。这种传播的信号可以采用多种形式之一,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
‘计算机存储器’或‘存储器’是计算机可读存储介质的示例。计算机存储器是处理器可直接访问的任何存储器。‘计算机存储’或‘存储’是计算机可读存储介质的又一示例。计算机存储是任意的非易失性计算机可读存储介质。在一些实施例中,计算机存储也可以是计算机存储器,或反之亦然。
如本文中使用的‘处理器’包含电子部件,其能够执行程序或机器可执行指令或计算机可执行代码。关于包括“处理器”的计算设备应当被解释为可能含有不止一个处理器或处理核。处理器可以例如是多核处理器。处理器还可以指在单个计算机系统内或者分布在多个计算机系统之间的处理器的集合。术语计算设备也应当被解释为可能指各自包括处理器或多个处理器的计算设备的集合或网络。计算机可执行代码可以由多个处理器来执行,该多个处理器可以在相同的计算设备内或者甚至可以跨多个计算设备分布。
计算机可执行代码可以包括机器可执行指令或者使得处理器执行本发明的方面的程序。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的方面的操作的计算机可执行代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,并且被编译成机器可执行指令。在一些实例中,计算机可执行代码可以是高级语言的形式或预编译的形式,并且可以结合即时生成机器可执行指令的解译器使用。
计算机可执行代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述本发明的方面。应当理解,流程图、图示和/或框图的每个方框或者一部分方框可以由计算机可执行代码形式的计算机程序指令实现(在适用时)。进一步要理解的是,在不相互排斥时,在不同流程图、图示和/或框图中的方框的组合可以被组合。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令还可以被加载到计算机、其它可编程数据处理装置或其它设备上以使得一系列操作步骤在计算机、其它可编程装置或其它设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
所属技术领域的技术人员知道,本发明的各个方面可以实现为装置、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面可以采用实现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可执行代码。
要理解,一个或多个上述实施例可以被组合,只要组合的实施例不相互排斥即可。
附图说明
在以下内容中,将仅通过示例的方式参照附图,来更详细地描述本发明的优选实施例,其中:
图1图示了可操作以执行用于存档数据的方法的数据库系统;
图2是根据本公开的用于存档数据的示例性方法的流程图;
图3是根据本公开的用于存档数据的另一示例性方法的流程图;以及
图4是根据本公开的用于存档数据的又一示例性方法的流程图。
具体实施方式
在以下内容中,附图同样编号的元件指定类似的元件或指定执行等效功能的元件。如果功能是等效的,先前已经讨论的元件将没有必要在后面的附图中讨论。
本公开解决存档数据以及关联的备份副本可能不被保护例如防止数据丢失的数据存档方法的缺点。例如,如果基于某些准则(例如存档特定分区)存档数据,则数据库系统可以不执行并保证没有满足表(例如分区)的部分的准则的新记录被添加——或现有记录以使得它们现在满足准则这样的方式改变。而且,备份映像可能不被保护,因为例如如果它们达到一定的阈值(例如,天数),它们可能会被定期且自动删除。
引入表空间/分区状态并且将其整合在受影响的数据库操作中可以防止新数据被插入到表的存档分区中,可以防止创建新的备份映像并且可以防止清除最近的n个备份映像。
图1描绘了用于数据存档过程的示例性数据库系统100。例如,数据库系统100可以是包括IBM DB2数据库系统的的zEnterprise系统的一部分。
数据库系统100提供了计算机系统101。计算机系统101的部件可以包括——但不限于——一个或多个处理器或处理单元103、存储系统111、存储器系统105以及将包括存储器系统105的各种系统部件耦合到处理器103的总线107。存储器系统105可以包括诸如随机存取存储器(RAM)和/或高速缓冲存储器之类的易失性存储器形式的计算机系统可读介质。
计算机系统101通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统101访问的任何可用介质,并且其包括易失性和非易失性介质两者、可移除和不可移除介质两者。
计算机系统101还可以与诸如键盘、指向设备、显示器113等之类的一个或多个外部设备进行通信;与使得用户能够与计算机系统101进行交互的一个或多个设备进行通信;和/或与使得计算机系统101能够与一个或多个其它计算设备进行通信的任何设备(例如网卡、调制解调器等)进行通信。这样的通信可以经由I/O接口115发生。另外,计算机系统101可以经由网络适配器109与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如因特网)之类的一个或多个网络进行通信。如描绘的,网络适配器109经由总线107与计算机系统101的其它部件进行通信。
计算机系统101可以充当连接到数据库基础结构125的数据库管理服务器系统。计算机系统101可以包括和实现数据库管理系统。数据库基础结构125包括源数据库127。数据库基础结构125可以例如包括高速缓存139。高速缓存139的内容可以提供了解源数据库127的哪些数据库对象被频繁使用并且最近被使用过。例如,这可以帮助决定哪些数据要被存档。数据库系统100进一步包括目标数据库135。备选地,数据库135可以是数据库系统100的外部和/或独立资源(在这种情况下,数据库系统100可以连接到目标数据库135)。目标数据库135适于存储存档数据。目标数据库135可以是加速器服务器系统(未示出)的一部分。例如,加速器服务器系统可以由IBM Netezza系统实现,其与IBM DB2集成以用于z/OS并且用作IBM DB2分析加速器(IDAA)。在用至少只读方式访问存档数据时,加速器服务器系统可以提供优异的查询性能。可以例如经由SQL直接查询存储在目标数据库135中的数据。
源数据库127可以是计算机系统101的内部资源,而目标数据库135可以是计算机系统101的外部和/或独立资源。
存储器系统105被配置用于存储在处理器103上可执行的应用。例如,存储器系统105可以包括操作系统以及应用程序。例如,应用程序包括备份模块129、存档模块131和删除模块133。
备份模块129使用存储设备111作为备份存储设备。存储设备111可以是计算机系统101的内部或外部资源,或两者的组合。备份模块129可以使用任何数目的本地和/或外部存储设备以用于存储备份数据。
存档模块131可以使用例如高速缓存139的内容,以确定哪些存储在源数据库127中的数据可以被存档在目标数据库135中。存档模块131可以将所述数据存档在目标数据库135中。
删除模块133可以从源数据库127中删除过时的和/或不频繁使用的数据。
备份、存档和删除模块可以是所实现的数据库管理系统的一部分。
将参照图2至图4详细描述数据库系统100的操作。
图2是根据本公开的用于存档数据的示例性方法的流程图。图2将源数据库127示出为包含数据表201。数据表201可以包括例如其可以用于数据库系统100上的后续操作的操作数据。数据表201包括部分203A。
为了描述简单起见,仅描述了一个简单的表和该表的单个部分;然而,本领域技术人员将容易理解,本方法可推广到不止一个表和每个表的不止一个部分。
表的部分203A可以包括过时的数据和/或不频繁使用的数据。表的部分203A可以由数据库系统100的用户来定义,该用户希望将表的部分203A存档到目标数据库135中。为此,计算机系统101可以例如经由I/O接口115从用户接收对表的部分203A的选择。备选地,通过使用例如访问(由单个或多个用户)表的部分203A的频率和/或表的部分203A的最后修改日期,计算机系统101可自动选择表的部分203A。例如,如果访问表的部分203A的频率低于预定义阈值,则计算机系统101可以做出对表的部分203A存档的决定。
在步骤211中,备份模块129可以创建表的部分203A的第一备份副本203B。第一备份副本203B可以被存储在存储设备111中。存储设备111可以包括具有不同性能特性的多个存储层。性能特性可以是例如I/O响应时间和/或I/O吞吐量和/或它们的组合。基于存储层的性能特性,存储层可以被分级或分类。例如,第一级存储层可以具有最低的I/O响应时间。在第一时间段(例如,在创建第一备份副本203B之后的一周)期间,第一备份副本203B可以被存储在第一级存储层中。在跟随第一时间段之后的第二时间段期间,第一备份副本203B可以被存储在第二级存储层中。这可以是有利的,因为第一备份副本203B可能在第一时间段期间比在第二时间段中被更频繁地使用,并且因此,在第一时间段期间可能需要更好性能的存储层。备选地,可以用较慢的硬盘存储来实现存储设备111。这可以是有利的,因为它可以提供可用的较便宜的存储设备,特别是在访问第一备份副本203B的频率小的时候。备份模块129可以包括标识算法,其中该标识算法可以向第一备份副本203B指配第一标识符。该第一标识符可以包括第一备份副本203B的唯一名称和/或创建第一备份副本203B的时间戳。可以对第一备份副本203B进行时间戳标记,以指定其被存储在存储设备111中的时间顺序。
在步骤213中,可以向表的部分203A指配访问状态标志。访问状态标志可以被存储在源数据库127中。例如,根据本公开,这可以通过将元数据添加到存储访问状态标志的表205来完成。元数据可以指示表的部分203A以及关联的访问状态标志的状态。例如,访问状态标志可以是例如布尔(boolean)标志的二进制标志,并且访问状态标志的状态可以是真状态或假状态。备选地,访问状态标志可以包括多个比特。每个比特可以被指配到访问状态标志的状态。例如,设置多个比特的第一比特(例如,设置为值1)可以防止修改表的部分203A的现有备份副本,并且用于防止对表的部分203A的进一步的备份操作。设置多个比特的第二比特(例如,设置为值1)可以防止修改表的部分203A。
其它的数据库标志可以用于控制对表的部分的访问(平行于访问状态标志)。那些其它标志可以是“只允许实用(utility)操作”、“只读”、“需要的实用操作”、“推荐的实用操作”标志。在这种情况下,可以由访问状态标志保护第一备份副本203B,同时使用其它数据库标志和访问状态标志保护表的部分203A。
访问状态标志可以被集成在使用表的部分203A的受影响的数据库操作中。例如,假如计算机系统101正在实施SQL数据库管理系统,INSERT、UPDATE或MERGE SQL语句可以被配置用于在访问表的部分203A时考虑访问状态标志。
在另一示例中,假如计算机系统101正在实施DB2数据库管理系统,对源数据库127中的表的部分203A的物理表示进行操作的像REORG、COPY、RUNSTATS和RESTORE那样的各种实用功能可以被配置用于考虑访问状态标志。例如,RUNSTATS可以在作为只读数据的表的部分203A上工作,并且在设置了访问状态标志时,收集统计信息。在访问表的部分203A时,REORG可能会失败,因为在设置了访问设置标志时并且在访问状态标志用于防止修改表的部分203A时,可能不允许改变表的部分203A。同样地,将新数据加载到表的部分203A中可能会失败。
在步骤215中,例如通过在表205中将布尔状态设置为“真”(或者将第一比特设置为1),可以对访问状态标志进行设置。在设置为“真”时,备份模块129可以使用访问状态标志的状态,以用于防止修改表的部分203A的现有备份副本并且防止对表的部分203A的进一步的备份操作。
例如,备份模块129可以被配置用于执行步骤211至215作为原子操作。
在步骤215之后,备份模块129可以确定(或检查)是否在设置访问状态标志之前创建了具有第二标识符(即,具有最近的时间戳)的表的部分203A的第二备份副本。使用第二标识算法确定第二标识符。并且,假如存在第二备份副本,则创建表的部分的第三备份副本并且向创建的第三备份副本指配第三标识符。可以使用第一标识算法来确定第三标识符。第一标识算法可以是全局唯一标识符(GUID)算法。第一标识算法可以使用预定义的命名方案,以用于标识第一备份副本203B。例如,第一标识算法可以使用包含创建第一备份副本203B的时间戳和只用于存档数据的唯一前缀的名称来标识第一备份副本203B。所述预定义的命名方案可以用于标识第三备份副本。这可以防止其可以与第一备份副本不同的第二备份副本的无意使用(例如,通过使用不同标识算法)。
在步骤217中,存档模块131可以将表的部分203A存档到目标数据库135中,从而产生表的部分203A的存档副本203C。
将数据集插入到存档副本203C中的任何企图都可能会失败,在该情况下具有相应错误消息。然而,计算机系统101仍然可以查询存档副本203C,使得例如表扫描不会失败。
在步骤219中,删除模块133可以删除表的部分203A的内容,而保留访问状态标志。例如,假如访问状态标志还用于防止修改表的部分203A(即,在设置了访问状态标志时,禁止修改表的部分203A),删除模块133可以删除表的部分203A而不管是否设置了访问状态标志(即,在存档过程期间,删除模块可以被配置为忽略访问状态标志的状态)。
如果设置了访问状态标志,则对表的部分203A的新备份的请求可以被忽略或失败,在该情况下存在错误。这是因为,具有现在存档的数据(203C)的第一备份副本203B仍然存在且有效,即它保持数据以用于恢复的目的。新的备份将是空的,并且因此将是无用的。
在删除步骤219之后,确定表的部分203A在创建步骤211之后没有被除删除步骤f)之外的操作修改,并且如果第一备份副本203B仍然有效,则该方法成功地结束。有效备份副本可以是未损坏的备份副本,它是为表的部分203A创建的最后的备份副本。
与防止创建新的备份映像同样重要的是要求保留包含存档数据的备份映像。基于一些准则,数据库系统可以管理所有的备份映像并且例如隐式地或显式地删除旧的备份映像。对此负责的算法可以被配置为考虑访问状态标志。如果发现该访问状态标志,则可以不删除最后的备份映像(或者最后的“n”个备份映像)。
图3是用于存档表的部分203A的示例性方法的流程图。在该示例性方法中,访问状态标志也用于防止修改表的部分203A。
在步骤301中,执行步骤211至217。在步骤303中,在步骤305中执行的删除步骤219之前,复位访问状态标志(例如通过在表205中将访问状态标志状态切换到“假”或者将第一比特的值设置为0)。在步骤307中,重置访问状态标志。
在步骤309中,确定是否表的部分203A在步骤211之后被除删除步骤f)之外的操作修改。这可以通过使用例如历史数据来完成(例如,通过使用运行记录),以确定是否在被删除之前,新数据已被插入到表的部分中或者已经更新了表的部分的内容,或者由除删除步骤f)外的另一操作做出对表的部分的内容的删除,例如可能发生在本公开的删除步骤f)之前的通过另一应用进行的删除操作。该修改可以在复位访问状态标志时发生。
假如在步骤211之后表的部分被除删除步骤f)之外的操作修改,则在步骤311中确定对表的部分203A的修改。这可以例如使用与表的部分203A关联的统计数据来完成。在DB2的情况下,可以使用实时统计(RTS)获得统计数据。
在步骤313中,复位访问状态标志,以便于在步骤315中恢复表的部分。在步骤317中,所确定的修改被应用到表的部分。对修改的表的部分重复这些步骤。
假如在步骤211之后表的部分未被修改,则在步骤319中确定是否存在第二较后的备份副本。如果存在第二备份副本,则在步骤321中复位访问状态标志,使用第一备份副本203B恢复表的部分(步骤323)并且重复方法的步骤以用于创建新的备份副本。如果不存在第二备份副本,该方法成功地结束。
图4是用于存档表的部分203A的示例性方法的流程图。在该示例性方法中,访问状态标志也不被用于防止修改表的部分203A。
在步骤401中,执行步骤211至219。在步骤403中,确定是否表的部分203A在步骤211之后被除删除步骤f)之外的操作修改。
假如表的部分在步骤211之后被除删除步骤f)之外的操作修改了,则在步骤405中确定对表的部分203A的修改。这可以例如使用与表的部分关联的统计数据来完成。
在步骤407中,使用第一备份副本来恢复表的部分。在步骤409中,所确定的修改被应用到恢复的表的部分。对修改的表的部分重复该方法的步骤。
假如表的部分在步骤211之后未被修改,则在步骤411中确定是否存在第二较后的备份副本。如果存在第二备份副本,则在步骤413中使用第一备份副本来恢复表的部分,并且重复方法的步骤以用于创建新的备份副本。如果不存在第二备份副本,则该方法成功地结束。
附图标记列表
100 数据库系统
101 计算机系统
103 处理器
105 存储器
107 总线
109 网络适配器
111 存储系统
113 显示器
115 I/O接口
125 数据库基础结构
127 源数据库
129 备份模块
131 存档模块
133 删除模块
135 目标数据库
139 高速缓存
201、205 表
203A 表的部分
203B 第一备份副本
203C 存档副本

Claims (14)

1.一种用于对驻留在数据库系统(100)中的表(201)的预定义部分(203A)存档的计算机实现的方法,所述方法包括:
a.创建所述表的所述部分(203A)的第一备份副本(203B);
b.向所述表的所述部分(203A)指配访问状态标志;
c.设置所述访问状态标志;
d.使用所述访问状态标志用于防止对所述表的所述部分(203A)的现有备份副本的修改并且用于防止对所述表的所述部分(203A)的进一步的备份操作;
e.将所述表的所述部分(203A)存档到分离的系统(135);
f.从所述数据库系统中删除所述表的所述部分(203A)的内容并且将所述访问状态标志保留在所述数据库系统中。
2.根据权利要求1所述的方法,所述第一备份副本(203B)具有使用第一标识算法确定的第一标识符,所述方法进一步包括在创建步骤a)之后并且在设置步骤c)之后,确定是否创建了具有使用第二标识算法确定的第二标识符的、所述表的所述部分(203A)的第二备份副本,其中假如创建了所述第二备份副本,则创建具有使用所述第一标识算法确定的第三标识符的、所述表的所述部分(203A)的第三备份副本。
3.根据权利要求1所述的方法,进一步包括使用所述访问状态标志来防止对所述表的所述部分(203A)的修改。
4.根据权利要求3所述的方法,进一步包括如下步骤:
-在删除步骤f)之前复位所述访问状态标志;以及
-在删除步骤f)之后重置所述访问状态标志。
5.根据权利要求1所述的方法,进一步包括在删除步骤f)之后:
-确定所述表的所述部分(203A)在创建步骤a)之后没有被除所述删除步骤f)之外的操作修改;
-确定所述第一备份副本(203B)是所述表的所述部分的最后备份副本,并且成功地结束所述方法。
6.根据权利要求4所述的方法,进一步包括在重置所述访问状态标志之后:
-确定所述表的所述部分(203A)在创建步骤a)之后没有被除所述删除步骤f)之外的操作修改;
-响应于确定存在所述表的所述部分(203A)的第二较后的备份副本,确定所述第一备份副本(203B)无效;
-复位所述访问状态标志;
-使用所述第一备份副本恢复所述表的所述部分;以及
-重新运行步骤a)至f),由此创建新的备份副本。
7.根据权利要求4所述的方法,进一步包括在重置所述访问状态标志之后:
-响应于确定所述表的所述部分(203A)在创建步骤a)之后被除所述删除步骤f)之外的操作修改,而使用关联于所述表的所述部分的统计数据来确定对所述表的所述部分(203A)的修改;
-复位所述访问状态标志;
-使用所述第一备份副本恢复所述表的所述部分(203A);
-将所确定的修改应用到所述表的所述部分(203A),并且针对所述表的被修改的部分重新运行步骤a)至f)。
8.根据权利要求4所述的方法,进一步包括在重置所述访问状态标志之后:
-确定所述表的所述部分(203A)在创建步骤a)之后没有被除所述删除步骤f)之外的操作修改;
-确定所述第一备份副本是所述表的所述部分的最后备份副本,并且成功地结束所述方法。
9.根据权利要求1所述的方法,进一步包括在删除步骤f)之后:
-确定所述表的所述部分(203A)在创建步骤a)之后没有被除所述删除步骤f)之外的操作修改;
-响应于确定存在所述表的所述部分(203A)的第二较后的备份副本,而确定所述第一备份副本(203B)无效;
-使用所述第一备份副本来恢复所述表的所述部分;以及
-重新运行步骤a)至f),由此创建新的备份副本。
10.根据权利要求1所述的方法,进一步包括在删除步骤f)之后:
-响应于确定所述表的所述部分(203A)在创建步骤a)之后被除所述删除步骤f)之外的操作修改,而使用关联于所述表的所述部分的统计数据确定对所述表的所述部分的修改;
-使用所述第一备份副本(203B)恢复所述表的所述部分(203A);
-将所确定的修改应用到所述表的所述部分(203A),并且针对所述表的被修改的部分重新运行步骤a)至f)。
11.根据权利要求3所述的方法,其中所述删除由所述数据库系统(100)的删除模块(133)执行,所述方法进一步包括控制所述删除模块(133)以删除所述表的所述部分,而不考虑是否设置了所述访问状态标志。
12.根据权利要求1所述的方法,其中第一备份副本(203B)的所述创建由所述数据库系统的备份模块(129)执行,所述方法进一步包括控制所述备份模块(129)以包括所述步骤a、b和c作为原子操作。
13.根据权利要求3所述的方法,进一步包括:
接收恢复所述表的所述部分(203A)的请求;
复位所述访问状态标志;
使用所述第一备份副本(203B)来恢复所述表的所述部分(203A)。
14.一种用于对驻留在数据库系统中的表的预定义部分(203A)存档的数据库系统(100),所述数据库系统(100)包括:
-备份模块(129),可操作用于
创建所述表的所述部分(203A)的第一备份副本(203B);
向所述表的所述部分指配访问状态标志;
设置所述访问状态标志;
使用所述访问状态标志用于防止对所述表的所述部分的现有备份副本的修改并且用于防止对所述表的所述部分的进一步的备份操作;
-存档模块(131),可操作用于将所述表的所述部分(203A)存档到分离的系统(135);
-删除模块(133),可操作用于从所述数据库系统中删除所述表的所述部分(203A)的内容并且将所述访问状态标志保留在所述数据库系统中。
CN201410645159.9A 2013-11-19 2014-11-12 用于对表的预定义部分存档的方法和系统 Active CN104657672B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1320442.5 2013-11-19
GB1320442.5A GB2520361A (en) 2013-11-19 2013-11-19 Method and system for a safe archiving of data

Publications (2)

Publication Number Publication Date
CN104657672A CN104657672A (zh) 2015-05-27
CN104657672B true CN104657672B (zh) 2018-04-06

Family

ID=49883876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410645159.9A Active CN104657672B (zh) 2013-11-19 2014-11-12 用于对表的预定义部分存档的方法和系统

Country Status (4)

Country Link
US (1) US10013312B2 (zh)
CN (1) CN104657672B (zh)
DE (1) DE102014116393A1 (zh)
GB (1) GB2520361A (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783113B2 (en) * 2015-06-11 2020-09-22 Oracle International Corporation Data retention framework
US10216739B2 (en) 2015-12-29 2019-02-26 International Business Machines Corporation Row-based archiving in database accelerators
US10169595B2 (en) * 2016-05-20 2019-01-01 International Business Machines Corporation Detecting malicious data access in a distributed environment
US10635639B2 (en) * 2016-11-30 2020-04-28 Nutanix, Inc. Managing deduplicated data
CN108874811B (zh) * 2017-05-10 2021-01-26 北京京东尚科信息技术有限公司 一种数据恢复和迁移的方法和装置
CN108470045B (zh) * 2018-03-06 2020-02-18 平安科技(深圳)有限公司 电子装置、数据链式归档的方法及存储介质
US11093493B1 (en) * 2018-09-28 2021-08-17 Amazon Technologies, Inc. Dynamically switching between query and scan for optimizing table reads
US11093477B1 (en) * 2020-03-17 2021-08-17 International Business Machines Corporation Multiple source database system consolidation
CN111506749B (zh) * 2020-04-15 2024-01-02 北京金山云网络技术有限公司 一种监控数据归档方法、装置、电子设备及存储介质
US11294892B2 (en) 2020-06-25 2022-04-05 International Business Machines Corporation Virtual archiving of database records
US11520781B2 (en) 2020-09-17 2022-12-06 International Business Machines Corporation Efficient bulk loading multiple rows or partitions for a single target table

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848090A (zh) * 2005-04-12 2006-10-18 美国博通公司 自动存档数据的方法及系统
CN101076801A (zh) * 2004-12-13 2007-11-21 瑞士银行股份有限公司 数据的存档

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665779B1 (en) * 1998-12-24 2003-12-16 Roxio, Inc. Image backup method for backing up disk partitions of a storage device
GB2367656A (en) * 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
US6772155B1 (en) * 2001-04-04 2004-08-03 Ncr Corporation Looking data in a database system
WO2004025479A2 (en) 2002-09-09 2004-03-25 Sap Aktiengesellschaft Methods and systems for moving data objects using locks
CA2705379C (en) * 2006-12-04 2016-08-30 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US8788457B2 (en) * 2007-09-21 2014-07-22 International Business Machines Corporation Ensuring that the archival data deleted in relational source table is already stored in relational target table
US8452730B2 (en) 2007-12-12 2013-05-28 Teradata Us, Inc. Archiving method and system
US8032493B2 (en) 2008-01-31 2011-10-04 Hewlett-Packard Development Company, L.P. System and method of obtaining interrelated data in a database
US9218347B2 (en) 2009-02-13 2015-12-22 International Business Machines Corporation System and method for archiving to a single database table information located across multiple tables
WO2012008951A1 (en) 2010-07-13 2012-01-19 Hewlett-Packard Development Company, L.P. Methods, apparatus and articles of manufacture to archive data
US9244779B2 (en) * 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US9152683B2 (en) * 2010-10-05 2015-10-06 International Business Machines Corporation Database-transparent near online archiving and retrieval of data
US9335931B2 (en) 2011-07-01 2016-05-10 Futurewei Technologies, Inc. System and method for making snapshots of storage devices
US9002790B2 (en) 2011-09-14 2015-04-07 Google Inc. Hosted storage locking
US8938430B2 (en) 2012-02-22 2015-01-20 International Business Machines Corporation Intelligent data archiving
US8825604B2 (en) * 2012-09-28 2014-09-02 International Business Machines Corporation Archiving data in database management systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076801A (zh) * 2004-12-13 2007-11-21 瑞士银行股份有限公司 数据的存档
CN1848090A (zh) * 2005-04-12 2006-10-18 美国博通公司 自动存档数据的方法及系统

Also Published As

Publication number Publication date
GB2520361A (en) 2015-05-20
US20150142749A1 (en) 2015-05-21
US10013312B2 (en) 2018-07-03
DE102014116393A1 (de) 2015-05-21
GB201320442D0 (en) 2014-01-01
CN104657672A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104657672B (zh) 用于对表的预定义部分存档的方法和系统
CN103902623B (zh) 用于在存储系统上存取文件的方法和系统
US9984006B2 (en) Data storage systems and methods
CN107003935A (zh) 优化数据库去重
US8706710B2 (en) Methods for storing data streams in a distributed environment
US11099771B2 (en) System and method for early removal of tombstone records in database
KR101127304B1 (ko) 극히 큰 파일 시스템에 대한 hsm 상호 고아 조정
US20160321294A1 (en) Distributed, Scalable Key-Value Store
US7856436B2 (en) Dynamic holds of record dispositions during record management
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
US20100306236A1 (en) Data Policy Management System and Method for Managing Data
US10521407B2 (en) Grouping of database objects
WO2018097846A1 (en) Edge store designs for graph databases
CN105426373A (zh) 一种数据库同步方法与设备
CN103514222B (zh) 虚拟机映像的存储方法、管理方法、存储管理装置及系统
CN109189759A (zh) Kv存储系统中的数据读取方法、数据查询方法、装置及设备
KR101575639B1 (ko) 지도 서비스를 위한 타일 이미지 갱신 시스템 및 그 방법
US7725439B2 (en) Handling column renaming as part of schema evolution in a data archiving tool
JP2011133928A (ja) 記憶装置に記憶してある文書ファイルを検索する検索装置、検索システム、検索方法及びコンピュータプログラム
US11966363B2 (en) Systems and methods for scaling beyond maximum number of unique object identifiers in single content repository
US20200249876A1 (en) System and method for data storage management
US11308038B2 (en) Copying container images
US8321480B2 (en) Full-function to high availability large database conversion
US9588995B2 (en) Point in time recovery support for pending schema definition changes
TWI475419B (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
GR01 Patent grant
GR01 Patent grant