使用DB2 Cloning Tool克隆主机DB2数据库(一)

日期: 2008-07-28 作者:Alizze 来源:TechTarget中国 英文

对DB2数据库进行数据复制的方法多种多样,本文主要介绍了一种使用快速磁盘复制技术(例如,FlashCopy等)对DB2数据进行克隆的方案。通过使用DB2 Cloning Tool,最大程度简化DB2数据库克隆过程中DBA所需进行的操作。使整个流程更加自动化。


数据库管理员(DBA),或者DB2开发测试人员都能够从中获益,了解如何通过DB2 cloning tool快速简便的构建DB2测试环境。为应用程序的开发和测试提供有力的保障。


序言


主机平台上的 DB2 数据库是性能优异,运行稳定,使用广泛的数据库解决方案。随着存储在主机 DB2 数据库中的数据量的不断增加,开发人员在测试新的基于主机 DB2 数据库的应用系统时,经常需要花费大量的精力和时间来搭建一个合格的主机 DB2 测试环境。这个测试 DB2 系统的结构必须和生成 DB2 系统的结构一致,并且测试环境中必须包含有相当的数据量,这样才能确保测试的准确性。


两种数据克隆技术


一般而言,可以通过以下两种方法来将数据导入用于测试的 DB2 系统。


1. 使用UNLOAD工具从生产DB2系统中卸载数据,然后使用LOAD工具装入测试DB2环境。这个方法的优点在于,灵活,操作简单。这个方法的主要问题在于所需的时间较长。


2. 使用 FlashCopy 等磁盘复制技术,通过卷对卷拷贝的方式,对 DB2 子系统进行快速复制。这个方法最大的优势在于,速度快。其次,通过卷对卷的拷贝,我们能够最大程度的保证测试 DB2 和生产 DB2 物理特性(数据在物理磁盘上的分布情况)的一致性。然而这个方法主要的问题在于,


◆DB2使用的都是VSAM数据集,卷对卷拷贝后,可能需要针对VSAM数据集新建VSAM cluster;


◆通常DB2所涉及到的VSAM数据集较多,用户很难把这些VSAM数据集一一改名,因此新生成的 DB2 数据库的名字只能保持和源 DB2 一致。


第二种方法无疑是非常有吸引力的,但是它的缺点也十分的棘手。针对这种情况,IBM DB2 Cloning Tool应运而生。它能够帮助用户借助 FlashCopy 等快速磁盘复制技术的威力,方便,快捷的克隆出所需的DB2数据库。


DB2 Cloning Tool的典型使用场景


◆快速克隆生产系统DB2,使得用户能够并发的运行生产流程;


◆建立和生产系统完全等同的QA(Quality assurance)测试环境,使得性能测试的结果更有针对性;


◆在升级到DB2新版本之前,创建完整的子系统环境(克隆),用于在生产系统升级到新版本前测试新系统的升级和应用;


◆创建数据仓库,使用户能在不影响生产系统的情况下进行数据挖掘。


DB2 Cloning Tool的使用环境


图 1. DB2 Cloning Tool的使用环境


DB2 Cloning Tool的使用环境
  说明:


1. 源系统和目标系统可以是同一个 MVS 系统。此时DB2 Cloning Tool可以帮助用户修改目标卷的卷标,自动将其online后,修改目标卷上数据集的名称。


2. DB2 Cloning Tool 支持多种快速磁盘复制技术和磁盘镜像技术,包括IBM FlashCopy,IBM PPRC,EMC TimeFinder/Snap,EMC TimeFinder/Mirror等等。


DB2 Cloning Tool 客户化


要使用DB2 Cloning Tool,必须在源环境和目标环境分别通过SMP/E 安装 DB2 Cloning Tool 相关的程序库。并根据要求对其进行相应的客户化。下面是详细的客户化步骤:


生成 DB2 Cloning Tool 的运行参数 CKZINI:


通过运行作业DB2CT.V1R1.SCKZJCL(CKZIMRG)创建一个新的参数成员——SCKZINI。


清单1. DB2CT.V1R1.SCKZJCL 代码


CKZINIMG JOB ,’INIMERGE’,CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID


********************************************************************


* COPYRIGHT 2001 – 2006 MAINSTAR SOFTWARE CORPORATION *


* ALL RIGHTS RESERVED *


********************************************************************


