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 資料集中的錯誤。

廣告
© . All rights reserved.