數(shù)據(jù)集的創(chuàng)建:
數(shù)據(jù)集的創(chuàng)建有兩種情況:1分區(qū)數(shù)據(jù)集的創(chuàng)建,2連續(xù)數(shù)據(jù)集的創(chuàng)建。
分區(qū)數(shù)據(jù)集的創(chuàng)建步驟如下:在ISPF主菜單下選擇3-Utilitis,然后是2-Data Set,在面板最上面就會看到有8種操作可以進行,在選項區(qū)域輸入字母 A,但是不要按 ENTER 鍵,然后在數(shù)據(jù)集名字區(qū)域中輸入新數(shù)據(jù)集的名字,但是同樣也不要按ENTER 鍵。名字可以用單引號引起來(例如,’yourid.LIB.SOURCE’)或不用引號引起來(LIB.SOURCE)以便TSO/ISPF 能夠自動的把當前的 TSO用戶ID 作為HLQ 使用。然后在卷序號區(qū)域輸入 WORK02,按ENTER鍵。 完成指定的參數(shù)設置并且按 ENTER。
– Space Units = TRKS (這是一個為后面數(shù)據(jù)設置的單位,意為磁道)
– Primary quantity = 10 (為數(shù)據(jù)集分配 10 個磁道的主空間)
– Secondary quantity = 5 (5個磁道的追加空間)
– Directory blocks = 10 (10個目錄空間足夠了)
– Record format = FB (數(shù)據(jù)集的記錄格式是 FB)
– Record length = 80 (邏輯記錄的長度是 80 字節(jié))
– Block size = 0 (this tells z/OS to select an optimum value) (在Record format為FB的情況下,這個區(qū)域如果要自定義的話一定要是上一個參數(shù)Record length的整數(shù)倍,至于原因,可以從上一篇文章中找)
– Data set type = PDS (PDS代表分區(qū)數(shù)據(jù)集,HFS代表分級文件系統(tǒng),是Z/OS UNIX文件系統(tǒng),LIBRARY表示庫,BLANK表示什么不知道)
系統(tǒng)執(zhí)行創(chuàng)建數(shù)據(jù)集的操作完畢以后,在屏幕的右上的角落,可以看到成功或者失敗的 消息。
順序數(shù)據(jù)集的創(chuàng)建與分區(qū)數(shù)據(jù)集的創(chuàng)建的不同之處在于填寫參數(shù)的時候要在Directory blocks 項填0,因為順序數(shù)據(jù)集中根本不需要目錄,分配空間又要何用。然后還要把Data set type 保持為空,即BLANK,這樣子創(chuàng)建出來的一個DATA SET就是一個順序數(shù)據(jù)集。同樣你會在右上角看到創(chuàng)建成功與否的提示信息。
數(shù)據(jù)集的列表總覽:
我剛才學會了創(chuàng)建數(shù)據(jù)集,那么我如何去看我們的數(shù)據(jù)集在哪呢?其實我已經(jīng)知道它就在創(chuàng)建數(shù)據(jù)集時指定的那個VOLUME中,但是,我還是想看一看VOLUME下倒底有哪些數(shù)據(jù)數(shù)據(jù)集呢?原來可以在ISPF下使用3.4即Dlist選項,在其中的Dsname level右邊填上你的用戶名,或者就是你的HLQ,然后回車,就可以得到一個數(shù)據(jù)集的列表,或者你不填寫Dsname level,而是填寫了下面那個Volume serial,那么得到的就是這個卷中的所有的數(shù)據(jù)集的列表,如下面這個圖所示:
在這個界面中,用PF10和PF11左右翻動可以顯示更多的信息,這種情況并不是真正的滾動;只有當使用PF11或 PF10 時才能獲得額外的信息。 第一個 PF11 顯示的內(nèi)容包括磁道、使用百分比、分區(qū)和設備類型。分區(qū)值是用于獲得顯示磁道總數(shù)的分區(qū)數(shù)量。ISPF 實用程序可以看到數(shù)據(jù)集實際使用的空間的大小,且如果可能的話,它還可以作為一個百分比來顯示。第二個 PF11 顯示的內(nèi)容包括 DCB 特性:數(shù)據(jù)集組織形式(DSORG)、數(shù)據(jù)集記錄格式(RECFM)、邏輯記錄長度(LRECL)和組塊的長度(BLKSIZE)。PS 代表順序數(shù)據(jù)集,PO 代表分區(qū)數(shù)據(jù)集,VS 代表 VSAM 數(shù)據(jù)集,BLANK 代表未知組織或者不存在數(shù)據(jù)集。
RECFM、LRECL 和 BLKSIZE 應該是比較熟悉的。在某些情況下,若沒有使用一個標準的訪問方法或沒有寫入數(shù)據(jù)時,這些參數(shù)是不能確定的。VSAM 數(shù)據(jù)集沒有這些參數(shù)的直接數(shù)值,通常是以問號來表示。
在這個界面下按F1可以查看到可以對數(shù)據(jù)集進行的一些操作的命令,如S ,E ,B等等,這時在某一個要編輯的數(shù)據(jù)集左側(cè),對應于上方藍色的Command列下面輸入命令,然后回車就可以執(zhí)行命令了。比如用E,就馬上進入該數(shù)據(jù)集的編輯狀態(tài)。
數(shù)據(jù)集的編輯:
如果是一個連續(xù)數(shù)據(jù)集,我們可以直接在ISPF主菜單的2選項EDIT里面,輸入數(shù)據(jù)集名稱,直接進行編輯狀態(tài),在編輯環(huán)境下,有兩種命令格式,一種是主命令,就是在Command那一行輸入來使用的命令,它們常見的有:
AUTOSAVE ON/OFF,打開關閉自動保存
AUTONUM ON/OFF,自動重新編號行號(SAVE后生效)
CANCLE:取消所做的編輯并退出編輯環(huán)境
CAPS ON/OFF:退出編輯環(huán)境后系統(tǒng)自動將所有字母轉(zhuǎn)換為大寫/小寫
CHANGE(RCHANGE):替換字符,RCHANGE表示重復上次的替換。格式:CHANGE ** ** [ALL]
FIND(RFIND):查找字符串
RECOVERY ON/OFF:設置編輯方式,ON表示用戶可以通過UNDO命令取消上一次編輯操作
RESET:重置編輯器,清除不需要的信息
SAVE:保存當前修改,并繼續(xù)編輯
SORT:對文檔行按字典順序排序
SUBMIT:提交作業(yè);若作業(yè)是一段JCL程序,則通過該命令可以提交作業(yè)程序
UNDO:取消上一次編輯(僅當在RECOVERY ON編輯方式下)
s(setup)+member:創(chuàng)建新成員(PDS)
CUT:復制當前內(nèi)容(配合CC和MM來使用)
PASTE:粘貼當前內(nèi)容(配合CUT來用 很常用)
COPY+member-name:復制同一DATASET下MEMBER內(nèi)容(配合AB使用)
HEX ON/OFF,打開關閉十六進制編碼形式;
HI+XXX:高亮顯示某種語言(JCL COBOL REXX等等)
MEMBER+member-name:查詢當前所有DATASET下該member是否存在(非常實用)
PROFILE:列出當前編輯環(huán)境的所有的editor profile
HEX ON/OFF:打開關閉十六進制編碼形式
AUTOSAVE ON/OFF:打開關閉自動保存
AUTONUM ON/OFF:自動重新編號行號(SAVE后生效)
PROFILE, 列出當前編輯環(huán)境的所有的editor profile
PROFILE UNLOCK/LOCK:可以修改ISPF的editor profile
PACK ON/OFF:是否將該MEMBER保存成PACK格式(一種主機上標準的壓縮格式)
TABS ON/OFF:編輯的時候是否允許用TAB鍵跳格
如果是編輯REXX,COBOL,JCL等,可以用 HI REXX, HI COBOL, HI JCL,讓語言的關鍵字高亮顯示。這個對閱讀程序幫助很大
命令 COPY member1 就會把 member1 的內(nèi)容拷貝到當前的文件中。
命令 CUT 可以把當前文件的內(nèi)容拷貝到剪貼板中,然后到你要你要粘入的文件,使用PASTE 命令 拷貝到該文件。
CTRL+HOME顯示隱藏十字光標(十字光標是干什么滴?)
另一種命令是行命令,是輸入在文本行中的左側(cè)EDIT下面列來使用的命令,常見的行命令如下:
C、CC、Cxx:拷貝命令。與其他行命令(A、B)或主命令 結(jié)合使用 C 拷貝當前行,CC拷貝多行,用兩個CC來定位,Cxx拷貝多行,XX表示行數(shù)
I、IXX:插入命令。執(zhí)行一次插入命令后,可直接按回車(ctrl)換行
D、DD、Dxx:刪除
R、RR、Rxx:復制
O:覆蓋當前內(nèi)容(結(jié)合C和R來用)
A:定位于當前行之前
B:定位于當前行之后
X、XX、Xxx:隱藏
S、Sxx:顯示隱藏的內(nèi)容
COLS:屏幕的刻度標尺
UC、UCxx:轉(zhuǎn)換成大寫
LC、LCxx:轉(zhuǎn)換成小寫
(, (xx:將當前行左移一列或xx列(或者<)
), )xx :將當前行右移一列或xx列(或者>)
TS:將一行文本切分為兩行
TF:將多行文本合并為一行
行命令還有O,配合A,B一起使用能夠覆蓋指定的行相同位置
還有列于最下行的功能鍵都有提示,就不說了。
編輯完了F3可保存退出。F12不保存退出。
如果數(shù)據(jù)集是一個分區(qū)數(shù)據(jù)集,如果是一個剛剛建立的分區(qū)數(shù)據(jù)集,我們按前述進行編輯的時候,右上角會提示 No member in data set,這個就是說明了,一個分區(qū)數(shù)據(jù)集是不能拿來直接編輯的,因為它是一個順序數(shù)據(jù)集的集合,它相當于一個文件夾,怎么可以拿來直接編輯呢,所以要先在其中建立順序數(shù)據(jù)集,這個順序數(shù)據(jù)集一般被稱為MEMBER,然后再對MEMBER進行相應的編輯。如何給分區(qū)數(shù)據(jù)集添加順序數(shù)據(jù)集呢?很簡單,就在如上的兩處環(huán)境下在Data set name一項中填上數(shù)據(jù)集名稱,然后在后面加上一個括號,其中寫上要添加的成員的名字就可以了(例如LIB.COURCE(MEM1)),然后回車就直接進入編輯狀態(tài)了。如果是一個已經(jīng)有成員的分區(qū)數(shù)據(jù)集,填寫好數(shù)據(jù)集名稱,不用加什么括號然后直接回車,會出現(xiàn)一個成員列表,再在其中進行選擇,然后選擇一個數(shù)據(jù)集來編輯就可以了,編輯命令當然跟前面說過的那兩種命令相同了。
數(shù)據(jù)集的刪除:
數(shù)據(jù)集的刪除可以在3.2下面用D命令進行,也可以在3.4下面用D命令進行。這個比較簡單。
數(shù)據(jù)集的重命名:
數(shù)據(jù)集的重命名跟刪除一樣,可以在3.2下面用R命令進行,也可以在3.4下面用R命令進行。這個也比較簡單。
數(shù)據(jù)集的移動和拷貝:
假定用戶需要復制位于卷WORK02中的數(shù)據(jù)集 ZPROF.ZSCHOLAR.LIB.SOURCE,操作過程如下:
1. 選擇ISPF選項3.3(實用程序移動/復制)。
2. 在第一個面板上:
- 在選項區(qū)域輸入C。
- 在數(shù)據(jù)集名字區(qū)域輸入’ZPROF.ZSCHOLAR.LIB.SOURCE’。這種情況需要用到單引號。
3.在第二個面板上:
- 在數(shù)據(jù)集名字區(qū)域中輸入’yourid.LIB.SOURCE’并且按ENTER鍵 ,如果這個目標數(shù)據(jù)集不存在,會有一個創(chuàng)建新數(shù)據(jù)集的提示。
4. 操作后應該產(chǎn)生一個面板列出輸入數(shù)據(jù)集中的所有成員:
-在每個成員名字前輸入S,并且按ENTER鍵。 (如果源數(shù)據(jù)集中本身就沒有成員,那么復制將自然會失敗。)
這樣就把所有顯示出來的成員從源數(shù)據(jù)集復制到了目標數(shù)據(jù)集。
移動的做法跟復制差不多,只是移動過后源數(shù)據(jù)集就消失了,而復制不會消失。
數(shù)據(jù)集的編目:
先對數(shù)據(jù)集的編目進行一個概覽:
在MVS中,數(shù)據(jù)集的管理主要是通過目錄(CATALOG)來實現(xiàn)的。目錄本身是一個數(shù)據(jù)集,它含有其它數(shù)據(jù)集的信息,提供一種能力,按數(shù)據(jù)集名去定位數(shù)據(jù)集的地址。MVS中最初沒有目錄,因此用戶必須牢牢記住其數(shù)據(jù)集所在的卷,在訪問數(shù)據(jù)集時,除了要指定數(shù)據(jù)集的名字外,還要指定數(shù)據(jù)集所在的卷。由于系統(tǒng)中的卷的個數(shù)非常多,用戶使用很不方便。之后,隨著操作系統(tǒng)的發(fā)展,實現(xiàn)了CVOL目錄和VSAM目錄。現(xiàn)在使用的目錄是Integrated catalog。
這三種目錄可以并存于同一個操作系統(tǒng)中,其中前兩種只是因為考慮兼容性而存在,系統(tǒng)中如果沒有早期的應用需求,可以完全不使用前兩種目錄 形式。
對數(shù)據(jù)集的編目實際上是對數(shù)據(jù)集的入口建立表格和索引。訪問數(shù)據(jù)集時,系統(tǒng)通過查找目錄來定位已編目的數(shù)據(jù)集。目錄中包括數(shù)據(jù)集名,卷標(VOLUME)和設備類型(UNIT)。
當讀取編目的數(shù)據(jù)集時,只需指定數(shù)據(jù)集名和數(shù)據(jù)集狀態(tài),無需指定VOLUME和UNIT參數(shù),這時,系統(tǒng)通過數(shù)據(jù)集名(DSN)查找編目,從編目中獲取UNIT和 VOLUME信息,然后再通過UNIT參數(shù)和VOLUME參數(shù)指定的VTOC獲取數(shù)據(jù)集位置,大小等信息。
使用編目后,用戶不再需要知道外存儲器的詳細設置,因此數(shù)據(jù)可以從一個地方移動到另一個地方而不必改變JCL中的DD語句,訪問數(shù)據(jù)集時也不必知道數(shù)據(jù)集存放的卷。使用編目同時也簡化了數(shù)據(jù)集的備份和恢復過程。所有VSAM數(shù)據(jù)集和SMS管理的數(shù)據(jù)集均需要編目。
如果你使用了SMS,或者為編目定義了別名(alias),則在JCL中不應該再使用JOBCAT或STEPCAT語句去指定catalog。
一個編目機制包含兩種獨立的數(shù)據(jù)集:一個基本的編目結(jié)構(gòu)(BCS)和一個VSAM卷數(shù)據(jù)集(VVDS)。BCS可以認為是編目,而VVDS則可認為是VTOC的擴展。
BCS是一個VSAM KSDS數(shù)據(jù)集,它使用數(shù)據(jù)集的名字作為關鍵字。對于VSAM數(shù)據(jù)集,BCS含有卷、安全信息、擁有者及其它信息。對于非 VSAM數(shù)據(jù)集, BCS含有卷,擁有者及其它信息。
VVDS是一個VSAM ESDS數(shù)據(jù)集,其名字為:SYSI.VVDS.Vvolser。 VVDS存放在每
一個含有VSAM或SMS管理的數(shù)據(jù)集的卷上。它含有數(shù)據(jù)集的特性和擴展(extention)信息。
對于VSAM數(shù)據(jù)集來說,還含有卷的有關信息。因此,編目的數(shù)據(jù)集描述信息包含在VTOC,BCS和VVDS中,三者描述的信息應當一致。這種一致性由操作系統(tǒng)自動同步。
所有SMS管理的數(shù)據(jù)集在VVDS中都有登記項,對于VSAM數(shù)據(jù)集的VVDS記錄被稱之為VVR(VSAM Volume Record),而對于SMS管理的非VSAM數(shù)據(jù)集的VVDS記錄則被稱之為NVR(Non-VSAM Volume Record)。如果一個非VSAM數(shù)據(jù)集跨多個卷,則其NVR在第一個卷上。
由于BCS同樣也是一個VSAM,它在 VVDS中也有一個VVR。臨時的 VSAM數(shù)據(jù)集在VVDS中同樣也有登記項,但在BCS中沒有登記項。
在MVS系統(tǒng)中,有一個主目錄(Master Catalog)及多個用戶目錄(User Catalog)。
主目錄是整個外存系統(tǒng)管理的中心控制點,它描述系統(tǒng)的數(shù)據(jù)集和用戶目錄,而用戶目錄則描述用戶的數(shù)據(jù)集。通常稱在目錄中有描述信息的數(shù)據(jù)集為編目的數(shù)據(jù)集。顯然,主目錄的信息非常重要,因此可以有一個或多個主目錄的備份。但任何時候系統(tǒng)中只能有一個主目錄在使用,形成一個以主目錄為中心的兩級層次式的數(shù)據(jù)集管理方式,主目錄與用戶目錄的區(qū)別僅僅在于它使用的方式。
SYSI.NUCLEUS數(shù)據(jù)集的SYSCATXX成員(如果有的話)或SYSI.PARMLIB(或SYS1.IPLPARM)數(shù)據(jù)集的LOADXX成員指向主目錄。在系統(tǒng)啟動時,操作員也可指定使用另一個主目錄。所有的用戶目錄均登記在主目錄中。