PreviousZ | Contents\ | Index |
7The following is the Rdb V6.0 command used to rename a <particular journalling file. The version number is required.
" #$ ! Rdb V6.0 journaling command...5$ RMU/SET AFTER_JOURNAL LIBDEV$:[PROJ]VDE$DATABASE - *_$ /ALTER=(name=aij,FILE=filename.aij;0) |
GIf the journal is inaccessable, use the following sequence to create a new journal file:
" #$ ! Rdb V6.0 journaling command...5$ RMU/SET AFTER_JOURNAL LIBDEV$:[PROJ]VDE$DATABASE - _$ /DISABLE5$ RMU/SET AFTER_JOURNAL LIBDEV$:[PROJ]VDE$DATABASE - _$ /DROP=(name=aij)5$ RMU/SET AFTER_JOURNAL LIBDEV$:[PROJ]VDE$DATABASE - (_$ /ADD=(name=aij,FILE=filename.aij;0)5$ RMU/SET AFTER_JOURNAL LIBDEV$:[PROJ]VDE$DATABASE - _$ /ENABLE |
8The following commands are used to relocate various Rdb ,component files associated with the VDE Rdb database:
" '$ RMU/ALTER LIBDEV$:[PROJ]VDE$DATABASE/RdbALTER> deposit file RDB$SYSTEM SNAPSHOT -S_RdbALTER> SPECIFICATION="LIBDEV_SNAP$:[VDE$ROOT.DB_SNAPSHOT]VDE$DATABASE.SNP;1"&RdbALTER> deposit file RDB$SYSTEM -R_RdbALTER> SPECIFICATION="LIBDEV_AREA$:[VDE$ROOT.DB_STORAGE]VDE$DATABASE.RDA;1"SRdbALTER> deposit root specification="LIBDEV_ROOT$:[VDE$ROOT]VDE$DATABASE.RDB;1"RdbALTER> commitRdbALTER> ^Z |
;If the delta files (the CMS libraries) in your VDE library Care damaged or lost due to a disk failure or other cause, you must Drecover as much of its lost contents as possible. The procedure for Edoing so involves initially restoring or recreating missing files or Gdirectories (consisting primarily of CMS libraries) from backup tapes, =and then restoring the VDE database from the database backup Gand journal disk(s), and finally bringing the CMS libraries up-to-date Gusing information from the database and the queued replacement staging area directories.
;The first step is to determine how much of the VDE library Gis damaged. If the whole disk is unavailable (due to a head crash, for Gexample), you must restore the whole disk from backup tapes created by Gthe normal nightly backups. If only certain CMS libraries are damaged, Byou may only need to restore those CMS libraries. Either way, you 6should wind up with a VDE directory structure that is Eup-to-date as of the last backup, and thus at most a day out of date.
:If the VDE database was affected by the failure, the next Çstep is to restore and recover it as explained in Section 7.4.7. This Foperation restores the database from its most recent backup files and Ethen applies the after-image journal files to the restored database, Hthus rolling the database forward until it is up-to-date as of the last )transaction completed before the failure.
=Because the VDE database is fully up-to-date, information in Bthe database can be used to determine what module generations are Bmissing from the restored CMS libraries (which may be up to a day Eout-of-date). To determine what generations are missing from the CMS 1libraries, you can use the following VDE command:
" -VDEä VERIFY GENERATION/SINCE=YESTERDAY [*]*.* |
@If only a few CMS libraries were restored, you can save time by =verifying generations for only those facilities. For example:
" >VDEä VERIFY GENERATION/SINCE=YESTERDAY [FAC1]*,[FAC2]*,[FAC3]* |
BIf the output of the VERIFY GENERATION command indicates that any Hmodule generations are missing from the restored CMS libraries, you can <usually recover those generations from the VDE staging area :directories. The VDE staging area directories contain the Coriginal source file for each generation created by a replacement. DMissing generations can therefore be restored to a CMS library from Ethose source files. To do so, use the VERIFY GENERATION command with $the /RECOVER qualifier. For example:
" 5VDEä VERIFY GENERATION/SINCE=YESTERDAY/RECOVER [*]*.* |
HKeep in mind that not all module generations are stored in staging area Cdirectories. Only queued replacements use staging areas; immediate Breplacements do not. Also, generations created with the /INPUT or D/DIRECTORY qualifier to the CREATE MODULE command are not stored in ;staging area directories. Because these qualifiers require 9VDE privileges and are normally used only during initial ;set-up of the VDE library, recovery of such generations is Busually not an issue. However, it is generally wise to always use Equeued replacements if recovery of lost generations is a concern for your VDE library.
GIn those cases where a missing generation cannot be recovered from its Gstaging area directory but is available from a file elsewhere, you can Grecover that generation with a separate VERIFY GENERATION command that 3gives an explicit file location for the generation:
" $VDEä VERIFY GENERATION [FAC1]FOO.C -/_VDEä /GENERATION=5A2/RECOVER=DSK$:[MYDIR]FOO.C |
;If you are unable to recover a missing generation, the VDE Edatabase will be inconsistent with the affected CMS library. This is Ghighly undesirable because it means that the missing generation (which His likely to be the latest generation of at least one stream) cannot be Dfetched or reserved. To correct the problem, you must do one of two Hthings. One possibility is to get the creator of the missing generation Bto recreate it so you can recover it as just described. The other Epossibility is that you recover the missing generation using a dummy 9input file and then delete that generation using the VDE CDELETE GENERATION command; in this case, the missing generation is Bpermanently lost but the database becomes consistent with the CMS libriary.G
FThis section describes how to move the CMS library to different---and Dusually larger---disks. The use of a shadow set for the CMS library 4volume, and the use of VDE in a cluster, is assumed.
EIf you need to remount the source volume of the above copy operation Dwith /SYSTEM or /CLUSTER, you must release the hardware write-lock, Fmount the volume privately, use the SET VOLUME/LABEL command to alter Cthe volume label, dismount the disk, re-enable the write-lock, and Gfinally mount the volume /SYSTEM or /CLUSTER---duplicate volume labels ?are not allowed on volumes mounted /SYSTEM or /CLUSTER. |
/This section describes how to relocate VDE Rdb Edatabase files to other disks, how to deal with device name changes, Gand how to reset the filenames of the database root, storage area, and Fsnapshot area should the filename(s) stored in the database root file .not match the filename(s) of the actual files.
" '$ RMU/CLOSE/CLUSTER/ABORT=DELPRC/WAIT -4_$ DISK$OLDROOTDISK:[TOOLS.DBROOT]VDE$DATABASE.RDB%$ RMU/MOVE_AREA/NOAREA/NOONLINE/LOG -(_$ /dir=DISK$NEWDATADISK:[VDE.TOOLS] -6_$ DISK$OLDROOTDISK:[TOOLS.DBROOT]VDE$DATABASE.RDB -;_$ /after=DISK$NEWAIJDISK:[VDE.TOOLS]VDE$DATABASE.AIJ;1 -;_$ /root=DISK$NEWROOTDISK:[VDE.TOOLS]VDE$DATABASE.RDB;1 -=_$ /snap=file=DISK$NEWSNPDISK:[VDE.TOOLS]VDE$DATABASE.SNP;1 |
6Once the databases have been moved, be sure to update FVDE$SYSTARTUP.COM, and any system device MOUNT procedures, to reflect @the new location of the databases. Also perform a full database RMU/BACKUP.
HIf is also possible for this situation to arise unintentionally, should >some disks get shuffled around. Should the databases be moved 2unintentionally, VDE can produce RDMS$_FILACCERR, /RDMS$_BADROOTMATCH, and RDB$_DB_CORRUPT errors.FAs part of resolving this, you will want to determine why these files Eare no longer under the expected filenames---device name changes are one potential cause.
" $ VDEVDEä SET LIBRARY VMS6%RDB-F-SYS_REQUEST, error from system services request_-RDMS-F-FILACCERR, error opening storage area file $11$DUA1010:[VMS.DATABASE]VDE$DATABASE.SNP;1K-RMS-F-DEV, error in device name or inappropriate device type for operationVDEä [CTRL/Z]$ |
" $ VDEVDEä SET LIBRARY VMS/%RDB-F-DB_CORRUPT, database filename is corrupt¥-RDMS-F-BADROOTMATCH, root file "$22$DUA1010:[VMS.DATABASE]VDE$DATABASE.RDB;1" no longer has its original name "$11$DUA1010:[VMS.DATABASE]VDE$DATABASE.RDB;1"VDEä [CTRL/Z]$ |
" $ 6$ RMU/ALTER $22$DUA1010:[VMS.DATABASE]VDE$DATABASE.RDB_RdbALTER> dep file RDB$SYSTEM snapshot speci="$22$DUA1010:[VMS.DATABASE]VDE$DATABASE.SNP;1"VRdbALTER> dep file RDB$SYSTEM speci="$22$DUA1010:[VMS.DATABASE]VDE$DATABASE.RDA;1"LRdbALTER> dep root specif="$22$DUA1010:[VMS.DATABASE]VDE$DATABASE.RDB;1"RdbALTER> commit!RdbALTER> [CTRL/Z]$ |
FOnce the database has been brought back online or has been relocated, Cmake certain to perform a full database RMU/BACKUP of the database.i
FThe staging area directories will grow over time and must be manually ?cleaned. This operation is performed at site-specific periodic Dintervals---the intervals are determined by the size of the staging Hdevice and the frequency and size of replacements, and by the frequency Hof the database backups. This section describes the steps used to purge Bold replacements. For information on utilitizing the staging area 9directories during VDE database recovery operations, see MSection 7.4.10.
=The staging area directories can be located with the command:
" VSC> SHOW LOCATION/STAGING |
;Underneath the staging subdirectory exists three levels of Gsubdirectories. The files associated with a replacement are located in Fthe lowest two levels of the staging heirarchy---all files associated Fwith a particular replacement are located below a unique subdirectory 2[.VDE$REP_*], in facility-specific subdirectories.GLocated one level above the [.VDE$REP_*] replacement subdirectory is a Estaging area subdirectory in the form [.VDE$STG_*]. The staging area Gsubdirectory exists solely to reduce the number of files in any single Hdirectory. For further details on the stating area directory structure, Gsee Section 6.3.2.
DAn example of the full specification of a staging directory follows:
" 8VSC$STAGEDISK:[VMS.STAGE.VDE$STG_130.VDE$REP_13066.ERF] |
HThe names of the [.VDE$REP_*] replacement subdirectories are built from Ca predefined prefix with the five decimal digit replacement number Happended. Replacement numbers are allocated in ascending order, and are ,not reused unless the database is recreated.
HThe names of the [.VDE$STG_*] staging area subdirectories are comrpised Gof a predefined prefix with all but the last two decimal digits of the =replacement number appended. This means each of staging area Asubdirectories holds one hundred replacement subdirectory files. FStaging area subdirectories---once filled -- are not reused until and (unless the entire database is recreated.
)To perform the cleanup, issue the command
" VSC> SHOW REPLACEMENT/FULL |
AUsing the oldest replacement identifier, delete all [.VDE$STG_*] Gstaging area subdirectories where the first three digits are less than Hthe observed replacement number. For example, if the oldest outstanding Dreplacement number is "13054", all subdirectories and all Cfiles located under staging area subdirectories [.VDE$STG_129...], ?[.VDE$STG_128...], [.VDE$STG_127...], etc., can be deleted. Do Enot delete staging area subdirectories more recent than the ulast VDE database backup operation. See Section 7.4.10.
HFailure to insure adequate space in the staging area can produce errors similar to the following:
" E%COPY-E-OPENOUT, error opening VSC$STAGEDISK:[VMS.STAGE.VDE$STG_131. 5VDE$REP_13163.DECW$DEVICE]DECWINDOWS000.E; as output <-RMS-F-FUL, device full (insufficient space for allocation) 9%COPY-W-NOTCOPIED, dev:[dir]DECWINDOWS000.E;1 not copied .%VDE-E-SCRPMODFAIL, STAGING script for module 4[DECW$DEVICE]DECWINDOWS000.E terminated with errors |
" VSC> REPLACE DECWINDOWS000.E |
<It is possible for a VDE database to exceed the capacity of Ha volume. The following section describes the steps required to offload /the larger files from one of the VDE libraries.
HThe following command can be used to locate the larger files present in 1the VDE libraries. In the case of OpenVMS, these Gfiles are typically savesets from contributing projects, are typically large.
DMarker files are typically large binary, image, saveset, or library Ffiles, and as such are not (and should not be) stored directly in the BCMS library, as this reduces the overhead involved when there are Etypically rather large changes between one module generation and the &next. Use the SHOW MODULE/FULL commandCto determine if a particular module is a marker file. Use the SHOW DIRECTORY/DELTA command9to determine the current (default) location of the delta Cdirectory---specifically the location referenced by the applicable VDE$MARKER symbol.
DRecent versions of CMS have added support for the storage of binary 8files, but VDE does not currently utilize this support. |
GThe following command can be used to locate the larger file(s) present :in the local VDE database in the "VMS$" library:
" ?$ DIRECTORY/SIZE/SELECT=SIZE=MINIMUM=500 VMS$:[000000...]*.*.* |
" $ Set NoOn 4$ dir/col=1/siz/out=sys$scratch:masd_listing1.tmp - vms$:[ddtm.src]ddtmkit.bck 4$ dir/col=1/siz/out=sys$scratch:masd_listing2.tmp - @ vms$:[decw$buildtool.src]decw$buildtool.sav,decw$motif%%%.% 4$ dir/col=1/siz/out=sys$scratch:masd_listing3.tmp - * vms$:[decw$common.src]decwindows%%%.a 4$ dir/col=1/siz/out=sys$scratch:masd_listing4.tmp - 6 vms$:[decw$device.src]decwindows000.b,.c,.d,.e,.f 4$ dir/col=1/siz/out=sys$scratch:masd_listing5.tmp - / vms$:[decw$fonts.src]decwindows000.c,.d,.e 4$ dir/col=1/siz/out=sys$scratch:masd_listing6.tmp - 0 vms$:[decw$server.src]decwindows000.b,.c,.q 4$ dir/col=1/siz/out=sys$scratch:masd_listing7.tmp - vms$:[ipc.src]ipckit.bck 4$ dir/col=1/siz/out=sys$scratch:masd_listing8.tmp - vms$:[lm.src]lmkit.bck 4$ dir/col=1/siz/out=sys$scratch:masd_listing9.tmp - & vms$:[starlet.src]vic_starlet.obj 4$ dir/col=1/siz/out=sys$scratch:masd_listinga.tmp - vms$:[syslib.src]*.* 4$ dir/col=1/siz/out=sys$scratch:masd_listingb.tmp - # vms$:[tpssda.src]tpssdakit.bck $ B$ Copy sys$scratch:masd_listing%.tmp sys$scratch:masd_listing.lis |
" .VSC> SHOW GENERATION/TREE [DDTM]DDTMKIT.BCK |
" *VSC> SHOW MODULE [DDTM]DDTMKIT.BCK/FULL4VSC> FETCH/OUT=TT:/GENERATION=n [DDTM]DDTMKIT.BCK |
" $ SET NOON $ ($! Ignore any higher-version warnings.. $ 8$ READ/PROMPT="^Z TO ABORT, <RET> TO CONTINUE " - 3 /ERROR=DONE/END_OF_FILE=DONE SYS$COMMAND YESNO $ =$ CREATE/DIRECTORY VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DDTM] '$ COPY VMS$:[DDTM.SRC]DDTMKIT.BCK;54 - . VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DDTM] '$ COPY VMS$:[DDTM.SRC]DDTMKIT.BCK;53 - . VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DDTM] A$ CREATE/DIRECT VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.B;18 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.C;17 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.D;18 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;13 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;11 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 2$ COPY VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.F;11 - 5 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.DECW$DEVICE] 9$ CREATE/DIRECT VDE$RESD1$:[941002_VMS_MASD_CLEANUP.IPC] %$ COPY VMS$:[IPC.SRC]IPCKIT.BCK;47 - - VDE$RESD1$:[941002_VMS_MASD_CLEANUP.IPC] 8$ CREATE/DIRECT VDE$RESD1$:[941002_VMS_MASD_CLEANUP.LM] #$ COPY VMS$:[LM.SRC]LMKIT.BCK;47 - , VDE$RESD1$:[941002_VMS_MASD_CLEANUP.LM] =$ CREATE/DIRECT VDE$RESD1$:[941002_VMS_MASD_CLEANUP.STARLET] .$ COPY VMS$:[STARLET.SRC]VIC_STARLET.OBJ;32 - 1 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.STARLET] .$ COPY VMS$:[STARLET.SRC]VIC_STARLET.OBJ;29 - 1 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.STARLET] <$ CREATE/DIRECT VDE$RESD1$:[941002_VMS_MASD_CLEANUP.SYSLIB] )$ COPY VMS$:[SYSLIB.SRC]VAXCDEF.TLB;30 - 0 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.SYSLIB] )$ COPY VMS$:[SYSLIB.SRC]VAXCDEF.TLB;28 - 0 VDE$RESD1$:[941002_VMS_MASD_CLEANUP.SYSLIB] $ 8$ READ/PROMPT="^Z TO ABORT, <RET> TO CONTINUE " - 3 /ERROR=DONE/END_OF_FILE=DONE SYS$COMMAND YESNO $ /$ DELETE VMS$:[DDTM.SRC]DDTMKIT.BCK;54 /$ DELETE VMS$:[DDTM.SRC]DDTMKIT.BCK;53 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.B;18 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.C;17 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.D;18 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;13 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;11 6$ DELETE VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.F;11 .$ DELETE VMS$:[IPC.SRC]IPCKIT.BCK;47 -$ DELETE VMS$:[LM.SRC]LMKIT.BCK;47 2$ DELETE VMS$:[STARLET.SRC]VIC_STARLET.OBJ;32 2$ DELETE VMS$:[STARLET.SRC]VIC_STARLET.OBJ;29 1$ DELETE VMS$:[SYSLIB.SRC]VAXCDEF.TLB;30 1$ DELETE VMS$:[SYSLIB.SRC]VAXCDEF.TLB;28 $ 8$ READ/PROMPT="^Z TO ABORT, <RET> TO CONTINUE " - 3 /ERROR=DONE/END_OF_FILE=DONE SYS$COMMAND YESNO $ =$ COPY SYS$SCRATCH:Q.Q VMS$:[DDTM.SRC]DDTMKIT.BCK;54 =$ COPY SYS$SCRATCH:Q.Q VMS$:[DDTM.SRC]DDTMKIT.BCK;53 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.B;18 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.C;17 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.D;18 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;13 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.E;11 D$ COPY SYS$SCRATCH:Q.Q VMS$:[DECW$DEVICE.SRC]DECWINDOWS000.F;11 <$ COPY SYS$SCRATCH:Q.Q VMS$:[IPC.SRC]IPCKIT.BCK;47 ;$ COPY SYS$SCRATCH:Q.Q VMS$:[LM.SRC]LMKIT.BCK;47 @$ COPY SYS$SCRATCH:Q.Q VMS$:[STARLET.SRC]VIC_STARLET.OBJ;32 @$ COPY SYS$SCRATCH:Q.Q VMS$:[STARLET.SRC]VIC_STARLET.OBJ;29 ?$ COPY SYS$SCRATCH:Q.Q VMS$:[SYSLIB.SRC]VAXCDEF.TLB;30 ?$ COPY SYS$SCRATCH:Q.Q VMS$:[SYSLIB.SRC]VAXCDEF.TLB;28 $ $ EXIT $ $DONE: $ EXIT |
" 3 *** this file was archived as of Oct 2, 1994 *** 3 *** Contact [name], at [email-address] *** |
CThe end result of the above commands and command procedures is the Hrelocation of the larger modules---those that are referenced via marker 9files---and out of the VDE library. Should the offloaded Bgeneration of the file be reserved or fetched for any reason, the H"archived" notice will be returned. The archived file must be Fmanually located and retrieved from online or offline storage. (It is Dtypically good practice to indicate the particular location of this storage in the stub file.)
6A future version of VDE may include the capability to E"tie off" streams and offload modules referenced by marker 'files in an easier and cleaner fashion.
PreviousW | NextZ | Contents\ | Index |