Using MUPIP INTEG

MUPIP INTEG verifies the integrity of GDS database files. INTEG reports errors as it finds them. At the end of the error report there is summary information, including the total number of errors. After the error report, INTEG provides statistics on the index and data portions of the database. The examples in this section illustrate different types of INTEG reports. For additional information about INTEG error reports, refer to the GT.M Message and Recovery Procedures Reference Manual.

INTEG requires exclusive access to the database file when used with the -REGION qualifier. In the following examples, MUPIP is an alias for $ $gtm_dist/mupip.

Example:

        MUPIP> integ simple.dat
        No errors detected by integ.
        Type    Blocks  Records     %Used    Adjacent
        Directory   2       11      6.835          NA
        Index      10       10      1.367           1
        Data       10       10      2.109           2
        Free       78       NA         NA          NA
        Total     100       31         NA           3
       

INTEG -REGION uses a Global Directory and takes region-name(s) as its parameter(s). This form of the MUPIP INTEG command permits the use of lists and wildcards to identify multiple databases. It also permits the INTEG to operate without exclusive access to the file(s). While INTEG -REGION does not require exclusive access, it prevents updates for the duration of its processing.

Example:

       MUPIP> integ -region DEFAULT
       Integ of region DEFAULT
       No errors detected by integ.

       Type      Blocks      Records     % Used      Adjacent
       Directory   2           11          6.835       NA
       Index      10           10          1.367        1
       Data       10           10          2.109        2
       Free       78           NA            NA        NA
       Total     100           31            NA         3
      

MUPIP INTEG -FAST verifies only the index and map portions of the file. Because these parts are relatively small, but crucial to proper operation, INTEG -FAST provides a quick way to determine if the file can support updates without danger of increasing damage.

Example:


        MUPIP> integ -fast simple.dat
        No errors detected by fast integ.

        Type        Blocks      Records     % Used      Adjacent
        Directory       2           11       6.835          NA
        Index          10           10       1.367           0
        Data           10           NA          NA          NA
        Free           78           NA          NA          NA
        Total         100           NA          NA           0
      

When INTEG discovers a problem, the system displays a descriptive error message and a location (giving a block number). The system displays the offset of the error within the block in the following format:

       block:offset Level
       bbb:ooo 111 error-message
       Directory Path: bbb:ooo...
       Path: bbb:ooo...
       Keys from kkk to kkk are suspect.
       

where bbb is a hexadecimal block number, ooo is a hexadecimal offset within a block, lll is a decimal level (refer to the "Greystone Database Structure" chapter for information on block levels), and kkk is an M global variable name or "the end" as text. The block for errors related to the file header provides no additional information and always appears as zero (0). The offset for errors not related to a record provides no additional information and always appears as zero (0). The sequence of pointers from the root block to any block forms its path.

Example:

       MUPIP> integ -region DEFAULT
       Integ of region DEFAULT
       Block:Offset level
                10:7        1        Keys out of order.
                                        Directory Path: 1:7, 2:30
                                    Path: 11:7, 10:7
       Total error count from integ:
       Type    Blocks      Records     % Used      Adjacent
       Directory   2           11       6.835          NA
       Index      10           10       1.367           1
       Data       10           10       2.109           2
       Free       78           NA          NA          NA
       Total     100           31          NA           3
       %GTM-E-INTEGERS, Database integrity errors
       $