【www.bbyears.com--班主任工作总结】
由于SQL2008对文件和日志管理进行了优化,所以在SQL2000和2005中可以运行的如下命令,但在SQL2008中不支持no_log清空日志。
1.清空日志
代码如下DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
代码如下BACKUP LOG 库名 WITH NO_LOG
SQL 2008收缩清空日志方法:
1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了。
1).选择数据库–属性—选项—恢复模式–选择简单。
2).收缩数据库后,再调回完整。
2.可以用命令直接操作
:
清空日志
-- set the database SIMPLE model.
ALTER DATABASE 数据库库名称 SET RECOVERY SIMPLE; GO
--Shrink the truncated log file to 2M
DBCC SHRINKFILE (日志名称, 2); GO -- Reset the database recovery model. ALTER DATABASE 库名称 SET RECOVERY FULL; GO
在当前数据库下:
select fileid,groupid,name from sysfiles where groupid=0
得到以下结果:
fileid groupid name
2 0 test123_log
其中fileid为日志文件ID,name为日记名称test123_log
在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
方案二:部分命令模式 + 任务-收缩-文件(单个数据库)
代码如下ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
右键-任务-收缩-文件-确定 下来数据库的日志只保留了1M
ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。