故障处理记录-tempdb太大引起磁盘容量不足的处理(更新ing)

上班时候遇到的问题,系统在进行某操作的时候报错,按习惯查看数据库错误日志发现是磁盘无法写入,直接登录数据库服务器,果然C盘是被占满了只有9M剩余,查找文件发现原因在于这个tempdb达到了21G。

当时有想到的方案是:

1、收缩数据库,不知道时间多长不知道会有什么影响,放弃

2、清理日志,但日志清了也只有2G空间,清空的时间也不好说,说不定清完再飚上来,放弃

3、重启服务,一般会初始化成几M大小,但也有可能还是一样大,而且不知道重启后恢复会不会有问题,时间多长,会不会有其他什么影响,放弃;

4、重启服务器,以前也有过宕机无法远程所以重启,采用后tempdb确实初始化了

重启服务器无效的备用方案:把tempdb转移到空间较大的分区(后来查了一下一样也要停止服务来修改再启动服务)

具体方法:检查tempdb的逻辑名字和位置:

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');

停止服务,记录下数据库文件的位置,然后打开目录复制数据库相关文件到新的位置,移动也可以,执行以下脚本:

USE master;
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\tempdb\tempdb.mdf');
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'D:\tempdb\templog.ldf');
GO

NAME = tempdev,NAME = templog 是逻辑名,FILENAME 指向的是数据库文件的实际位置

最后检查tempdb移动是否成功:

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');

回头会学习一下前3种操作方式的影响和如何确定tempdb增长的原因,再做记录

转载于:https://www.cnblogs.com/shadow-ccos/p/5304106.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值