SQL2008 的收缩日志?
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:
(SQL2005)
BackupLog?DNName?with?no_log
go
dumptransaction?DNName?with?no_log
go
USE?DNName?
DBCC?SHRINKFILE (2)
Go
--------------------------------------------------------------
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
方案一:完全命令模式
USE[master]
????GO
????ALTERDATABASE?DNName?SET?RECOVERY SIMPLE?WITH?NO_WAIT
????GO
????ALTERDATABASE?DNName?SET?RECOVERY SIMPLE???--简单模式
????GO
????USE?DNName?
????GO
????DBCC?SHRINKFILE (N'DNName_Log'?,?11, TRUNCATEONLY)
????GO
????USE[master]
????GO
????ALTERDATABASE?DNName?SET?RECOVERY?FULLWITH?NO_WAIT
????GO
????ALTERDATABASE?DNName?SET?RECOVERY?FULL??--还原为完全模式
????GO
方案二:图形化操作(单个数据库)
1. 把数据库改为简单模式
2. 右键数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至**M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了(建议在200~300M,以防止需要恢复使用)
3. 还原为完全模式
?