Start here:Migrating an ADCD z/OS release to the next release.
It is not very easy to copy VSAM files from one system to another.
Backup
You can backup files, including VSAM files using DFDSS, DUMP DATASET command
//IBMDFDSS JOB 1,MSGCLASS=H
// SET BACKUP=COLIN.BACKUP.CSF
//SDE EXEC PGM=IEFBR14,REGION=0M
//TARGET DD DSN=&BACKUP,DISP=(MOD,DELETE),
// SPACE=(CYL,(1,1))
//S1 EXEC PGM=ADRDSSU,REGION=0M
//TARGET DD DSN=&BACKUP,DISP=(MOD,CATLG),
// SPACE=(CYL,(50,50),RLSE)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DUMP -
DATASET(INCLUDE(CSF.CSFCKDS.NEW, -
CSF.CSFPKDS.NEW, -
CSF.CSFTKDS.NEW ) -
BY(DSCHA,EQ,1)) -
RESET -
OUTDDNAME(TARGET) -
COMPRESS
/*
- If you specify REGION=0M,PARM=’TYPRUN=SCAN’ it will check the syntax of the commands without executing them.
- You can use BY(DSCHA… to do incremental backups – so backup what has changed. It is the data-set-changed flag is on or off.
The DSCHA,EQ,1To perform incremental backups with DFSMSdss, you can filter with
BY(DSCHA,EQ,1) to dump only data sets that have changed since the last dump was taken. If you also code the RESET keyword, DFSMSdss changes the data-set-changed indicator (DSCHA) after successfully dumping the data set. For more information about the RESET keyword
The RESET says if the dump was successful, reset the data-set-changed flag to off.
The output was
ADR101I TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '
ADR109I 2024.002 12:04:53 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED
ADR016I RACF LOGGING OPTION IN EFFECT FOR THIS TASK
ADR006I 2024.002 12:04:53 EXECUTION BEGINS
ADR788I PROCESSING COMPLETED FOR CLUSTER CSF.CSFCKDS.NEW, 1 RECORD(S) PROCESSED, REASON 0
ADR788I PROCESSING COMPLETED FOR CLUSTER CSF.CSFPKDS.NEW, 6 RECORD(S) PROCESSED, REASON 0
ADR788I PROCESSING COMPLETED FOR CLUSTER CSF.CSFTKDS.NEW, 987 RECORD(S) PROCESSED, REASON 0
ADR801I 2024.002 12:04:53 DATA SET FILTERING IS COMPLETE. 3 OF 3 DATA SETS WERE SELECTED:
0 FAILED SERIALIZATION
AND 0 FAILED FOR OTHER REASONS
ADR454I THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED
CLUSTER NAME CSF.CSFCKDS.NEW
CATALOG NAME CATALOG.Z24C.MASTER
COMPONENT NAME CSF.CSFCKDS.NEW.DATA
COMPONENT NAME CSF.CSFCKDS.NEW.INDEX
CLUSTER NAME CSF.CSFPKDS.NEW
CATALOG NAME CATALOG.Z24C.MASTER
COMPONENT NAME CSF.CSFPKDS.NEW.DATA
COMPONENT NAME CSF.CSFPKDS.NEW.INDEX
CLUSTER NAME CSF.CSFTKDS.NEW
CATALOG NAME CATALOG.Z24C.MASTER
COMPONENT NAME CSF.CSFTKDS.NEW.DATA
COMPONENT NAME CSF.CSFTKDS.NEW.INDEX
ADR006I 2024.002 12:04:53 EXECUTION ENDS
ADR013I 2024.002 12:04:53 TASK COMPLETED WITH RETURN CODE 0000
ADR012I 2024.002 12:04:53 DFSMSDSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000
When I reran the job I got
ADR383W DATA SET CSF.CSFCKDS.NEW NOT SELECTED, 01
ADR383W DATA SET CSF.CSFPKDS.NEW NOT SELECTED, 01
ADR383W DATA SET CSF.CSFTKDS.NEW NOT SELECTED, 01
ADR415W NO DATA SETS WERE COPIED, DUMPED, OR RESTORED FROM ANY VOLUME
ADR006I 2024.002 12:28:48 EXECUTION ENDS
ADR013I 2024.002 12:28:48 TASK COMPLETED WITH RETURN CODE 0004
Where ADR383W reason code 1 is
The data set was not selected due to the following reason (reason_code):
01 The fully qualified data set name did not pass the INCLUDE, EXCLUDE, and/or BY filtering criteria.
because the VSAM file had not been changed since the previous backup.
To always backup remove the reset and BY() statement
DUMP -
DATASET(INCLUDE(CSF.CSFCKDS.NEW, -
CSF.CSFPKDS.NEW, -
CSF.CSFTKDS.NEW ) -
) -
OUTDDNAME(TARGET) -
COMPRESS
Restore
The RESTORE command has many parameters
//IBMDFDSS JOB 1,MSGCLASS=H
//S1 EXEC PGM=ADRDSSU,REGION=0M,PARM='TYPRUN=NORUN'
//TARGET DD DSN=COLIN.BACKUP.CSF,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
RESTORE -
RENAME(COLINN) -
DATASET(INCLUDE(**) ) -
INDDNAME(TARGET)
/*
- If you specify TYPRUN=NORUN, it will list what datasets would be restored – to allow you to check. Remove TYPRUN=NORUN to execute and restore the data.
- The RENAME says replace the HLQ with COLINN. This way you do not overwrite any existing data sets.
The output of the job was
ADR489I (001)-TDLOG(02), CLUSTER COLINN.CSFCKDS.NEW WAS SELECTED
CATALOG CATALOG.Z24C.MASTER
COMPONENT COLINN.CSFCKDS.NEW.DATA
COMPONENT COLINN.CSFCKDS.NEW.INDEX
ADR489I (001)-TDLOG(02), CLUSTER COLINN.CSFPKDS.NEW WAS SELECTED
CATALOG CATALOG.Z24C.MASTER
COMPONENT COLINN.CSFPKDS.NEW.DATA
COMPONENT COLINN.CSFPKDS.NEW.INDEX
ADR489I (001)-TDLOG(02), CLUSTER COLINN.CSFTKDS.NEW WAS SELECTED
CATALOG CATALOG.Z24C.MASTER
COMPONENT COLINN.CSFTKDS.NEW.DATA
COMPONENT COLINN.CSFTKDS.NEW.INDEX
ADR040I (001)-TDLOG(01), PROCESSING BYPASSED DUE TO NORUN OPTION
Without TYPRUN=NORUN, the output was like
ADR711I DATA SET CSF.CSFPKDS.NEW HAS BEEN ALLOCATED WITH NEWNAME COLINN.CSFPKDS.NEW
USING STORCLAS SCBASE, NO DATACLAS, AND NO MGMTCLAS
ADR788I PROCESSING COMPLETED FOR CLUSTER CSF.CSFPKDS.NEW, 6 RECORD(S) PROCESSED
When I reran the restore job I got
ADR380E DATA SET CSF.CSFCKDS.NEW NOT PROCESSED, 37
where code 37 means
The new name specified with RENAME or RENAMEUNCONDITIONAL already exists on the volume and the REPLACEUNCONDITIONAL keyword was not specified. The REPLACE keyword cannot be used to replace a data set that is being renamed.
One thought on “Migrating an ADCD z/OS release: VSAM files”