CONTENTS Title Page Copyright Page Preface Acknowledgment 1 Introduction to Database Operations Overview of VAX DSM Databases Global Storage Techniques Volume Sets Volumes User Class Identifier Distributed Data Processing Specifying Globals with Extended Global Syntax 2 Managing Database Sets, Volume Sets, and Globals VAX DSM File Name Defaults in Utilities Database Set Management Utilities ( ^DBSMAN ) Utilities for Managing VAX DSM Volume Sets Volume Management Utility ( ^VOLMAN ) Creating VAX DSM Volume Sets ( CREATE^VOLMAN ) Extending Volume Sets ( EXTEND^VOLMAN ) Adding a Volume to a Volume Set ( ADD^VOLMAN ) Changing the Maximum Number of Globals on a Volume Set ( MAXGLO^VOLMAN2 ) Enabling Expanded String Length on a Volume Set ( EXPSTR^VOLMAN2 ) Displaying the Volume Set Table ( ^%VOLTAB ) Mounting DSM-11 Compatible Volume Sets Creating UCIs ( ^UCIADD ) Global and UCI Placement, Growth, and Optimization Global Levels and Disk Access Global Overflow Overflow from One Volume to Another Placing UCIs on a Volume Set Global Disk Block Allocation ( ^UCIGAM and ^%GLOMAN ) Global Placement Controlling Global Growth Global Protection Global Protection Scheme Default Protection Changing Global Protection Changing Global Characteristics Modifying Default Global Characteristics Global Translation Overview Translation and Schema Tables Using Global Translation Library Globals and Translation Using the Global Translation Utility ( ^CONTR ) Using the ^%TRAN Utility 3 Using Distributed Data Processing Overview of VAX DSM Distributed Data Processing (DDP) Accessing Remote Globals Global Reference Resolution DDP Networks Ethernet DDP Links DECnet DDP Links Inter-Environment DDP Links DDP Nodes DDP Circuits DDP Autoconfigure DDP Groups DDP Circuit Connection Security DDP Software Components DDP Communications Overview Request Transmission Request Reception DDP and Cluster-Mounted Volume Sets DDP Services for Cluster-Mounted Volume Sets Configuring and Starting DDP Loading the VAX DSM DDP Driver Using the ^CONFIG Utility to Configure DDP Configuring DDP Links Configuring Ethernet Links Configuring DECnet Links Starting DDP DDP Log Files VAX DSM DDP Utilities Starting Up or Shutting Down DDP ( START^DDPLNK and STOP^DDPLNK ) Configuring DDP ( ^CONDDP ) Modifying the DDP Security Database ( ^DDPSEC ) Examining or Modifying a Logical Circuit ( ^DDPCIR ) Controlling Circuits Using the ^DDPUTL Utility Using the DDP Performance Statistics Utility ( ^DDPSTA ) References to String-Collated or 7-Bit Globals 4 Using Cluster-Mounted Database Sets Overview Maintaining High Availability in a VAXcluster Environment Using Cluster-Mounted Database Sets with DDP and Journaling Setting Up Configurations with Cluster-Mounted Database Sets Starting Up and Shutting Down VAX DSM Configurations in a VAXcluster Environment Monitoring Configurations with Cluster-Mounted Database Sets Accessing Cluster-Mounted Databases 5 Selecting a Method for Sharing the VAX DSM Database Goals of a Shared Database System Disk Caching and VAX DSM Systems Using DDP for a Shared Database System Using Cluster-Mounted Volume Sets for a Shared Database System Selecting DDP or Cluster-Mounted Volume Sets for Database Sharing Combining DDP-Served and Cluster-Mounted Volume Sets in a VAXcluster Environment 6 Maintaining VAX DSM Database Integrity Levels of Database Integrity Database Failure Modes Protection from Media Failures Physical Disk Shadowing Database Backup with After-Image Journaling Protection from System Failures Before-Image Journaling Using After-Image Journaling with Before-Image Journaling Journaling in a VAXcluster Environment Recovery Process in a VAXcluster Environment Database Backup Techniques Full Database Backup Incremental Database Backup Cumulative Incremental Backup Serial Incremental Backup Performing an Incremental Backup Restoring an Incremental Backup Updating the Backup Revision Number 7 Using VAX DSM Journaling Journaling Resources Journaling Processes Journal Process Recovery Process DDP Servers Journal Files Before-Image Journal File After-Image Journaling Files After-Image Journal Files After-Image Log File Setting Up Before-Image and After-Image Journaling Creating a Before-Image Journal File ( ^BIJINIT ) Creating After-Image Journal Files ( ^JRNINIT ) Enabling Before-Image and After-Image Journaling Before-Image Journaling Utilities Examining the Before-Image Journal File ( ^BIJEXAM ) Forcing the Before-Image Journal File ( ^BIJFORC ) After-Image Journaling Utilities Journal File Utilities Add Journal File Name ( ADDFIL^JRNL ) Close Current Journal File ( CLOSEFI^JRNL ) Create New Log File ( NEWLOG^JRNL ) Display Journal File Label ( LABEL^JRNL ) Display Journal File Names ( DISPLAY^JRNL ) Initialize Journal File ( ^JRNINIT ) Open Current Journal File ( OPENFIL^JRNL ) Global Utilities for Journaling ( SETJRN^%GLOMAN ) List Journal Utility ( ^JRNLIS ) Journal Operator Utilities Disable Journaling ( PAUSE^JRNL ) Disable Transaction Processing ( TPOFF^JRNL ) Enable Journaling ( RESUME^JRNL ) Enable Transaction Processing ( TPON^JRNL ) Journal Status ( STATUS^JRNL ) Generating After-Image Journal Files Recovering from Media Failure (Dejournaling) Dejournaling from a DSM-11 Journal Tape ( DSM11^DEJRNL ) Dejournaling from the After-Image Log File ( LOG^DEJRNL ) Dejournaling from Selected Files and Globals ( FILE^DEJRNL ) Writing a Customized Dejournaling Utility %DEJRNL $ZCALL %GDECOD $ZCALL %GLSDAT $ZCALL Recovering from a System Failure Using Command Procedures to Perform Database Backups Standard Calling Interface Volume Set Access Control ( ^VOLINH ) Set Read Only Access ( SRO^VOLINH ) Clear Read Only Access ( CRO^VOLINH ) After-Image Journal File Control ( ^JRNUTL ) Initialize a Journal File ( INIFIL^JRNUTL ) Add a New Journal File ( ADDFIL^JRNUTL ) Close Current Journal File ( CLOSEFI^JRNUTL ) Open Next Journal File ( OPENFIL^JRNUTL ) Create New Journal Log File ( NEWLOG^JRNUTL ) Incremental Backup and Restore ( ^BACKUP ) Incremental Backup ( ENT^BACKUP ) Update Backup Revision Number ( ENT^BACKUP ) Full Database Backup Command Procedure Incremental Database Backup Command Procedure 8 Checking and Repairing Database Integrity Integrity Checker Utility ( ^IC ) Fast Integrity Checker Utility ( ^FASTIC ) Creating Command Procedures to Perform Integrity Checking Database Repair Utility ( ^FIX ) 9 Using Transaction Processing Introduction to Transaction Processing Transaction Recovery Units VAX DSM Transaction Processing Mechanisms Recovery Unit Isolation and Serialization Configuring VAX DSM for use with Transaction Processing Transaction Database Sets and Globals Creating Transaction Processing Volume Sets Initializing Transaction Processing Journal Files Defining the Transaction Database Set Using the ^CONFIG Utility to Configure Transaction Processing Configuring Volume Sets for Routine and Temporary Globals Controlling Transaction Processing Activities Monitoring Transaction Processing Activities Recovery Unit Programming Techniques Recovery Unit Bracketing $ZULEVEL, $ZUID, and Nested Recovery Units Read-only Recovery Units Programming for Isolation and Concurrency High Concurrency Locking Techniques Shared Read Locks Protected Write Locks Recovery Unit Error Handling Writing Restartable Recovery Units A Converting DSM-11 Databases to VAX DSM Volume Sets Overview TARGET Volume Set Size Requirements Procedure for Converting the DSM-11 Database Direct Conversion Two-Step Conversion Using the ^CON11 Utility B VAX DSM Tables and Memory-Resident Data Structures Memory-Resident Tables Volume Set Table UCI Table Storage Allocation Table C Overview of Data Storage VAX DSM Block Types Layout of VAX DSM Blocks Map Blocks Global Directory Blocks Global Pointer Blocks Global Data Blocks Source Routine Blocks Compiled Routine Blocks Collating Sequence Numeric Collating Sequence ASCII Collating Sequence Implementation of Collating Sequence Optimizing Disk-Cache Usage D Storing VAX DSM Globals and Routines in VAX RMS ISAM Files Using VAX RMS ISAM Files to Store VAX DSM Globals Establishing RMS ISAM Files How Globals Are Stored as RMS ISAM Files Global Variable Names Translating Global Variable Names into File Specifications Organization of RMS Files RMS Defaults ASCII Collating Sequence Global Protection and Access Privileges Shared Access to Globals Accessing VAX DSM RMS Globals Across the Network Global Access Using VMS Utilities VAX DSM Command Line Qualifier for Selecting Directories RMS Global Utilities Close ( GBL^%CLOSE ) Create ( ^%GLCRE ) Dump ( ^%GDUMP ) Open Globals ( GBL^%STAT ) Statistics ( GBLSTAT^%STAT ) Using VAX RMS ISAM Files to Store VAX DSM Routines RMS Routine Directories Size of Routines in Directories Protection of Routine Directories VAX DSM Command Qualifiers that Affect RMS Routines Default File Specifications of Application Routine Directories Default File Specifications of Library Routine Directories Using Logical Names to Specify Routine Directories RMS Routine Directory $ZCALLs %RDRMS $ZCALL Changing Routine Directories and UCI RMS Routine Utility ( ^%RCON ) JOB Command and RMS Routines and Globals EXAMPLES 2-1 Using the ^VOLMAN Utility to Create a Volume Set 3-1 Configuring DDP with the ^CONFIG Utility 7-1 Using the ^CONFIG Utility to Enable BIJ and AIJ 7-2 Writing a Customized Dejournaling Utility 7-3 Full Database Backup Command Procedure 7-4 Incremental Database Backup Command Procedure 9-1 Using the ^CONFIG Utility to Configure Transaction Processing 9-2 ^TPSTA Report A-1 Running the ^CON11 Utility FIGURES 1-1 DSM-11 Compatible Database Set 1-2 VAX DSM Database Set 1-3 Transaction Database Set 1-4 Global Storage Differences 1-5 VAX DSM Global Storage Hierarchy 1-6 Multivolume Volume Sets 1-7 Backing Up a Multivolume Volume Set 1-8 Database Organization 1-9 Accessing Globals in a DDP Environment 2-1 Global Initialization 2-2 Typical Global Layout 2-3 Disk Allocation for Two UCIs 2-4 Global Data Growth Area Allocation for Three Globals 2-5 Relationship Between Default UCIs, Translation Tables, and the Schema Table 2-6 Algorithm for Non-Library Global References 2-7 Algorithm for Library Global References 3-1 Three-Node Ethernet Network 3-2 Ethernet Network Configurations in Two DDP Groups 3-3 DDP Software Components and Server Processes 3-4 Two VAXcluster Members Mounting the Same Volume Set 3-5 One VAXcluster Member Mounting a Volume Set 3-6 Mixed Cluster/Noncluster Environment 3-7 DECnet DDP Link Between Two DDP Nodes 4-1 Common Access to Volume Set AAA 5-1 Single-Node System with Access to Volume Set AAA 5-2 Three-Node System with DDP Access to Volume Set AAA 5-3 Three-Node System with a Cluster-Mounted Volume Set 5-4 Efficiency of Cluster-Mounted Volume Sets 5-5 DDP Performance 5-6 DDP and Cluster-Mounted Database Sharing Statistics 5-7 Combined DDP/Cluster-Mounted Shared Database System 6-1 Levels of Database Integrity 6-2 Database Shadowing 7-1 Relationship Between VAX DSM Journal Processes in a VAXcluster Environment 9-1 Transaction Database Set 9-2 Nested Recovery Units B-1 Volume Set Table and Volume Descriptor B-2 UCI Table C-1 Relationship of Blocks in a VAX DSM Global C-2 VAX DSM Global Block C-3 Map Block C-4 Global Directory Block C-5 Protection Code Byte Assignments C-6 A Global Key C-7 Global Pointer Block C-8 Global Data Block TABLES 5-1 Database Sharing Methods 8-1 Fast Integrity Checker Messages B-1 Storage Allocation Table