z/OS上Dataset 的移动

最近的一个需求,需要把大批量的Dataset移到新的Storage Class,新的Volume中去,刚开始感觉非常头疼。仔细研究后发现这个事情其实很简单。确实符合别人所说,事情的在你真正开始努力之后就会变简单了。

 

首先创建你的target Storage class和Storage Group,并把相关的Volume加到对于的SG,这时候不需要担心现有的Vol上已经存在的Dataset,改动Storage Group不会删除DataSet。

 

然后配置ACS Routines,将HLQ,SC和SG关联起来,Validate并激活你的ACS。 用命令 /SETSMS SCDS(SMS.ACS) 可以避免在Console上再输入一次yes。

 

最后就可以开始真正Move DataSet了,用ADRDSSU来实现

//IMPRTCON EXEC PGM=ADRDSSU           
//SYSPRINT DD  SYSOUT=*               
//SYSIN    DD  *                      
  COPY  -                             
      DATASET(INCLUDE(RBC9CAT.**,  -  
                      RBC9REG.**, -   
                                ) -   
               )  -                   
      STORCLAS(TPHCRYSC) -            
      BYPASSACS(**)  -                
      DELETE                          

注意第9行写要把这些DataSet 移动到的目标SC,这时候因为SC和SG已经建立了关联关系,所以会自动把DataSet放到目标Volume上。 其实这时候可以先不用建立HLQ和SC的对应关系,因为有BYPASSACS(**),所以这些新的DataSet可以忽略ACS的规则。

 

剩下的时间就是等待时间,这些JOB可能会跑很长时间,因为移动大批量的Dataset还是很费时间的的。所以常见的一个错误是

IEW4000I FETCH FOR MODULE ANTCVXPR FROM DDNAME *VLF*    FAILED BECAUSE INSUFFICIENT STORAGE WAS AVAILABLE. 
CSV031I LIBRARY ACCESS FAILED FOR MODULE ANTCVXPR, RETURN CODE 24, REASON CODE 26080021, DDNAME *LNKLST*  
这个主要问题是REGION的size太小,可以增大REGION或把上面的JCL include的DataSet拆分来让JOB顺利跑完。
posted @ 2014-06-24 13:39  db2zos  阅读(637)  评论(0编辑  收藏  举报