Contents

Chapter 1: 
 
Chapter 2: 
 
  • 2.1 Write Image Journaling
  • 2.1.1 Image Journal
  • 2.1.2 Two-Phase Write Protocol
  • 2.1.3 Write Image Journaling Modes
  • 2.2 Recovery
  • 2.2.1 Recovery Procedure
  • 2.3 Error Conditions
  • 2.3.1 If Recovery Cannot Complete (UNIX and OpenVMS)
  • 2.3.2 Sample Recovery Errors
  • 2.3.3 Write Daemon Panic Condition
  • 2.3.4 Write Daemon Errors and System Crash
  • 2.3.5 Freeze Writes on Error
  • 2.3.6 Responding to a Freeze
  • 2.4 Limitations of Write Image Journaling
  • Chapter 3: 
     
  • 3.1 Configuring Caché Backups
  • 3.1.1 Backup Tasks
  • 3.1.2 Concurrent Backups
  • 3.1.3 Creating Additional Backup Tasks
  • 3.1.4 Deleting a Backup Task
  • 3.1.5 Running Backups
  • 3.1.6 Adding New Directories
  • 3.1.7 Performing Multivolume Backups
  • 3.1.8 Backup Log Files
  • 3.2 Estimating Size of Backups
  • 3.2.1 Run DBSIZE Interactively
  • 3.2.2 Use the DBSIZE Extrinsic Function
  • 3.3 Backup Considerations
  • 3.3.1 Error Handling for Backups
  • 3.3.2 Backup and Transaction Processing
  • 3.4 Caché ^DBACK Routine
  • 3.5 Restoring from a Backup
  • 3.5.1 Using the Backup History to Recreate the Database
  • 3.5.2 Suspending Database Access During a Restore
  • 3.5.3 Restoring Database Properties
  • 3.5.4 Performing a Restore
  • 3.5.5 Error Handling for Restore
  • 3.6 UNIX Backup and Restore
  • 3.6.1 Using UNIX Backup Utilities
  • 3.6.2 cbackup Utility
  • 3.7 OpenVMS Backup and Restore
  • 3.7.1 Efficiency
  • 3.7.2 Concurrent Operation
  • 3.7.3 History Log
  • 3.7.4 Using the OpenVMS BACKUP Utility
  • 3.7.5 Using CBACKUP.COM
  • 3.7.6 Restore on OpenVMS
  • 3.8 Backing Up Selected Globals and Routines
  • 3.8.1 Backup and Restore Utilities for Selected Routines
  • 3.9 Best Practices
  • Chapter 4: 
     
  • 4.1 Journaling Overview
  • 4.1.1 Differences Between Journaling and Write Image Journaling
  • 4.1.2 Database Integrity Protection
  • 4.1.3 Automatic Journaling of Transactions
  • 4.1.4 Rolling Back Incomplete Transactions
  • 4.2 Journaling Configuration
  • 4.2.1 Journaling Selected Globals
  • 4.3 Journaling Tasks
  • 4.3.1 Start Journaling
  • 4.3.2 Stop Journaling
  • 4.3.3 Switch Journal Files
  • 4.3.4 Viewing the Journal File
  • 4.3.5 Setting Journal Markers
  • 4.3.6 Restoring the Journal
  • 4.3.7 Displaying the Journal
  • 4.4 Journaling Utilities
  • 4.4.1 Selecting Globals for Journaling with %JOURNAL
  • 4.4.2 Use %NOJRN to Manage Journaling at the Process Level
  • 4.4.3 Extrinsic Functions for Manipulating the Journal File
  • 4.5 Journaling Limitations
  • 4.5.1 Temporary Globals
  • Chapter 5: 
     
  • 5.1 Shadow Journaling Overview
  • 5.1.1 Fast Transmission Mode
  • 5.1.2 Compatible Transmission Mode
  • 5.2 Enabling Shadow Journaling
  • 5.2.1 Configuring the Source Database Server
  • 5.2.2 Configuring the Destination Shadow Server
  • 5.2.3 Setting Shadowing Properties
  • 5.3 Using Shadow Journaling
  • 5.3.1 Starting Shadow Journaling
  • 5.3.2 Stopping Shadow Journaling
  • 5.3.3 Purging Shadow Journal Files
  • 5.3.4 Viewing Error Messages
  • 5.4 Disaster Recovery Using the Shadow Server
  • Chapter 6: 
     
  • 6.1 No Failover
  • 6.2 Cold Failover
  • 6.3 Warm Failover
  • 6.4 Hot Failover
  • Chapter 7: 
     
  • 7.1 Overview of Clusters
  • 7.1.1 Cluster Master
  • 7.1.2 Cluster Master as Lock Server
  • 7.2 Cluster Configuration
  • 7.2.1 Namespaces and Replication
  • 7.3 Managing Cluster Databases
  • 7.3.1 Creating Caché Database Files
  • 7.3.2 Mounting Databases
  • 7.3.3 Deleting a Cluster-Mounted Database
  • 7.4 Caché Startup
  • 7.5 Write Image Journaling and Clusters
  • 7.6 Cluster Backup
  • 7.6.1 Cluster Considerations
  • 7.7 System Design Issues for Clusters
  • 7.7.1 Determining Database File Availability
  • 7.8 Cluster Application Development Strategies
  • 7.8.1 Block Level Contention
  • 7.9 Caché ObjectScript Language Features
  • 7.9.1 Remote Caché ObjectScript Locks
  • 7.10 DCP and UDP Networking
  • Chapter 8: 
     
  • 8.1 Tru64 UNIX Caché Cluster Overview
  • 8.2 TruCluster File System Architecture
  • 8.2.1 Caché and CDSLs
  • 8.2.2 Remastering AdvFS Domains
  • 8.3 Planning a Tru64 Caché Cluster Installation
  • 8.4 Tuning a Tru64 Caché Cluster Member
  • Chapter 9: 
     
  • 9.1 Load-Balanced Cluster
  • 9.1.1 Setting Up a Load-Balanced Cluster
  • 9.2 Failover Cluster
  • 9.2.1 Setting Up a Failover Cluster
  • 9.3 Common Procedures
  • 9.3.1 Create a Cluster Group
  • 9.3.2 Create an IP Address Resource
  • 9.3.3 Create a Generic Service Resource
  • 9.3.4 Create a Generic Application Resource
  • 9.4 Resource Properties
  • 9.4.1 IP Address Properties
  • 9.4.2 Controller Properties
  • 9.4.3 Cube Properties
  • Chapter 10: 
     
  • 10.1 ECP Recovery
  • 10.2 ECP Recovery Guarantees
  • 10.2.1 In-order Updates Guarantee
  • 10.2.2 ECP Lock Guarantee
  • 10.2.3 Clusters Lock Guarantee
  • 10.2.4 Rollback Guarantee
  • 10.2.5 Commit Guarantee
  • 10.2.6 Transactions and Locks Guarantee
  • 10.2.7 ECP Rollback Only Guarantee
  • 10.2.8 ECP Transaction Recovery Guarantee
  • 10.2.9 ECP Lock Recovery Guarantee
  • 10.2.10 $Increment Ordering Guarantee
  • 10.3 ECP Connection Management
  • 10.4 ECP Recovery Limitations
  • 10.4.1 ECP and Clusters $Increment Limitation
  • 10.4.2 ECP Cache Liveness Limitation
  • 10.4.3 ECP Routine Revalidation Limitation
  • 10.4.4 Conflicting, Non-Locked Data Modification Breaks Transaction Rollback
  • 10.4.5 Kill Of Large Global Within a Transaction Breaks Transaction Rollback
  • 10.4.6 Journal Discontinuity Breaks Transaction Rollback
  • 10.4.7 ECP Can miss error after Recovery
  • 10.4.8 Partial SET/KILL leads to Journal Mismatch
  • 10.4.9 Loose Ordering in Cluster Failover or Restore
  • 10.4.10 Dirty Data Reads When Cluster Slave Crashes
  • 10.5 ECP and Clusters
  • 10.5.1 Client Fails
  • 10.5.2 Server Fails
  • 10.5.3 Network Is Interrupted
  • 10.5.4 Cluster as an ECP Database Server