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、现在就可以正常收缩数据库及日志文件
小结:造成数据库不能收缩的原因很多,这只是其中的一个原因。查询数据库状态找到病症,才能对症下药。
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、现在就可以正常收缩数据库及日志文件
小结:造成数据库不能收缩的原因很多,这只是其中的一个原因。查询数据库状态找到病症,才能对症下药。
相关文章推荐
- 修改SQLServer2008数据库文件名称(数据文件和日志文件)
- 【转】moss数据库日志文件过大--- 无ldf文件情况下恢复数据库数据纪实
- 数据库日志文件已满或过大的解决办法。
- sql点滴39—解决数据库日志文件过大的问题
- ms sql server 2005数据库日志文件过大,需要清除或者清空
- sql点滴39—解决数据库日志文件过大的问题
- 网站添加数据出错,原来是MS SQL Server2008日志文件占据空间过大导致的
- 数据文件、日志文件、归档文件、控制文件、参数文件及RMAN备份数据库信息查询
- SQL SERVER 2008 只有数据文件,没有日志文件,恢复数据库步骤
- 网站添加数据出错,原来是MS SQL Server2008日志文件占据空间过大导致的
- 自己编写的一个程序:读取XML格式的日志文件,并以一定的数据写入数据库中
- sqlserver2008 事务日志物理文件过大无法缩小 分析
- SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
- SQL Server日志文件过大 大日志文件清理方法 不分离数据库
- SQL Server日志文件过大 大日志文件清理方法 不分离数据库
- SQL Server 查看某一个数据库数据文件和日志文件大小
- 数据库清除日志文件(LDF文件过大)
- 创建数据库时对日志文件数据文件的配置
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- sql点滴39—解决数据库日志文件过大的问题