SQL SERVER TEMPDB滿的處理

现象:

进行查询等操作时,提示““The log file for database 'tempdb' is full.Back up the transaction log for the database to free up some  log  space.

进入企业管理器查看,database下显示no items,看不到任何数据库信息。

使用查询分析器
     use tempdb
     select * from tempdb.dbo.sysfiles

可以看到tempdb数据文件和日志文件信息,发现这两个档都在C盘。查看C盘发现只剩下700M空间,而tempdb 日志文件是10%增长,不限制增长大小,目前已有20G。按目前大小,一次增长10%,需要2G,而C盘剩余空间不足2G,不够扩展。

 

考虑以下几种解决方案:

解决方案1重启SQL SERVER,会自动释放资源。因为重启SQL SERVER时,会重构tempdb数据库,即:tempdb数据库中的数据全部丢失。如果tempdb中有大量数据的话,也要备份后重启。

2增加一个日志文件到其它盘

Alter database tempdb add log file ( NAME='templog1', FILENAME ='d:\SQLDATA\tempdb_log_1.ldf')  

3tempdb数据库的日志文件改大一点,如果日志文件所在的磁盘空间足够的话。(适用于限制档大小的情况)  
  USE   master  
  GO  
  ALTER   DATABASE   tempdb    
  MODIFY   FILE  
        (NAME   ='templog',  
        SIZE   =   XXXX)  
  GO

4清空日志

dump transaction tempdb with no_log
dbcc shrinkfile ('templog',1)

执行完后,我们可以再通过sp_helpdb tempdb查看一下tempdb状态。如果tempdb可用的话,我们就可以在企业管理器中看到DATABASE信息,也可以执行增删查改动作了。

 

数据文件和日志文件放在系统盘下不太好,我们可以将tempdb的数据文件和日志移到D盘下面:

Use master

Alter database tempdb modify file (NAME='TEMPDEV',FILENAME='D:\SQLDATA\TEMPDB.MDF');

GO

Alter database tempdb modify file (NAME='TEMPLOG',FILENAME='D:\SQLDATA\TEMPLOG.LDF');

GO

 

The file "TEMPDEV" has been modified in the system catalog. The new path will be used the next time the database is started.

The file "TEMPLOG" has been modified in the system catalog. The new path will be used the next time the database is started.

 

关闭SQL SERVER

C盘下面的文件移到目标文件夹

开启SQL SERVER

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10640532/viewspace-600822/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10640532/viewspace-600822/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值