工作中,时常需要对一些VSAM文件进行DELETE, DEFINE的操作。但对于一些重要的文件,为了保险起见,一定要在在DELETE, DEFINE之前做好备份。下面就是一些基本的三步走:
//*Create bakup file using MODEL
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CL(NAME(TOUGH.TEST.B01.RATE.BAK) -
MODEL(TOUGH.TEST.B01.RATE))
//*Bakup file
//STEP02 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//IN1 DD DSN=TOUGH.TEST.B01.RATE,DISP=SHR
//OUT1 DD DSN=TOUGH.TEST.B01.RATE.BAK,DISP=SHR
//SYSIN DD *
REPRO INFILE(IN1) OUTFILE(OUT1) REPLACE
//*Delete-Define
//STEP03 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
DELETE (TOUGH.TEST.B01.RATE) CL PURGE
IF MAXCC=8 THEN SET MAXCC=0
DEFINE CLUSTER -
(NAME(TOUGH.TEST.B01.RATE) -
LOG(UNDO)
SHR(2 3))
DATA(TOUGH.TEST.B01.RATE.DATA)
CYL(10 30)
FREESPACE(0 0)
KEY(7 0)
RECORDSIZE(200 1000)
CONTROLINTERVALSIZE(1024))
INDEX(TOUGH.TEST.B01.RATE.INDEX))
//
RECORDSIZE:指定记录的平均和最大长度。
FREESPACE:指示预留自由空间的大小。
CONTROLINTERVALSIZE:指定CI的大小。此参数必须大于记录的最大大小。
KEYS:指示KSDS中键的长度和位置。
TRACKS|CYLINDERS:指示分配该数据集的空间的单位及 大小。
BUFFERSPACE:指示在处理该数据集时,应分配的最小的缓冲。
SPANNED:指示记录是否可以跨CI。不适用于RRDS和LDS。
IMBED:指示是否将索引的顺序集放在相应的CA中。如果是,则会提高数据集的性能, 但会增加空间对索引组件的
VOLUMES:指示是否把索引组件放在另一个卷上。
AUTHORIZATION:指定你自己的一个授权子程序,验证对此数据集的访问是否合法。
WRITECHECK:指示对此数据集写后是否要检查,以保证以后能读出。
ERASE:指示数据集被删除后,是否要彻底删除。
SHAREOPTIONS (1,x)时,系统允许一个用户对VSAM数据集进行读写操作,或者允许多个用户进行读操作。如果有一个用户已经进行读写操作了,那么后面申请读操作的用户会得到失败的反馈。
SHAREOPTIONS (2,x)时,系统允许一个用户进行读写,同时允许多个用户进行读操作。当已经有一个用户正在写入时,允许其他用户读入VSAM数据集,但是不允许其他人进行写了。
SHAREOPTIONS (3,x)时,系统允许多个用户同时进行读写操作。
LOG(UNDO) This specifies that changes to the sphere accessed in DFSMStvs mode can be backed out using an external log. DFSMStvs considers the sphere recoverable.