解决:“由于最小日志空间要求,无法收缩日志文件”
来源:互联网 发布:网络问卷调查技巧 编辑:程序博客网 时间:2024/06/01 07:20
报表库, SQL Server2005 , 恢复模式为“简单日志”, 日志太大D盘爆盘了。
1. 先截断日志:
--注:设定为当前数据库declare @dbName nvarchar(100)set @dbName=db_name()--清空日志 DUMP TRANSACTION @dbName WITH NO_LOG --截断事务日志 BACKUP LOG @dbName WITH NO_LOG
2. 再收缩日志:
dbcc shrinkfile(2, 0, TRUNCATEONLY)
无效!一直提示:“由于最小日志空间要求,无法收缩日志文件”
3. 清除所有进程:
--注:必须设置好当前库,只在当前库上执行!无需改任何参数! --1. 杀当前进程之外的所有进程 DECLARE @sql NVARCHAR(MAX),@currDbName NVARCHAR(100) SET @currDbName=DB_NAME() SELECT @sql=REPLACE( (SELECT 'kill '+CAST(spid AS NVARCHAR(50))+';' FROM sys.sysprocesses WHERE dbid=DB_ID(@currDbName) AND spid!=@@SPID AND spid>50 FOR XML PATH('')) ,';',' ') PRINT @sql EXEC (@sql)
当然, 这个只是并不算太重要的库, 可以这么简单粗暴。
如果是比较重要的库, 应该执行以下脚本看下日志不能收缩的原因:
--提供有关所有数据库中的事务日志空间使用情况的统计信息。dbcc sqlperf(logspace)--日志信息DBCC loginfo() --Status=2则为活动--日志无法重用的原因select name, recovery_model_desc,log_reuse_wait,log_reuse_wait_desc from sys.databases d--最早的活动事务DBCC OPENTRAN () --括号内加上数据库名称,如果选定为当前库可以为空
查看当前正在运行的任务(有时即使是kill, 也需要时间来回滚)大约还需要多久才能完成
SELECT DB_NAME(er.[database_id]) [DatabaseName] ,er.[command] AS [CommandType],CONVERT(DECIMAL(5, 2), er.[percent_complete]) AS [Complete_Percent],er.start_time,CONVERT(DECIMAL(38, 2), er.[total_elapsed_time] / 60000.00) AS [ElapsedTime_m] ,CONVERT(DECIMAL(38, 2), er.[estimated_completion_time] / 60000.00) AS [EstimatedCompletionTime_m],CONVERT(DECIMAL(38, 2), (er.[total_elapsed_time] / 60000.00 * ((100-er.[percent_complete])/er.percent_complete))) AS [EstimatedCompletionTime_m2]FROM sys.dm_exec_requests AS er WHERE 1=1--and DB_NAME(er.[database_id]) in ('dbName')and er.[percent_complete] >0--and er.[command] in ('RESTORE DATABASE' ,'BACKUP DATABASE','BACKUP LOG','RESTORE LOG')order by er.start_time desc
特别注意:
不要重启SQL Server服务, 重启服务后会导致大事务回滚时的数据库处于“正在恢复”, 这种更麻烦(没办法看到进度), 事务回滚不结束数据库还是用不了。
其它另见:
点击打开链接
0 0
- 解决:“由于最小日志空间要求,无法收缩日志文件”
- 解决sql 2008 事务日志收缩与截断无法减小日志物理文件的方法
- 解决sql 2008 事务日志收缩与截断无法减小日志物理文件的方法
- 数据库日志无法收缩
- 收缩日志文件
- 收缩mssql日志文件
- mssqlserver2008 收缩日志文件
- 收缩日志文件
- MSSQL收缩日志文件
- Sql数据库收缩日志文件.收缩数据库
- 收缩SQL数据库日志文件
- 数据库日志文件的收缩
- 收缩数据日志文件命令
- 收缩SQL数据库日志文件
- 收缩SQL数据库日志文件
- 收缩日志文件的脚本
- sqlserver日志文件的收缩
- 自动 收缩数据库日志文件
- Java千百问_08JDK详解(002)_jdk工具集都有什么
- Windows软件安装包制作工具汇总
- 创建repository上传到github以及基本操作
- Distinct binary strings of length n with no consecutive 1s
- JAVA初级掌握的J2SE知识(一)
- 解决:“由于最小日志空间要求,无法收缩日志文件”
- JAVA初级掌握的J2SE知识(二)和Java核心的API
- [leetcode] 76. Minimum Window Substring 解题报告
- Java千百问_01基本概念(008)_jar是什么
- leetcode #82 in cpp
- OpenGL ES 1.0与OpenGL ES 2.0投射和摄像视角代码区别
- Error when loading the SDK:发现以元素 'd:skin' 开头的无效内容
- part2.内存管理先导知识
- 勾股定理一日一证连载18