您的位置:首页 > 数据库

SQL Server 2008 收缩清空大日志文件方法总结

2015-07-05 15:56 375 查看
本文章来给大家总结一下关于SQL Server 2008 收缩清空大日志文件方,有需要了解SQL2000和2005中清空大日志文件的同学可进入参考参考。

由于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的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内

即可完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: