改进的数据集复制的制作方法

文档序号:6397143阅读:198来源:国知局
专利名称:改进的数据集复制的制作方法
技术领域
本文所公开的主题涉及用于拷贝(copy)数据集的改进操作。
背景技术
许多存储系统现在都提供了被广泛称为逻辑拷贝操作的操作。逻辑拷贝操作旨在提供快速的数据复制(replication)。例如,IBM提供了名为闪速拷贝(FlashCopy)的逻辑拷贝操作,该逻辑拷贝操作通常与IBM的虚拟存储存取法(VSAM)的存储系统一起使用。逻辑拷贝操作是用于通过将存储于源位置的数据(该数据是正被复制的数据)与目标位置(该位置将成为数据的拷贝)关联起来而创建数据的逻辑拷贝的过程。逻辑拷贝操作可以首先用逻辑操作建立起源位置和目标位置之间的关系;例如,逻辑拷贝操作可以建立起一系列的指针,以便使在源位置的数据与在目标位置的对应数据关联起来。然后可以将数据从源位置物理复制到目标位置,作为后台操作。逻辑拷贝操作通常发生于存储装置硬件自身上,主操作系统没有参与。结果,数据以及数据在数据集中的组织在逻辑拷贝操作期间不能够改变。如果必须改变,则不能选择逻辑拷贝操作,而由主操作系统使用利用传统的输入/输出(I/o)的标准拷贝操作来执行拷贝操作。其中数据集或其组织改变的一种情形能够导致随VSAM系统内的属性的变化而出现的问题。所支持的控制间隔(Cl)和控制面积(CA)的大小可以随时间改变。当复制具有过时的Cl或CA大小的数据集时,FlashCopy并不可用,因为目标数据集(数据将被复制到该数据集内)将必须被分配以新的、支持的Cl和CA大小。主操作系统需要以Cl来重排记录,以使其匹配新的Cl大小和/或CA大小。结果,当管理员安装新版本的VSAM时,先前运行数分钟的工作和操作在第一次运行时能够花费数小时。原因是通常符合FlashCopy的条件的源数据集现在必须使用慢很多的标准的I/O操作来复制。这能够致使系统错过服务水平协议(SLA)、备份窗口和其他截止期限。

发明内容
本发明公开了一种用于改进过时数据集的复制的方法。下面的概述是出于方便起见,而并非是对权利要求的限定。本发明可以被实现为存储于计算机可读的存储介质上的计算机程序产品,用于复制源数据集。计算机程序产品可以包括用于确定具有第一属性的源数据集到具有第二属性的目标数据集的逻辑拷贝操作被第一属性和第二属性之间的差异阻止的指令。第一属性中的一个或多个可以是过时的属性,而第二属性可以是支持的属性。计算机程序产品还可以被配置用于分配具有第一属性的中间数据集以及用于对源数据集执行到中间数据集的逻辑拷贝操作。计算机程序产品还可以被配置用于对中间数据集执行到目标数据集的标准拷贝操作,该标准拷贝操作将中间数据集内的数据格式化成具有目标数据集内的第二属性。
分配中间数据集可以包括设置用于允许分配具有过时属性的中间数据集的强制指示符。计算机程序产品还可以被配置,以便响应于对源数据集到中间数据集的逻辑拷贝操作的完成而释放对源数据集的锁定。计算机程序产品可以响应于对中间数据集到目标数据集的标准拷贝操作的完成而删除中间数据集。确定逻辑拷贝操作由在第一属性和第二属性之间的差异所阻止可以包括监控由对于执行对源数据集到目标数据集的逻辑拷贝操作的请求的拒绝产生的事件。例如,在VSAM系统中,事件可以是ADR737W错误消息。本发明可以按照各种形式来实现。本发明可以被实现为计算机程序产品、系统、方法或其他形式。在本说明书的全文中对特征、优点或类似语言的引用并非暗示着所有特征和优点都可以实现于任何单一实施例中。相反,提及特征和优点的语言应当被理解为意指:在至少一个实施例中包含有具体的特征、优点或特性。因而,关于特征和优点的讨论及类似的语言在本说明书的全文中可以(但不一定)指的是同一实施例。而且,所描述的实施例的特征、优点和特性可以按照适合的方式组合起来。本领域技术人员应当意识到,实施例可以在没有特定实施例的具体特征或优点中的一个或多个的情况下实施。在其他情况下,可能不存在于所有实施例中的另外的特征和优点可以在某些实施例中识别出。根据以下描述和所附权利要求,实施例的这些特征和优点将变得更充分地表现出,或者可以根据下文所阐明的实施例的实施而认识到。


为了使本发明的实施例的优点变得容易理解,关于以上所简要描述的实施例的更具体的描述将参照在附图中示出的具体实施例来给出。应当理解,这些附图仅示出了某些实施例,并且因此不应被看作是对范围的限定,实施例将通过使用附图以另外的详情和细节来描述和说明,在附图中:图1是示出包括主设备、数据集复制模块和存储装置的系统的一个实施例的说明性框图。图2是示出包括主设备、数据集复制模块和存储装置的系统的一个实施例的说明性框图,其中中间数据集被分配于存储装置上。图3是示出从源数据集到目标数据集拷贝数据的方法的一个实施例的说明性框图。图4是示出数据集复制模块的一个实施例的说明性框图。图5是示出复制数据集的方法的一个实施例的说明性的流程图。
具体实施例方式本领域技术人员应当理解,本发明的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采用以下形式:完全硬件的实施例、完全软件的实施例(包括固件、常驻软件、微代码等)或者组合了软件和硬件方面的实施例,该软件和硬件方面在此可以全部统称为“电路”、“模块”或“系统”。而且,本发明的各个方面可以采用实现于一个或多个计算机可读的介质内的计算机程序产品的形式,该一个或多个计算机可读的介质具有实现于其上的计算机可读的程序代码。在本说明书中描述的许多功能单元都被标记为模块,以便更特别地强调它们的实现方式的独立性。例如,模块可以被实现为包括定制的VLSI电路或门阵列、现货供应的半导体(例如,逻辑芯片、晶体管或其他分立构件)的硬件电路。模块还可以被实现为可编程的硬件装置(例如,现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等)的微代码、固件
坐寸ο模块还可以在由各种类型的处理器执行的软件中实现。例如,计算机可读的程序代码的识别模块可以包括计算机指令的一个或多个物理块或逻辑块,该一个或多个物理块或逻辑块可以被组织为例如对象、程序或函数。然而,识别模块的可执行文件的物理位置不需要在一起,而是可以包括存储于不同位置的不同指令,这些指令当在逻辑上连接于一起时构成模块并且实现该模块所称的目的。实际上,计算机可读的程序代码的模块可以是单一指令或者许多指令,并且甚至可以分布于几个不同的代码段之上,于不同的程序当中,以及在几个存储装置之间。类似地,操作数据在此可以被识别并被示出于模块之内,并且可以按照任意合适的形式来实现并组织于任意适合类型的数据结构之内。操作数据可以被收集为单一数据集,或者可以分布于不同的位置之上,包括在不同的存储装置之上,并且可以仅作为电子信号至少部分地存在于系统或网络上。在模块或者模块的某些部分以软件来实现的情况下,计算机可读的程序代码可以被存储和/或被传播于一个或多个计算机可读的介质内。计算机可读的介质可以是实体的计算机可读的存储介质,用于存储计算机可读的程序代码。计算机可读的存储介质可以是,例如,但不限于,电子的、磁的、光的、电磁的、红外线的、全息的、微机电的或半导体的系统、设备或装置,或者它们的任意适合的组合。计算机可读的介质可以是非临时性的。计算机可读的介质的更具体的实例可以包括,但不限于,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(⑶-ROM)、数字通用光盘(DVD)、蓝光光盘(BD)、光存储装置、磁存储装置、全息存储介质、微机电存储装置或者它们的任意适合的组合。在本文献的上下文中,计算机可读的存储介质可以是能够含有和/或存储由指令执行系统、设备或装置使用和/或与其组合起来使用的计算机可读的程序代码的任意实体介质。计算机可读的介质还可以是计算机可读的信号介质。计算机可读的信号介质可以包括所传播的数据信号,在该数据信号内实现有计算机可读的程序代码,例如,在基带内或者作为载波的一部分。该传播信号可以采用多种形式中的任一种,包括,但不限于,电的、电磁的、磁的、光的或者它们的任意适合的组合。计算机可读的信号介质可以是任何计算机可读介质,该介质不是计算机可读的存储介质,并且能够传递、传播或传输由指令执行系统、设备或装置使用或者与其组合起来使用的计算机可读的程序代码。实现于计算机可读的信号介质上的计算机可读的程序代码可以使用任意适合的介质来传输,包括(但不限于)无线、有线、光纤电缆、射频(RF)等,或者它们的任意适合的组合。在一个实施例中,计算机可读的介质可以包括一种或多种计算机可读的存储介质与一种或多种计算机可读的信号介质的组合。例如,计算机可读的程序代码既可以作为电磁信号通过光纤电缆来传播,以便由处理器执行,也可以存储于RAM存储装置上,以便由处理器执行。用于针对本发明的各个方面来实现操作的计算机可读的程序代码可以用一种或多种编程语目的任意组合来编写,包括面向对象的编程语目(例如,Java、Smalltalk、C++等)和常规的过程式编程语言(例如,“C”编程语言或者类似的编程语言)。计算机可读的程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上和部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任意类型的网络与用户的计算机连接,包括局域网(LAN)或广域网(WAN),或者该连接可以与外部计算机连接(例如,通过使用互联网服务提供商的互联网)。在本说明书的全文中对“一个实施例”、“实施例”或类似语言的引用意指:在至少一个实施例中包含组合实施例所描述的特定的特征、结构或特性。因而,短语“在一个实施例中”、“在实施例中”以及类似的语言在本说明书的全文中的出现可以,但不一定,全都指的是同一实施例,而是意指“一个或多个但并非全部实施例”,除非另有明确说明。用语“包括”、“包含”、“具有”以及它们的变型意指“包括但不限于”,除非另有明确说明。枚举列示的项并非暗示着任何或所有项都是相互排斥的,除非另有明确说明。用语“一”、“一个”和“该”同样指的是“一个或多个”,除非另有明确说明。而且,所描述的实施例的特征、结构或特性可以按照适合的方式组合起来。在下面的描述中,提供了众多具体的细节,例如,编程实例、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等,以便提供对实施例的全面理解。但是,本领域技术人员应当意识到,实施例可以在没有具体细节中的一个或多个的情况下,或者以其他方法、构件、材料等来实施。在其他情况下,众所周知的结构、材料或操作将不会示出或者详细描述,以免使实施例的各方面变得晦涩难懂。实施例的各个方面在下面参照根据本发明的实施例的方法、装置、系统和计算机程序产品的示意性的流程图和/或示意性框图描述。应当理解,示意性的流程图和/或示意性框图的每个块,以及在示意性的流程图和/或示意性框图中的块的组合,能够通过计算机可读的程序代码来实现。这些计算机可读的程序代码可以被提供给通用计算机、专用计算机、定序器或者其他可编程的数据处理装置的处理器,以便生产机器,使得经由计算机的处理器或者其他可编程的数据处理装置执行的指令产生用于实现在示意性的流程图和/或示意性框图的一个或多个块内指定的功能/动作的装置。计算机可读的程序代码还可以存储于计算机可读的介质内,该程序代码能够引导计算机、其他可编程的数据处理设备或其他装置按照特定的方式来起作用,使得存储于计算机可读的介质内的指令生产出包含用于实现在示意性的流程图和/或示意性框图的一个或多个块内指定的功能/动作的指令的制品。计算机可读的程序代码还可以被装载到计算机、其他可编程的数据处理设备或其他装置上,促使一系列的操作步骤在计算机、其他可编程的设备或其他装置上执行,以便产生计算机实现的过程,使得在计算机或其他可编程的装置上执行的程序代码提供用于实现在流程图和/或框图的一个或多个块内指定的功能/动作的过程。在图中的示意性的流程图和/或示意性框图示出了根据本发明的各个实施例的装置、系统、方法和计算机程序产品的可能的实现方式的体系结构、功能和操作。在这点上,在示意性的流程图和/或示意性框图内的每个块都可以代表代码模块、代码段或者部分代码,该代码包括用于实现所指定的逻辑功能的程序代码的一个或多个可执行指令。还应当指出,在某些可替换的实现方式中,在块内指出的功能可以按照与图中指出的顺序不同的顺序出现。例如,顺序示出的两个块实际上可以基本上同时执行,或者块有时可以按照相反的顺序来执行,取决于所涉及的功能。其他步骤和方法可以被认为是在功能、逻辑或作用上与所示附图的一个或多个块或其某些部分等效的。尽管在流程图和/或框图中可以使用各种箭头类型和线条类型,但是它们不应被理解为对相应实施例的范围的限定。实际上,某些箭头或其他连接器可以只用来指出所描绘的实施例的逻辑流程。例如,箭头可以指出在所示实施例的所枚举的步骤之间的未指定的持续时间的等待或监控时段。还应当指出,框图和/或流程图的每个块,以及在框图和/或流程图内的块的组合,能够通过用于执行指定的功能或动作的基于专用硬件的系统或者专用硬件和计算机可读的程序代码的组合来实现。图1示出了包括与存储装置110通信的主设备102的系统100的一个实施例。主设备102可以是具有处理器以及与存储装置110进行数据通信的存储器的任意适合的装置。主设备102典型地包括用于在主设备102上所运行的一个或多个应用之间协调资源的使用并且执行通常由操作系统处理的其他功能的操作系统。主设备102可以包括拷贝模块104和数据集复制模块106。拷贝模块104可以被配置用于拷贝存储于存储介质118上的数据。拷贝模块104使用标准拷贝操作来拷贝数据。如同本文所使用的,标准拷贝操作指的是如下的拷贝操作:在该拷贝操作中主设备102和/或其操作系统具有读取要从存储装置110内拷贝出的数据以及要拷贝回来的数据写入存储装置110的责任。在一个典型的实施例中,数据被读入缓冲器,并且然后再次被写出。主设备102可以改变数据的属性,作为标准拷贝操作的一部分。例如,数据可以在其源位置内按照第一格式来组织,而在其目标位置被重新组织成第二格式。存储装置110可以是包括用于提供非易失性数据存储的存储介质118的任意适合的装置。存储装置110可以使用硬盘驱动器、磁带、固态存储器或者其他适合的存储介质118。存储装置110接收来自主设备102的与存储于存储介质118上的数据相关的请求。存储装置110可以响应于读请求从存储介质118中检索出数据,或者响应于写请求将数据写入存储介质118内。存储装置110还可以支持其他操作。在某些实施例中,存储装置110包括用于在存储装置110上执行逻辑拷贝操作的逻辑拷贝模块112。如同本文所使用的,逻辑拷贝操作指的是基本上即时的拷贝操作,该拷贝操作在存储装置110上发生,没有主设备102参与移动数据,并且创建了在源数据和目标数据之间的逻辑关系。逻辑拷贝操作的一个实例是IBM的FlashCopy操作。如上所述,逻辑拷贝操作由存储装置110来执行,没有主设备102的参与。例如,在主设备102上的操作系统可以给逻辑拷贝模块112发送命令,以便将源数据集114拷贝到目标数据集116。逻辑拷贝模块112可以直接执行逻辑拷贝操作,无需主设备102执行I/O来支持它。当逻辑拷贝操作完成时,逻辑拷贝模块112可以向主设备102报告。图1还示出了源数据集114和目标数据集116。在本申请中使用的数据集一般指的是数据的逻辑分组,包括VSAM数据集、文档和其他分组。源数据集114是要复制的数据集;目标数据集116是作为源数据集114的拷贝的数据集,位于分离的位置。源数据集114和目标数据集116每个都具有属性。用语属性一般指的是数据的结构以及不同于数据集内的实际数据的数据集特性。例如,CA和Cl大小就是属性的实例。在某些版本的VSAM中,数据集能够具有嵌入的索引,该嵌入索引是属性的另一实例。在这些实例中,在源数据集114和目标数据集116内的实际数据在拷贝操作完成之后是相同的;但是,该数据的组织可以由于属性的差异而不同。如上所述,主设备102可能需要将源数据集114拷贝到目标数据集116。主设备102可以检查出从源数据集114到目标数据集116的逻辑拷贝操作是否是可行的。如果可行,则主设备102可以给逻辑拷贝模块112发送命令,该逻辑拷贝模块112可以将源数据集114逻辑拷贝到目标数据集116,不需要主设备102 (及其相关的操作系统)参与拷贝操作。在某些实施例中,从源数据集114到目标数据集116的逻辑拷贝操作可能是不可行的。该问题出现的一种情形是在目标数据集116的属性(该属性可以称为第二属性)不同于源数据集114的属性(该属性可以称为第一属性)时。例如,在主设备102上的DSS程序可能需要拷贝源数据集114。在为该拷贝作准备时,DSS程序可以分配要将源数据集114内的数据复制到其内的目标数据集116。目标数据集116使用为在主设备102上运行的那个版本的VSAM所支持的属性来分配。然后,DSS可以请求将源数据集114内的数据复制到目标数据集116。假定源数据集114使用较老版本的VSAM来分配,则源数据集114可能具有不再被支持的过时属性。在第一和第二属性之间的差异阻止了逻辑拷贝操作的发生。结果,DSS可能必须使用拷贝模块104 (而不是逻辑拷贝模块112)来执行标准拷贝操作,该标准拷贝操作使用标准的I/O将源数据集114内的数据拷贝到目标数据集116。标准拷贝操作重新格式化源数据集114内的数据,使得它被复制到具有第二属性的目标数据集116。过时的属性是不再为当前版本的应用所支持的数据集的属性。属性的使用可能导致错误。作为选择,属性的使用可能导致警告。过时的属性可能完全不被支持,或者其使用可能已被弃用。源数据集114的第一属性不必要是过时的属性;第一属性不同于第二属性,并且该差异阻止了在源数据集114和目标数据集116之间发生逻辑拷贝操作。第一属性中的一个或多个为过时属性的情形仅仅是可能妨碍逻辑拷贝操作的常见差异原因中的一个实例。如同以上所讨论的,如果无法使用逻辑拷贝操作将源数据集114拷贝到目标数据集116,则拷贝模块104执行标准拷贝操作。与逻辑拷贝操作相比,标准拷贝操作会耗费长得多的时间。源数据集114在标准拷贝操作正发生时通常是锁定的;结果,对源数据集114的访问会被截止,直到拷贝模块104完成了拷贝操作。使对源数据集114的访问截止会在主设备102上的操作中导致不可接受的延迟。数据集复制模块106可以被配置,以允许源数据集114的快速复制,即使从源数据集114到目标数据集116的逻辑拷贝操作由于它们各自属性的差异而不可行。以此方式,数据集复制模块106可以帮助缓解与必须对源数据集114执行标准拷贝操作相关的问题。在一个实施例中,数据集复制模块106被配置用于确定具有第一属性的源数据集114到目标数据集116的逻辑拷贝操作由在第一属性和第二属性之间的差异所阻止。数据集复制模块106可以响应于该确定的作出而分配具有第一属性的中间数据集,并且对源数据集执行到中间数据集的逻辑拷贝操作。然后,数据集复制模块106可以对中间数据集执行到目标数据集的标准拷贝操作。标准拷贝操作将格式化源数据集114内的数据,以便具有目标数据集116的第二属性。图2示出了包括主设备102和存储装置110的系统200的一个实施例,其中数据集复制模块106提供了源数据集114的快速复制。源数据集114具有第一属性。目标数据集116具有第二属性。在第一属性和第二属性之间至少有一个差异。在第一属性和第二属性之间的差异阻止了逻辑拷贝操作的发生。数据集复制模块106可以被配置用于确定源数据集114和目标数据集116的逻辑拷贝操作由在第一属性和第二属性之间的差异所阻止。如上所述,阻止逻辑拷贝操作发生的差异的一个实例是:第一属性中的一个或多个是过时的属性,而第二属性是当前所支持的属性。在某些实施例中,确定逻辑拷贝操作受到阻止包括监控由对于执行对源数据集114的逻辑拷贝操作的请求的拒绝产生的事件。例如,在VSAM系统中,DSS可以监控使用被拒绝的FlashCopy的尝试。监控可以由拷贝产品(例如,DFSMSdss)在内部进行。监控还可以在拷贝产品的外部进行。例如,数据集复制模块106可以监控消息,例如,指出了源数据集114必须使用工具(例如,拷贝模块104)来复制的ADR737W消息,这与由逻辑拷贝模块112执行的FlashCopy操作相对。数据集复制模块106可以调查事件的返回码,以便确认对逻辑拷贝操作的拒绝是由在第一属性和第二属性之间的差异导致的。然后,数据集复制模块106可以分配具有源数据集114的第一属性的中间数据集204。在某些实施例中,这包括分配具有一个或多个过时属性的中间数据集204。数据集复制模块106可以被配置用于设置允许分配具有过时属性的中间数据集204的强制指示符。在一个实施例中,强制指示符促使软件构件分配中间数据集204,以绕开对过时属性的检查。强制指示符可以促使软件构件使用与第一属性相关的过时代码路径来分配中间数据集204。数据集复制模块106可以被配置用于抑制任何警告或错误,否则该警告或错误可能在数据集被分配为具有过时的属性时,或者在使用过时的代码路径时发生。数据集复制模块106还可以被配置用于对源数据集114执行到中间数据集204的逻辑拷贝操作。例如,数据集复制模块106可以调用逻辑拷贝模块112。因为源数据集114和中间数据集204的属性是相同的,所以很可能会在源数据集114和中间数据集204之间成功地执行逻辑拷贝操作。数据集复制模块106可以响应于对源数据集114到中间数据集204的逻辑拷贝操作的完成而释放对源数据集114的锁定。即使数据还没有被复制到目标数据集114,数据集复制模块106也可以这样做。结果,源数据集114可以很快为在主设备102上发生的其他处理和操作所用。数据集复制模块106还可以被配置,以使用拷贝模块104来对中间数据集204执行到目标数据集116的标准拷贝操作。标准拷贝操作格式化中间数据集204内的数据,以使其具有目标数据集116的第二属性。例如,如果中间数据集204以过时的Cl和CA大小来存储数据,则标准拷贝操作会重新格式化数据,使得数据以当前所支持的Cl和CA大小来存储于目标数据集116内。数据集复制模块106可以响应于标准拷贝操作的完成而删除中间数据集204。图3示出了源数据集114被复制到目标数据集116的过程的一个实施例。如上所述,源数据集114具有第一属性。第一属性中的一些可能是过时的。软件程序可以分配具有第二属性的目标数据集116。目标数据集116可以被分配以当前为软件程序所支持的属性。在第一属性和第二属性之间的差异可以阻止在源数据集114和目标数据集116之间发生逻辑拷贝操作。替代执行在源数据集114和目标数据集116之间的标准拷贝操作,数据集复制模块106可以促使分配具有源数据集114的第一属性的中间数据集204。结果,数据集复制模块106可以分配具有过时属性的中间数据集204。中间数据集204被分配以与源数据集114相同的属性,不管那些属性是否是支持的。然后,数据集复制模块204促使发生用于将源数据集114内的数据复制到中间数据集204的逻辑拷贝操作。当逻辑拷贝操作正在发生时,可以将源数据集114置为锁定,作为正常操作的一部分。当逻辑拷贝操作完成时,数据集复制模块106可以促使释放对源数据集114的锁定。结果,源数据集114可很快地再次为其他操作所用。如上所述,逻辑拷贝操作建立了在源数据集114和中间数据集204之间的逻辑关系。在源数据集114内的实际数据可以被移至中间数据集204,作为后台处理的一部分。对会影响未移动的数据的源数据集114的改变可以促使该数据将被推入中间数据集204。本领域技术人员应当熟悉逻辑拷贝操作(例如,FlashCopy)的操作。当对源数据集114的锁定被释放时,源数据集114变得可用,并且正在等待复制源数据集114的应用能够再次恢复。因为源数据集114使用逻辑拷贝操作来复制到中间数据集204,所以等待时间通常远小于对于标准拷贝操作来说所应当具有的时间。数据集复制模块106可以促使标准拷贝操作以使用标准拷贝操作将中间数据集204拷贝到目标数据集116。数据集复制模块106可以调用拷贝模块104执行在中间数据集204和目标数据集116之间的标准拷贝操作。在启动标准拷贝操作之前,数据集复制模块106可以等待,直到逻辑拷贝操作完成。数据集复制模块106不必等待直到数据被从源数据集114物理移动到中间数据集204 (作为在启动标准拷贝操作之前的逻辑拷贝操作的一部分)。在某些实施例中,当从中间数据集204到目标数据集116的标准拷贝操作完成时,数据集复制模块106就删除中间数据集204。作为标准拷贝操作的结果,目标数据集116能够使用,并且在其内的数据被重新格式化,以具有第二属性。图4示出了数据集复制模块106的一个实施例。在所示出的实施例中,数据集复制模块106包括确定模块410、中间分配模块412、逻辑拷贝执行模块414和标准拷贝执行模块416。数据集复制模块106可以位于主设备102之内。在某些实施例中,数据集复制模块106的构件被分布于一个或多个物理装置(包括存储装置110)上。确定模块410可以被配置用于确定具有过时属性的源数据集114到具有所支持的属性的目标数据集116的逻辑拷贝操作由在过时属性和支持属性之间的差异所阻止。如上所述,确定模块410可以监控指出了在源数据集114和目标数据集116之间不可能进行所请求的逻辑拷贝操作的错误消息和其他事件。中间分配模块412可以被配置用于分配具有过时属性的中间数据集204,该过时属性与源数据集114的过时属性是相同的。中间分配模块412可以响应于确定模块410确定了在源数据集114和目标数据集116之间不可能直接进行逻辑拷贝操作而分配中间数据集204。在分配中间数据集204时,中间分配模块412还可以包括强制指示符。强制指示符可以强制在主设备102 (例如,VSAM)上的适当系统使用一个或多个过时属性来分配中间数据集204,即使该尝试通常会导致错误。数据集复制模块106还可以包括用于执行在源数据集114和中间数据集204之间的逻辑拷贝操作的逻辑拷贝执行模块414。逻辑拷贝执行模块414可以通过调用位于存储装置110上的逻辑拷贝模块112来执行逻辑拷贝操作。逻辑拷贝执行模块414可以给逻辑拷贝模块112提供源数据集114和中间数据集204的位置信息。数据集复制模块106还可以包括标准拷贝执行模块416。标准拷贝执行模块416可以被配置用于对中间数据集204执行到目标数据集116的标准拷贝操作。标准拷贝操作格式化源数据集114内的数据,以使其具有目标数据集116的所支持的属性。标准拷贝执行模块416可以通过例如调用在主设备102上的拷贝模块104来执行标准拷贝操作。图5示出了用于执行改进的数据集复制的方法500的一个实施例。在一个实施例中,方法500从关于在具有第一属性的源数据集114和具有第二属性的目标数据集116之间的逻辑拷贝操作由在第一和第二属性之间的差异所阻止实际上定502开始。作为回应,方法500还可以包括分配504具有源数据集114的第一属性的中间数据集204。方法500还可以包括对源数据集114执行506到中间数据集204的逻辑拷贝操作,以及释放508对源数据集114的锁定。方法500还可以包括对中间数据集204执行510到目标数据集116的标准拷贝操作。标准拷贝操作格式化在中间数据集204内的数据,以使其具有在目标数据集116内的第二属性。方法500还可以包括删除512中间数据集204。实施例可以按照其他具体的形式来实施。所描述的实施例在所有方面都应当仅被看作是说明性的,而非限制性的。因此,本发明的范围由所附的权利要求指出,而不是由前面的描述指出。在权利要求的等同物的含义和范围方面的所有改变都应当包含于它们的范围之内。
权利要求
1.一种系统,包括: 用于执行源数据集到目标数据集的逻辑拷贝操作的逻辑拷贝模块; 数据集复制模块,包括用于执行以下处理的指令: 确定具有第一属性的源数据集到具有第二属性的目标数据集的逻辑拷贝操作被所述第一属性和所述第二属性之间的差异阻止; 分配具有所述第一属性的中间数据集; 对所述源数据集执行到所述中间数据集的逻辑拷贝操作; 对所述中间数据集执行到所述目标数据集的标准拷贝操作,所述标准拷贝操作将所述中间数据集内的数据格式化成具有所述目标数据集内的所述第二属性。
2.根据权利要求1所述的系统,其中所述第一属性中的一个或多个是过时的属性。
3.根据权利要求2所述的系统,其中分配具有所述第一属性的中间数据集还包括:设置允许分配具有过时属性的所述中间数据集的强制指示符。
4.根据权利要求1所述的系统,其中所述第二属性是所支持的属性。
5.根据权利要求1所述的系统,所述数据集复制模块还包括:用于响应于对所述源数据集到所述中间数据集的所述逻辑拷贝操作的完成而释放对所述源数据集的锁定的指令。
6.根据权利要求1所述的系统,所述数据集复制模块还包括:用于响应于对所述中间数据集到所述目标数据集的所述标准拷贝操作的完成而删除所述中间数据集的指令。
7.根据权利要求1所述的系统,其中确定所述逻辑拷贝操作被阻止还包括:监控由对于执行所述源数据集的所述逻辑拷贝操作的请求的拒绝所产生的事件。
8.根据权利要求7所述的系统,其中所述事件是ADR737W错误消息。
9.一种方法,包括: 确定具有第一属性的源数据集到具有第二属性的目标数据集的逻辑拷贝操作被所述第一属性和所述第二属性之间的差异阻止; 分配具有所述第一属性的中间数据集; 对所述源数据集执行到所述中间数据集的逻辑拷贝操作; 对所述中间数据集执行到所述目标数据集的标准拷贝操作,所述标准拷贝操作将所述中间数据集内的数据格式化成具有所述目标数据集内的所述第二属性。
10.根据权利要求9所述的计算机程序产品,其中所述第一属性中的一个或多个是过时的属性。
11.根据权利要求10所述的计算机程序产品,其中分配具有所述第一属性的所述中间数据集还包括:设置允许分配具有过时属性的所述中间数据集的强制指示符。
12.根据权利要求9所述的计算机程序产品,其中所述第二属性是所支持的属性。
13.根据权利要求9所述的方法,还包括:响应于对所述源数据集到所述中间数据集的所述逻辑拷贝操作的完成而释放对所述源数据集的锁定。
14.根据权利要求9所述的方法,还包括:响应于对所述中间数据集到所述目标数据集的所述标准拷贝操作的完成而删除所述中间数据集。
15.根据权利要求9所述的方法,其中确定所述逻辑拷贝操作被阻止还包括:监控由对于执行所述源数据集的所述逻辑拷贝操作的请求的拒绝所产生的事件。
16.根据权利要求15所述的系统,其中所述事件是ADR737W错误消息。
17.一种装置,包括: 确定模块,用于确定具有过时属性的源数据集到具有所支持的属性的目标数据集的逻辑拷贝操作被所述过时属性和所述支持属性之间的差异阻止; 中间分配模块,用于分配具有与所述源数据集的所述过时属性相同的过时属性的中间数据集; 逻辑拷贝执行模块,用于对所述源数据集执行到所述中间数据集的所述逻辑拷贝操作; 标准拷贝执行模块,用于对所述中间数据集执行到所述目标数据集的标准拷贝操作,所述标准拷贝操作将所述中间数据集内的数据格式化成具有所述目标数据集内的所支持的属 性。
全文摘要
本公开涉及改进的数据集复制。公开了一种允许复制具有不同属性的数据集的方法。从源数据集到目标数据集的逻辑拷贝操作可能由于在它们各自的属性之间的差异而不可行。源数据集可以具有防止到具有所支持的属性的目标数据集的逻辑拷贝的过时的属性。所给出的解决方案可以包括分配属性与源数据集相同的中间数据集。中间数据集可以被分配以与源数据集相同的过时的属性。该方法还可以包括执行从源数据集到中间数据集的逻辑拷贝操作。用于重新格式化数据的标准拷贝操作可以对中间数据集到目标数据集来执行。
文档编号G06F3/06GK103186353SQ201310000520
公开日2013年7月3日 申请日期2013年1月4日 优先权日2012年1月3日
发明者K·B·达吉恩, D·C·里德, E·里奥斯, M·D·史密斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1