Corrupted Table problem

> Hi, I have a table that seems to be corrupted badly. Can somebody give me
> some ideas as to how I should repair it? Any speculations as to what may
> have caused the situation? I appreciate it!
>
> Here is the verifydb report on that table:
>
> *************************************************
>     verifydb
>     15-Nov-1998 16:18:00
>     *************************************************
>     S_DU17FC_TABLE_PATCH_WARNING    WARNING:
>
>    VERIFYDB operation TABLE (or XTABLE) can result in loss of user data
when
>    run in any mode except REPORT.  It will also modify the table to a
heap
>    and remove all secondary indices on the table.  This program is
designed
> as
>    a last-ditch attempt to recover a user table.  It is intended only for
> use
>    by Computer Associates technical support representatives.
>    It is NOT supported.  You assume all risk if you use the program.
>
>    If you do use the TABLE or XTABLE operation, it is recommended that
you
>    backup the table's disk file before continuing.
>     S_DU04CB_START_TABLE_OP    VERIFYDB: beginning TABLE/XTABLE operation
> on table
>  stu_evt_txt from database sfaprod.
>      W_DM5031_MULT_REFERENCED_LEAF    WARNING:  BTREE leaf page 250715 is
> referenced more than once.
>      W_DM5033_CIRCULAR_LEAF_CHAIN    WARNING:  Page 250715 is referenced
> more than once due to a circular chain.
>  This means that dmf will start following a leaf page overflow chain, and
> will
>  get stuck in an endless loop because the chain points back to a page in
the
>  chain.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=0).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=1).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=2).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=3).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=4).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=5).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=6).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=7).
>  However, the specified tid does not exist in this file.
>      W_DM5042_NOT_DATA_PAGE      PAGE 284866 is a NOT a data page, but
> should be one.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 284866 references data
> page tid (page=284866, line=8).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=3).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=4).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=5).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=7).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=8).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=9).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=10).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=11).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=12).
>  However, the specified tid does not exist in this file.
>      W_DM503D_NO_SUCH_TID    WARNING:  Leaf page 230142 references data
> page tid (page=249527, line=13).
>  However, the specified tid does not exist in this file.
>      W_DM5030_NOT_LEAF_PG    WARNING:  Page 318094 should be a btree leaf
> page, but is not marked as one.
>      W_DM5019_LEAF_CHAIN_DUPLICATE    WARNING:  The leaf page sideways
> pointer chain is broken at leaf page # 250715.
>  This is because the chain points to an earlier member (ie, is circular)
>  or because it points to an unreferenced leaf page.  Neither case is
legal.
>      W_DM501B_UNREF_LEAF_FROM_CHAIN    WARNING:  About 55797 Leaf page(s)
> are not referenced in the leaf page sideways ptr chain.
>      W_DM500C_ORPHAN_DATA_PAGE    WARNING:  data page 42482 is an
unreferenced
> page (or orphan).  All data on this
>  page or any overflow pages chained to it is effectively lost.
>      W_DM500C_ORPHAN_DATA_PAGE    WARNING:  data page 42483 is an
unreferenced
> page (or orphan).  All data on this
>  page or any overflow pages chained to it is effectively lost.
>     S_DU04CC_TABLE_OP_DONE    VERIFYDB: TABLE/XTABLE operation on table
>  stu_evt_txt, database sfaprod is complete.
>
> Regards,
>
> Jim Yang
> SFA, Sask. Edu.
> Email: jim.yang@sasked.gov.sk.ca
> Tel.: (306) 787 - 2656 (O) / 584 - 3269 (H)


Hi Jim,

    Ohhh, this takes me back to a very unpleasant place.

    The last time I saw something like this we were also getting BAD_ATTRIBUTE
    and IDX_CHAIN_BROKEN errors as well. The former were the result of
    (believe this or not) the table description of iirelation being copied in
    to a data item in the table. an integer item (for example) on one row
    would suddently have its value reset to 'reltid ...'. We also got a few
    other unimpressive variations on the them.

    The corruptions occurred randomly and at very low frequency. We never
    worked out why this started occurring. In the end we transferred the
    databases to a new host and the problems went away.

    We found that BAD_ATTRIBUTE errors could be fixed by using the tid to
    exactly grab the errant row. Fortunatly in all cases we were able to
    deduce what the correct values for the corrupted data were.

    IDX_CHAIN_BROKENS and CIRCULAR_LEAF_CHAIN should be fixable by
    restructuring the table or remodifying any indexes! However, its a long
    time since then, and I suspect that before you do a restructure you should 
    do an ascii unload of the table. Try reloding the table to a dummy database
    and see if anything explodes during:

    a. The copy in
    b. The modify and indexing on the table.

    Then run verifydb on the table in the dummy database. See if this has
    fixed the problem. Remember that verifydb only reports really gross
    errors. Are there any other sanity checks you can run on the table to
    ensure the referential integrity of your database?

    If the table in the dummy database passes muster then you may as well
    simply restructure the table in the real database.

    Best of luck,

    Martin Bowes
Ingres Q & A
Back to William's Home Page

© William Yuan 2000

Email William