Solved

SQL Server database maint plan is failing during integrity check

Posted on 2007-12-05
10
845 Views
Last Modified: 2008-09-08
One of my maintenance plans is failing consistantly.  The db in question is on a drive with 175 GB of free space.  I have pasted the text from my log.  The failed job is the User DB integrity check.  

Any suggestions will be appreciated.    

Here is the info from my log file.....

[2] Database IMAGEDB: Check Data and Index Linkage...
[Microsoft SQL-DMO (ODBC SQLState: 42000)] Error 1105: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not allocate space for object '(SYSTEM table id: -391805569)' in database 'TEMPDB' because the 'DEFAULT' filegroup is full.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKTABLE terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is corrupt. Check previous errors.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKDB found 0 allocation errors and 1 consistency errors in database 'IMAGEDB'.
[Microsoft][ODBC SQL Server Driver][SQL Server]repair_fast is the minimum repair level for the errors found by DBCC CHECKDB (IMAGEDB ).

    The following errors were found:

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not allocate space for object '(SYSTEM table id: -391805569)' in database 'TEMPDB' because the 'DEFAULT' filegroup is full.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKTABLE terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is corrupt. Check previous errors.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object.
[Microsoft][ODBC SQL Server Driver][SQL Server]CHECKDB found 0 allocation errors and 1 consistency errors in database 'IMAGEDB'.
[Microsoft][ODBC SQL Server Driver][SQL Server]repair_fast is the minimum repair level for the errors found by DBCC CHECKDB (IMAGEDB ).
    ** Execution Time: 1 hrs, 48 mins, 55 secs **
0
Comment
Question by:ispexpert
  • 4
  • 4
10 Comments
 
LVL 8

Expert Comment

by:i2mental
ID: 20412445
It looks like the filegroup for TEMPDB is full and not set to autogrow. Right click on the tempdb, select properties. In the files section, check the autogrowth column for the data file in the primary file group. Edit that for more space or to automatically grow.
0
 

Author Comment

by:ispexpert
ID: 20412461
It is set to autogrow by 10%.  Do I need to change that to a particular size in MB?
0
 
LVL 8

Expert Comment

by:i2mental
ID: 20412489
No, 10% should be fine. Is that file on the drive that has free space? You mentioned 175gb of space, but that's not necessarily where the tempdb is as well.
0
Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

 

Author Comment

by:ispexpert
ID: 20412546
Yes, tempdb is on the F: drive where there is 175 GB free.
0
 
LVL 8

Expert Comment

by:i2mental
ID: 20412683
Well the message is pretty specific. It's saying that you've run out of space in the tempdb. That can either be because the file is not set to grow, so the space within the file actually fills up or because the hard disk is out of space so when it tries to grow, there is no room left. If all of the files in the tempdb are set to autogrow and those file reside on a disk with plenty of space... then that's strange.

It's failing on a DBCC CHECKTABLE command, but I can't tell what the table name it's checking is.

You can run DBCC CHECKTABLE ('tablename') WITH ESTIMATEONLY to determine how much space this process will need in the tempdb and make sure that it can get that space. You'll have to determine which table is being processed or look at them all if there are not too many.

You can do the same thing with DBCC CHECKDB WITH ESTIMATEONLY
0
 

Author Comment

by:ispexpert
ID: 20412806
I'm not sure how to find out which table is being processed so I was going to run this command against all the tables in tempdb.  I get an error in query analyzer saying estimateonly is not a recognized option.  
0
 

Author Comment

by:ispexpert
ID: 20412897
I have looked in the application event log only to find that the events from 12/2/07 (the day of failure) have been overwritten.  
0
 
LVL 8

Accepted Solution

by:
i2mental earned 500 total points
ID: 20413134
the dbcc commands are actually being run on the  on the IMAGEDB database so that's where you should run your estimates. The DBCC command just leverages the tempdb while it's working. It's running out of working space.

The command for sql server 2000 should be

USE IMAGEDB
DBCC CHECKDB WITH ESTIMATEONLY

or

USE IMAGEDB
DBCC CHECKTABLE ('yourtablename') WITH ESTIMATEONLY

0

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now