Re: Sysindex table problems

From: Paul S Randal [MS] (prandal_at_online.microsoft.com)
Date: 10/04/04


Date: Mon, 4 Oct 2004 12:26:39 -0700

The 8968 would also do it. So, yes, you hit exactly the problem I described
in my previous email. If you can run a clean DBCC CHECKALLOC then its gone
away with the last shrink otherwise you'll need to run repair as I described
(on CHECKALLOC, not CHECKTABLE).

AS some background, the reason this single error causes so many reported
errors is due to the way the consistency cheks work. The bad IAM page is
part of the text IAM chain for sysindexes. When the bad IAM page is
encountered, none of the pages for that IAM chain are processed and so all
the text objects contained within the IAM chain show up as broken.

Regards.

-- 
Paul Randal
Dev Lead, Microsoft SQL Server Storage Engine
This posting is provided "AS IS" with no warranties, and confers no rights.
<anonymous@discussions.microsoft.com> wrote in message
news:386f01c4aa41$d0cdc940$a401280a@phx.gbl...
> We did not find error 8964 in the error log or output of
> the maintenance job for the database.
>
> Below is what we see:
>
> The integrity check part of the database weekly
> maintenance plan returned the following results:
> [Microsoft][ODBC SQL Server Driver][SQL Server]CHECKDB
> found 1 allocation errors and 7533 consistency errors in
> table 'sysindexes'
>
> When we run:
> DBCC CHECKTABLE (db.dbo.sysindexes, repair_allow_data_loss)
>
> we got back "found 7453 errors and repaired 0 errors."
>
> Late last night I decided to run the db optimization part
> of the weekly maintenance plan hoping that having it try
> to clean-up the pages and indexes would fix the issue
> below is what we for back:
>
> [1] Database database: Index Rebuild (leaving 10%% free
> space)...
> - this ran for Execution Time: 7 hrs, 13 mins, 36 secs
> (its a 184gig DB)
>
> [2] Database database: Removing unused space from the
> database files (if database size is more than 65000 MB).
> Reducing free space to 10 percent of data...[Microsoft SQL-
> DMO (ODBC SQLState: 42000)] Error 8968: [Microsoft][ODBC
> SQL Server Driver][SQL Server]Table error: IAM page
> (1:4560407) (object ID 2, index ID 255) is out of the
> range of this database.
> Deleting old text reports...    1 file(s) deleted.
>
> End of maintenance plan 'database Maintenance Plan' on
> 10/4/2004 6:44:47 AM
> SQLMAINT.EXE Process Exit Code: 1 (Failed)
>
> But now when I run
> DBCC CHECKTABLE (db.dbo.sysindexes)
>
> we get no errors - it looks fine/normal
>
> could and would the optimization job fix this problem??
>
>
> >-----Original Message-----
> >Please check the CHECKDB output for a single 8964 error.
> If there is one,
> >this is likely caused by a known (benign) bug in DBCC
> SHRINKDATABASE that
> >very rarely occurs and causes this error. If there is
> one, you should be
> >able to run DBCC CHECKALLOC WITH REPAIR_ALLOW_DATA_LOSS
> (it will not lose
> >any data) to fix the 8964 error. After that is fixed, the
> 8929 errors should
> >disappear. No guarantees here, but it seems likely this
> is what you have
> >hit.
> >
> >If you're uncomfortable doing this, you should call PSS
> and explain that
> >you've been told by me that the symptoms look like the
> problem in
> >SRX020812600531.
> >
> >Please let me know how you get on.
> >
> >Regards.
> >
> >-- 
> >Paul Randal
> >Dev Lead, Microsoft SQL Server Storage Engine
> >
> >This posting is provided "AS IS" with no warranties, and
> confers no rights.
> >
> >"Chester" <anonymous@discussions.microsoft.com> wrote in
> message
> >news:40be01c4aa1e$ac1d5200$a601280a@phx.gbl...
> >> We are running SQL2000 and encountered over 7000 errors,
> >> similar
> >> to those below, when running CHECKDB.
> >>
> >> DBCC results for 'sysindexes'.
> >> Server: Msg 8929, Level 16, State 1, Line 1
> >> Object ID 2: Errors found in text ID 196608 owned by
> data
> >> record identified by RID = (1:24:1) id = 1 and indid =
> 2.
> >> Server: Msg 8929, Level 16, State 1, Line 1
> >> Object ID 2: Errors found in text ID 262144 owned by
> data
> >> record identified by RID = (1:24:2) id = 1 and indid =
> 3.
> >> Server: Msg 8929, Level 16, State 1, Line 1
> >> Object ID 2: Errors found in text ID 12517376 owned by
> >> data record identified by RID = (1:24:3) id = 2 and
> indid
> >> = 1.
> >>
> >> Is there a way to fix the sysindexes table without
> doing a
> >> restore?
> >> Would trying to run DBCC DBREINDEX('sysindexes') help?
> >>
> >> TIA.
> >
> >
> >.
> >


Relevant Pages

  • Re: Disaster freeing space in 200GB database
    ... Run DBCC UPDATEUSAGE to make sure you are seeing accurate information. ... DBCC SHRINKFILE since it gives me a finer degree of control. ... Senior Database Administrator ... data file increased by the amount of data deleted. ...
    (microsoft.public.sqlserver.server)
  • Re: Checkpoint SPID Blocked
    ... > CheckDB and DBCC Checkalloc didn't turn up any allocation errors. ... really need to run DBCC CHECKDB on this database. ... We have a situation where the checkpoint process ... I'd like the problem to go away for good without requiring a restart ...
    (microsoft.public.sqlserver.server)
  • EXCEPTION_ACCESS_VIOLATION Error
    ... One of our clients is using SQL7/SP4 and their database is working correctly ... DBCC CheckDB at our office produces the following: ... DBCC results for 'JagTrain'. ...
    (microsoft.public.sqlserver.server)
  • Re: Checkpoint SPID Blocked
    ... really need to run DBCC CHECKDB on this database. ... I have a nifty problem with SQL 7.0. ... We have a situation where the checkpoint process is hung waiting on a pagiolatch_sh to release for a page that doesn't exist. ... DBCCCheckDB and DBCC Checkalloc didn't turn up any allocation errors. ...
    (microsoft.public.sqlserver.server)
  • Re: LOG Device Corrupted
    ... Check the documentation for the correct DBCC ... It seems your old database have mutiple LDF files. ... Stop sql server and rename the existing MDF to a new one and copy the ... Now execute the undocumented DBCC to create a log file ...
    (microsoft.public.sqlserver.server)