* MERGE THE NEW INI (CKZINI#) WITH THE EXISTING ONE (CKZINI)


MERGE &#101xec PGM=CKZ01MER


STEPLIB DD DISP=SHR,DSN=DB2CT.V1R1.SCKZLOAD


INI DD DISP=SHR,


DSN=DB2CT.V1R1.SCKZPARM(CKZINI#)


MSCINI DD DISP=SHR,


DSN=DB2CT.V1R1.SCKZPARM(CKZINI#)


update DD DISP=SHR,


DSN=DB2CT.V1R1.SCKZPARM(CKZINI)


SYSPRINT DD SYSOUT=*


SYSUDUMP DD SYSOUT=*


ABNLIGNR DD DUMMY DO NOT REMOVE IF USING ABENDAID


根据需要修改CKZINI参数:


建议新用户使用默认CKZINI参数。如果多个系统间通过CAMIM/MII共享DASD, 那么需要设置以下的参数。


清单 2. 多个系统间通过CAMIM/MII共享DASD需要设置的参数


:RESOURCE_SERIALIZATION


MIM_GDIF = YES


更新DB2CT.V1R1.SCKZJCL中的作业:


根据当前系统中DB2 Cloning Tool的HLQ和DB2的 SDSNLOAD数据集修改该作业库中的 JCL。


将DB2 Cloning Tool的LOAD LIB:DB2CT.V1R1.SCKZLOAD添加到系统的APF中:


确保运行DB2 Cloning Tool的用户拥有足够的RACF权限:


◆执行COPY和rename命令,需要拥有源和目标user catalog的alter权限;


◆执行DB2update命令,需要拥有对目标数据集的update权限;


◆执行COPY 命令,需要使用ADRDSSU ADMIN参数的权限;


◆通过保护DB2 Cloning Tool的日志文件,可以避免未授权的用户使用COPYCHECK命令。


使用DB2 Cloning Tool克隆DB2子系统


在实际使用DB2 Cloning Tool之前,我们需要对MVS系统以及 DB2 子系统做一些准备工作。针对MVS 系统环境的准备工作,主要是确保 MVS 系统可以顺利调用相应的磁盘复制技术(例如,FlashCopy,SnapShot 等)。需要注意的是,使用磁盘复制技术时必须将COPYVILID参数设置为YES。以确保源卷上的 VVDS 会完整的复制到目标卷上,并保持一致的命名;否则会造成DB2 Cloning Tool在做 rename 操作时出现错误。


关于DB2环境的准备工作


源DB2子系统


1. DATA SET分布


为了保证克隆过程的正确和完整,源卷上必须包括所有源DB2子系统的direcory,catalog,active log,BSDS以及与所有用户数据库相关的 DATA SET。在克隆的过程中DB2的SDSNLOAD和SDSNEXIT 这两个添加到APF中的DATA SET不要放在源卷上一并复制。与源DB2子系统有关的USER CATALOG可以放置在源卷上,也可以放置在其他目标环境能够访问的卷上。


2. 绑定与DB2克隆工具相关的Plan和Package


在源DB2子系统中bind相关的plan之后,在对目标DB2子系统进行操作的过程中就可以直接使用相应的DB2 Cloning Tool的工具去修改目标DB2子系统的信息,而不需要每次都重新bind。可参考JCL:DB2CT.V1R1.SCKZJCL(CKZDBIND)代码示例。


清单 3. DB2CT.V1R1.SCKZJCL(CKZDBIND)代码


DSN SYSTEM(DSN)


BIND PLAN(CKZPLAN)


PKLIST(CKZPACK.*)


ENCODING(EBCDIC)


DYNAMICRULES(RUN)


ACTION(REPLACE)


RETAIN


END


DSN SYSTEM(DSN)


BIND PACKAGE(CKZPACK)


MEMBER(CKZ00246)


VALIDATE(RUN)


RELEASE(COMMIT)


ENCODING(EBCDIC)


ISOLATION(CS)


DYNAMICRULES(RUN)


ACTION(REPLACE)


END


目标DB2子系统


1. 编译有效的ZPARM和DSNHDECP参数


提交DB2安装作业DSNTIJUZ,为目标系统DB2子系统定义正常启动和运作所需的ZPARM参数和 DSNHDECP 参数。


2. 准备目标DB2子系统启动时需要的STC proc


为了正常启动目标DB2子系统,需要预先在对应的PROCLIB里面定义好相关的启动STC proc。


3. 定义目标DB2子系统和对应的IRLM的子系统


为了正常启动目标DB2子系统,需要预先在对应的IEFSSNxx 里面定义好DB2和IRLM启动时需要使用的子系统借口(SSI)。


4. 为目标DB2子系统编译一个特殊的ZPARM—DSNZSPEC


由于在克隆的过程中,我们需要修改目的DB2子系统的VCAT和STOGROUP,因此必须预先定义相应的 ZPARM。参考如下的步骤:


◆新建特殊的DSN6SPRC,将SDSNMACS(DSN6SPRC)复制到DB2CT.V1R1.SDSNMACS(DSN6SPRC)。


◆修改DB2CT.V1R1.SDSNMACS(DSN6SPRC)参数,将&SPRMCTU SETC ‘0’改成 &SPRMCTU SETC ‘1’。


◆创建编译ZPARM的作业,将DSNTIJUZ复制到DB2CT.V1R1.SCKZJCL(DSNZSPEC),只保留 DSNZSPEC 里面编译ZPARM的部分。


◆修改新建的ZPARM作业:


·在DSNZSPEC里面修改DSN6SPRM为DEFER, ALL;


·修改DSN6SPRM里面的SYSADM和SYSADM2参数为以后运行DB2 Clone Tool的用户ID;


·把DB2CT.V1R1.SDSNMACS(DSN6SPRC) 放在SYSLIB Dd 链接的最前面;指定生成的ZPARM参数module 名字为ZPRMSPEC,并编译该ZPARM到SDSNEXIT库里面去。


根据复制过程中源DB2子系统的状态,我们可以将DB2 Cloning Tool克隆DB2数据库的方式分为DB2 offline克隆和DB2 online克隆两种。DB2 offline克隆的过程相对简单,但需要停止源DB2子系统。而采用DB2 online克隆的方式,源DB2子系统就无需进行停机和重启的操作,提高了源DB2子系统的可用性。同时,这也会使克隆过程变得略微复杂。


DB2 offline克隆


步骤 1:在源MVS系统停止源DB2子系统


清单 4. 在源MVS系统停止源DB2子系统命令


DB2STOP


DB2-SSID(DSN)


步骤 2:在源MVS系统中使用磁盘复制技术对磁盘卷进行复制


步骤 3:在源MVS系统执行COPY命令


COPY命令会对和源卷有关的USER CATALOG进行备份,并对本来offline状态的目标卷进行relabel 后重新online。


清单5. 在源MVS系统执行COPY命令


COPY


DATA-MOVER(


PGM(NONE)


)


VOLPAIRSDEVN(


M1DB17 P1D280 7600,


M1DB24 P1D28B 760B,


M1DB18 P1D281 7601,


M1DB21 P1D285 7605,


M1DB23 P1D283 7603,


M1DB33 P1D287 7607,


M1DB34 P1D288 7608,


M1DB35 P1D289 7609,


M1DB36 P1D28A 760A


)


USERCATALOGS(


CATU.DM10.CATALOG(M1DB17) CATU.DM30.CATALOG ,


CATU.DM10.SYSTEMA1(M1DB17) CATU.DM30.SYSTEMA1,


CATU.DM10.SYSTEMB1(M1DB17) CATU.DM30.SYSTEMB1,


CATU.SYSTEM.DB2 CATU.SYSTEM.DB2


CATWORK-DSN(DB2CT.V1R1.WRK.* )


JOURNAL-DDN(JOURNAL)


步骤4:在源MVS系统启动源DB2子系统,之后源DB2子系统可正常使用


使用DB2START命令启动源DB2子系统运行。


清单6.在源MVS系统启动源DB2子系统命令


DB2START


DB2-SSID(DSN)


NORMAL


步骤 5:在目标MVS系统执行rename命令


rename命令能够将目标卷上的DATA SET进行改名并重设CATALOG。


清单7.在目标MVS系统执行rename命令


rename


SAFE


VOLBKUP-DDN(VOLBKUP)


MAX-TASKS(5)


JOURNAL-DDN(JOURNAL)


RECATALOG(Y)


NOTrenameD(delete,RC(0))


STORCLAS-PAIRS(


SCSTAND,SCSTAND


)


rename-MASKS(


DSNDM10.** DSNDM30.**


DSNDM10A.DM11.** DSNDM30A.DM31.**


DSNDM10B.DM11.** DSNDM30B.DM31.**


CLODBTST.** TARDBTST.**


)


步骤 6:在目标MVS系统执行DB2update命令


使用DB2update命令对目标DB2子系统的directory和BSDS进行更新。


清单8. 在目标MVS系统执行DB2update命令


DB2update


DB2-HLQS(DSNDM10,DSNDM30


DSNDM10A,DSNDM30A


DSNDM10B,DSNDM30B


CLODBTST,TARDBTST)


STOGROUPS(CLODBSTG,TARDBSTG)


DB2-GROUP(DM10,DM30)


DB2-MEMBERS(DM11,DM31)


DB2-XCFCLEAN(Y)


JOURNAL-DDN(JOURNAL)

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Alizze
Alizze

相关推荐

  • BMC公司z/OS DB2数据库性能工具 不只是便捷

    BMC公司z/OS DB2数据库性能工具可以用来监控和管理多套DB2系统的关键性能特征,只需要在一套平台上就可以完成监控工作。

  • 数据库产品巡礼:IBM DB2概览

    IBM DB2关系型数据库管理系统提供了支持多平台系统的关键技术,它具备较高的可用性和良好的性能。

  • 如何进行分布式大数据应用调优

    分布式环境通常是与数据库服务器相分离的。而DBA的工作就是监视这些环境并配置和优化数据库服务器以满足多种需求。大数据的出现加剧了DBA的问题。

  • IBM DB2将迎来30岁“生日”

    再过几天,主流数据库产品DB2就将迎来它30岁的“生日”。作为关系型数据库技术的标志性产品,DB2在过去的30年中也在伴随用户需求的变化不断地发展。