CHECKTABLE UTILITY -- ERROR

Database
Enthusiast

CHECKTABLE UTILITY -- ERROR

To the GURU's of TD:

while iam running the check table utility i got the following error:
check dbc at level three skiplocks priority=h error only;

CHECKTABLE will run in Perf Group: H

Check beginning at 17:20:43 09/04/03.

Data dictionary check started at 17:20:43 09/04/03.
2788: Table header not found for table.
Table id 0000H 0A2DH
Header missing on all AMPs

1 error(s) reported for Data Dictionary check.


I would like to know how to relate the table id 0000H 0A2DH with the table name and this being one of the dbc table how do i carry out the rebuild. \

Many Thanks
TD_DBA
3 REPLIES
rgs
Enthusiast

Re: CHECKTABLE UTILITY -- ERROR

You told it not to place any locks. It checks the dictionary for consistency first. It found a table {0, A2D} hex that had an entry in TVM but there were no table headers for it on any of the AMPs. My guess is because you did not place the locks you caught it when it had updated the dictionary table (TVM) with a new table that was just being created on the system, but it did not get to the point of creating the table headers yet.

A2D hex is not a dictionary table. It is a user table (2605 decimal). Dictionary table IDs don’t go that high.

To find the table name:

select tvmid, tvmname from dbc.tvm where ‘00002D0A0000’xb = tvmid;

You have to swap bytes. If the table id from checktable was AABBH CCDDH you would have to specify:
‘BBAADDCC0000’xb
Enthusiast

Re: CHECKTABLE UTILITY -- ERROR

Thanks for your reply . I was able to get the tablename and indeed it was not a system table.
actually i remembered i created a table with Unicode definition and that table created the problem.
anyways i was able to move forward.

Regards
TD_DBA
Enthusiast

Re: CHECKTABLE UTILITY -- ERROR

I know its too late to comment for this post. But I am adding my comment for those who look for some help in finding the tables with missing header:

        SELECT databasename,TableName

        FROM DBC.tables   

        where tablekind='t'

        and databasename<>'dbc'

        minus

        SELECT databasename,TableName

        FROM DBC.TableSize

        group by 1,2;