TEMPDB空间已满

数据库tempdb在运行过程中主要会遇到2种报错:
1.tempdb空间已满
2.tempdb日志已满

正常情况下,tempdb空间及日志使用率会自动收缩,不需要我们定期收缩。但有些时候,效率较差的SQL语句调用较多的临时表运行较长时间,或部分连接占用临时表空间,长期没有释放,导致tempdb一直处于ACTIVE_TRANSACTION状态,tempdb就无法自动收缩。若设置了告警,则会收到tempdb使用率超过阈值的告警信息,此时就需要DBA进行干预。

使用关键词‘tempdb is full’进行搜索,解决方案大致分为3种:
1.shrink tempdb file
2.expand tempdb file
3.restart sqlserver

  1. 收缩文件:
    --查看数据库文件
    Select NAME,size From sys.database_files WITH(NOLOCK)
    --收缩指定的数据库文件
    DBCC SHRINKFILE(N'templog' , 10,TRUNCATEONLY) 

数据库在处于活动事务状态时,无法收缩,且在数据库日志已满的情况下,无法进行收缩行为。

  1. 扩大文件
      alter database tempdb modify file(name ='N'templog',size=target_size_in_mb)
      alter database tempdb modify file(name ='N'templog',MAXSIZE=unlimited)
      alte
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值