- 学习 VSAM 教程
- VSAM - 首页
- VSAM - 概述
- VSAM - 组件
- VSAM - 集群
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM 命令
- VSAM - 备选索引
- VSAM - 目录
- VSAM - 文件状态
- VSAM - 面试问题
- VSAM 有用资源
- VSAM - 快速指南
- VSAM - 有用资源
- VSAM - 讨论
VSAM 命令
VSAM 命令用于对 VSAM 数据集执行某些操作。以下是最有用的 VSAM 命令:
- ALTER(更改)
- REPRO(复制)
- LISTCAT(列出目录)
- EXAMINE(检查)
- VERIFY(验证)
ALTER(更改)
ALTER 命令用于修改 VSAM 文件属性。我们可以更改在 VSAM 集群定义中提到的 VSAM 文件的属性。以下是更改属性的语法:
ALTER file-cluster-name [password] [ADDVOLUMES(volume-serial)] [BUFFERSPACE(size)] [EMPTY / NOEMPTY] [ERASE / NOERASE] [FREESPACE(CI-percentage CA-percentage)] [KEYS(length offset)] [NEWNAME(new-name)] [RECORDSIZE(average maximum)] [REMOVEVOLUMES(volume-serial)] [SCRATCH / NOSCRATCH] [TO(date) / FOR(days)] [UPGRADE / NOUPGRADE] [CATALOG(catalog-name [password]]
上述语法显示了我们可以在现有 VSAM 集群中更改哪些参数。参数描述与 VSAM - 集群模块中提到的相同。
示例
以下示例演示如何使用 ALTER 命令来增加空闲空间、添加更多卷和更改键:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * ALTER MY.VSAM.KSDSFILE [ADDVOLUMES(2)] [FREESPACE(6 6)] [KEYS(10 2)] /*
如果您在大型机服务器上执行上述 JCL,它应该以 MAXCC = 0 执行,并且它将更改空闲空间、卷和键。
REPRO(复制)
REPRO 命令用于将数据加载到 VSAM 数据集中。它还用于将数据从一个 VSAM 数据集复制到另一个数据集。我们可以使用此命令将数据从顺序文件复制到 VSAM 文件。IDCAMS 实用程序使用 REPRO 命令加载数据集。
REPRO INFILE(in-ddname) OUTFILE(out-ddname)
在上述语法中,in-ddname 是包含记录的输入数据集的 DD 名。out-ddname 是输出数据集的 DD 名,输入数据集的记录将被复制到该输出数据集。
示例
以下示例显示如何将记录从一个数据集复制到另一个 VSAM 数据集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //IN DD DSN = MY.VSAM.KSDSFILE,DISP = SHR //OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR //SYSPRINT DD SYSOUT = * //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /*
如果您在大型机服务器上执行上述 JCL,它应该以 MAXCC = 0 执行,并且它将把所有记录从 MY.VSAM.KSDSFILE 复制到 MY.VSAM1.KSDSFILE VSAM 文件。
LISTCAT(列出目录)
LISTCAT 命令用于获取 VSAM 数据集的目录详细信息。Listcat 命令提供有关 VSAM 数据集的以下信息:
- SMS 信息
- RLS 信息
- 卷信息
- 区域信息
- 分配信息
- 数据集属性
LISTCAT ENTRY(vsam-file-name) ALL
在上述语法中,vsam-file-name 是我们需要所有信息的 VSAM 数据集名称。指定 ALL 关键字以获取所有目录详细信息。
示例
以下示例显示如何使用 Listcat 命令获取 VSAM 数据集的所有详细信息:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * LISTCAT ENTRY(MY.VSAM.KSDSFILE) ALL /*
如果您在大型机服务器上执行上述 JCL,它应该以 MAXCC = 0 执行,并且它将显示有关 MY.VSAM.KSDSFILE 数据集的所有目录详细信息。
EXAMINE(检查)
EXAMINE 命令用于检查键顺序数据集集群的结构完整性。它检查索引和数据组件,如果发现任何问题,则会将错误消息发送到输出。您可以检查任何 IDCxxxxx 消息。
EXAMINE NAME(vsam-ksds-name) - INDEXTEST DATATEST - ERRORLIMIT(50)
在上述语法中,vsam-ksds-name 是我们需要检查索引和数据部分的 VSAM 数据集名称。
示例
以下示例显示如何检查 KSDS 数据集的索引和数据部分是否同步:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * EXAMINE NAME(MY.VSAM.KSDSFILE) - INDEXTEST DATATEST - ERRORLIMIT(50) /*
如果您在大型机服务器上执行上述 JCL,它应该以 MAXCC = 0 执行,并且它将显示输出中 IDCxxxxx 消息中 VSAM 数据集的所有问题。
VERIFY(验证)
VERIFY 命令用于检查和修复在错误后未正确关闭的 VSAM 文件。该命令将正确的文件结束记录添加到文件中。
VERIFY DS(vsam-file-name)
在上述语法中,vsam-file-name 是我们需要检查错误的 VSAM 数据集名称。
示例
以下示例显示如何检查和修复 VSAM 数据集中的错误:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * VERIFY DS(MY.VSAM.KSDSFILE) /*
如果您在大型机服务器上执行上述 JCL,它应该以 MAXCC = 0 执行,并且它将修复 VSAM 数据集中的错误。