您的位置:首页 > 数据库

sqlserver2008 tempdb数据库数据和日志文件过大

2018-02-11 15:40 281 查看
    今天早上服务器预警,显示空间不足。检查服务器发现tempdb系统数据库占用了大量的控件,日志文件就占用了50G。
1、首先通过系统自带的收缩工具收缩数据库,不起作用。(数据库—右键—任务—收缩—文件)
2、查询数据库当前的活动状态 USE [master]
SELECT [name] ,[database_id] ,[log_reuse_wait] ,[log_reuse_wait_desc] FROM [sys].[databases] WHERE name ='tempdb'结果如下:



结论:事务处于活动状态
3、查询虚拟文件信息 USE tempdb
DBCC LOGINFO('tempdb')结果如下:



结论:存在大量使用中的虚拟文件(status :2)
4、查询并杀掉正在运行的事务USE master

SELECT '正在运行事务的会话的ID' = session_id ,
'事务的 ID' = transaction_id
FROM sys.dm_tran_session_transactions --会话中的事务,识别所有打开的事务
WHERE is_user_transaction = 1

KILL 正在运行事务的会话的ID5、现在就可以正常收缩数据库及日志文件

小结:造成数据库不能收缩的原因很多,这只是其中的一个原因。查询数据库状态找到病症,才能对症下药。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