ChapterA 11.A Maintaining Database Integrity

Revision History
Revision V7.1-00219 September 2023
Revision V7.0-00124 November 2021
Revision V7.0-00012 February 2021
Revision V6.3-01330 June 2020
Revision V6.3-01031 October 2019
Revision V6.3-00626 October 2018
Revision V6.3-00503 July 2018
Revision V6.3-00423 March 2018
Revision V6.3-00120 March 2017

Contents

Verifying Database Integrity
Regularly Scheduled Verification
Before or After Major Transfers
Immediately after Catastrophic Events
Immediately after Run-Time Database Errors
Immediately After Database Repairs
Approaches to Database Recovery
Recover from Journals
Restore from Backup
Repair with DSE
Preventive Maintenance
Repairing the Database with DSE
Using the Proper Database File
Locating Structures with DSE
Safety in Repairs
Discarding Data
Concurrent Repairs
Terminating Processes
Recovering data from damaged binary extracts
Finding and Fixing Database Errors
C1a??Possible Cache Control Problems
H1a??Process Hangs
H3a??Database Access Problems
H4a??Database Cache Problems
H5a??Critical Section Problems
H6a??UNIX Problems
H7a??Disk Hardware Problems
H8a??Application Problems
I1a??MUPIP INTEG Errors
MUPIP INTEG Error Classification Table
I2a??GT.M Version Mismatch
I3a??File Header Errors
I4a??File Size Errors
I5a??More Database Access Problems
I6a??Transient Errors
I7a??Database Rundown Problem
I8a??Repair-Induced Problems
K1a??Bad Key
K2a??Keys Misplaced
K3a??Block Doubly Allocated
K4a??Pointer Problems
K5a??Star Key Problems
K6a??Compression Count Error
K7a??Key Warning
M1a??Bitmap Errors
M2a??Bitmap Header Problems
O1a??Bad Block
O2a??Record Errors
O3a??Data Block Errors
O4a??Salvage of Data Blocks with Lost Indices
O5a??Salvage of a damaged spanning node
O6a??Block Size Errors
P1a??Process Damage
Q1a??Restricting Database Access
R1a??GT.M Run-Time Errors
R2a??Structural Database Integrity Errors
Run-Time Database Restart Codes
R3a??Run-time Database Cache Problems
R4a??Stopped Processes
R5a??No More Room in the File
R6a??GTMASSERT and GTMCHECK Errors
R7a??Interlocked Queue Hardware Problems
R8a??Database Tree Maximum Level Exceeded
R9a??Read-only Process Blocked

This chapter discusses GT.M methods for maintaining data availability and integrity.

A database that has GDS integrity may not be consistent from the application data point of view. That is, certain types of failures that do not damage the GDS database structures may cause logical transactions (consisting of multiple database updates within an application) to stop in an "illogical" state with some, but not all, of the updates in place. Transaction processing and database journaling are good methods for maintaining application data consistency. For more information on transaction processing, refer to the "General Language Features of M" and "Commands" chapters of the GT.M Programmer's Guide. For more information on journaling, refer to the "GT.M Journaling" chapter of this manual.

Maintaining database integrity is integral to GT.M operation; you should seldom, if ever, need the material in this chapter, especially if you use journaling. However, databases can be corrupted by unusual events such as hardware failures, sudden loss of power, operating system failure, or improper operator action. All such events should be followed with database integrity checks.

The chapter describes the following:

  • Suggested times to use MUPIP INTEG for verifying database integrity

  • Recommended methods for handling database problems

  • General techniques and strategies for using DSE

  • Instructions for identifying and repairing errors with DSE

loading table of contents...