MainframeSupports
tip uge 41/1999:

Når nu man en sjælden gang mister nogle data i et dataset, så har man selvfølgelig en backup. Men hvordan får man egentlig fat i den rigtige. Og vil den være til at bruge. På langt de fleste installationer har man sat HSM til at tage en backup med jævnlige mellemrum, typisk hver gang der er ændret i et dataset inden for de sidste 24 timer. Og typisk gemmes der 3 backup datasets, så man kan gå helt tilbage til sådan som datasettet så ud den 3. sidste gang, det blev ændret.

Nu er det dog langt fra sikkert, at der eksisterer en HSM backup af netop det dataset, som du gerne vil have fat i en backup for. For eksempel er det meget få installationer, der tager HSM backup af DB2-datasets, da DB2 som bekendt har sin egen backup filosofi. Du finder lettest ud af, om der findes en HSM backup ved at benytte kommandoen TSO HLIST DA(<datasetnavn>) BCDS. Denne kommando udskriver på skærmen en liste over samtlige backup'er for det pågældende dataset. Der er naturligvis ikke noget krav om, at <datasetnavn> skal findes i forvejen, da det jo netop kunne tænkes at være blevet slettet.

For hver backup version udskrives information om hvornår den blev taget, et generationsnr og et versionsnr. Den nyeste backup har altid generationsnr. 0, den næstnyeste 1 og så fremdeles. Den første backup, der nogensinde blev taget fik versionsnr. 1, den næste 2 og så fremdeles. Når du skal restore datasettet, så kan du benytte backup-dato, versionsnr eller generationsnr. Restore foretages med kommandoen TSO HRECOVER <datasetnavn> GEN(0) for at restore den seneste backup af <datasetnavn>. Hvis <datasetnavn> findes i forvejen, så vil kommandoen fejle. Hvis man virkelig ønsker det eksisterende dataset overskrevet, så skal man tilføje REPLACE som option på kommandoen.

Måske er det ikke lige hele datasettet, men kun et enkelt member i et dataset, man ønsker at restore. Så skal man i stedet restore datasettet til et andet navn med kommandoen TSO HRECOVER <datasetnavn> GEN(0) NEWNAME(<nyt-datasetnavn>), hvor <nyt-datasetnavn> ikke må findes i forvejen. Backup'en bliver nu restoret i et dataset med navnet <nyt-datasetnavn>. Så kan man i dette dataset finde det ønskede member og eventuelt kopiere det over i det rigtige dataset. NEWNAME(nyt-datasetnavn) giver dig faktisk mulighed for at restore data fra samtlige de dataset, som du kan læse, selvom du ikke kan skrive i dem.

I stedet for GEN(0), som altid refererer til den nyeste backup, kan man anvende GEN(1) for den næst-nyeste og så fremdeles. Man kan også benytte backup-datoen fra HLIST-kommandoen med DATE(<backup-dato>) eller versionsnummeret med VER(<versionsnr>). Ud over option REPLACE kan man anvende option NOWAIT og WAIT. NOWAIT er default og gør det, at HRECOVER-kommandoen bliver udført i baggrunden, mens du kan arbejde videre med noget andet. Når HSM så er færdig med at foretage restoren af datasettet, så får du en NOTIFY herom, ligesom når du har NOTIFY på dit batchjob. Med WAIT får du pænt lov at vente indtil hele operationen er slut.

Bemærk, at <datasetnavn> og <nyt-datasetnavn> følger reglerne for TSO-prefixing.

Sidste uges tip        Tip oversigten