patternsqlMinor
tempdb in sql server
Viewed 0 times
sqltempdbserver
Problem
Using SQL Server 2000, I am getting the following error.
The log file for database 'tempdb' is full. Back up the transaction log for the database to free up some log space."
How to solve it? I am unable to take backup of tempdb.
I have tried all the options like :
The log file for database 'tempdb' is full. Back up the transaction log for the database to free up some log space."
How to solve it? I am unable to take backup of tempdb.
I have tried all the options like :
- backup log tempdb with
truncate_only
- dump tran tempdb with
no_log;
- shrink the database.
Solution
You may want to consider just setting the Recovery Model for tempdb to
MSDN: http://msdn.microsoft.com/en-us/library/ms175527.aspx
EDIT
According to the documentation, for SQL Server 2005 - 2008 R2, tempdb cannot be backed up and should always be set to the
EDIT 2
Just to be certain that the recovery model for tempdb is set to Simple, execute the following stored procedure:
Check the results for
If it does, then your problem may be related to the operations you are performing. Are you trying to transactionally write to a temp table? Do you have open transactions that are not getting closed? Is there one operation in particular that is crashing, or does everything not work? You may want to check the answers to this similar question on serverfault for some more ideas. Long story short, if you're still getting this error after setting the Recovery Model to Simple I would start looking at the operations you're trying to perform as a possible culprit.
EDIT 3
From the output of
You could try increasing the log file size to see if that helps.
Simple. That should get you around the problem you are having as it will reclaim all of the space used in the transaction log for tempdb. The MSDN documentation also suggests setting the Recovery Model for tempdb to Simple for performance reasons.MSDN: http://msdn.microsoft.com/en-us/library/ms175527.aspx
EDIT
According to the documentation, for SQL Server 2005 - 2008 R2, tempdb cannot be backed up and should always be set to the
Simple recovery model. If for some reason you are not using the Simple recovery model for tempdb, I would suggest switching to it.EDIT 2
Just to be certain that the recovery model for tempdb is set to Simple, execute the following stored procedure:
sp_helpdbCheck the results for
tempdb, and make sure the status column for tempdb shows something like:Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, ...If it does, then your problem may be related to the operations you are performing. Are you trying to transactionally write to a temp table? Do you have open transactions that are not getting closed? Is there one operation in particular that is crashing, or does everything not work? You may want to check the answers to this similar question on serverfault for some more ideas. Long story short, if you're still getting this error after setting the Recovery Model to Simple I would start looking at the operations you're trying to perform as a possible culprit.
EDIT 3
From the output of
DBCC SQLPERF (LOGSPACE) it appears that your tempdb log file is only 1.24 MB, which seems unnecessarily small to me. You can increase the size of the log file by using Enterprise Manager, or you should be able to use the following SQL (although you might need to look up the log file name by checking the files on tempdb):ALTER DATABASE tempdb MODIFY FILE (NAME = templog, SIZE = 50MB)You could try increasing the log file size to see if that helps.
Code Snippets
Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, ...ALTER DATABASE tempdb MODIFY FILE (NAME = templog, SIZE = 50MB)Context
StackExchange Database Administrators Q#11284, answer score: 4
Revisions (0)
No revisions yet.