码迷,mamicode.com
首页 > 数据库 > 详细

sql server 2012 如何收缩事务日志

时间:2015-12-22 19:24:44      阅读:445      评论:0      收藏:0      [点我收藏+]

标签:

sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG   语句 

BACKUP Log zxta with no_log

截断事务日志 sql2008 提示错误如下 
 BACKUP LOG 数据库名 WITH NO_LOG 
Msg 3032, Level 16, State 2, Line 1
此语句不支持一个或多个选项(no_log)。请查阅文档以了解所支持的选项。

 

事务日志截断

若要避免数据库的事务日志被填满,例行备份至关重要。在简单恢复模式下,备份了数据库后会自动截断日志,而在完整恢复模式下,只有备份了事务日志后方才截断日志。但是,截断过程有时也可能发生延迟。有关识别和应对各种延迟因素的信息,请参阅可能延迟日志截断的因素。

 注意  
BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。

SQL SERVER 2008 中 BACKUP LOG WITH TRUNCATE_ONLY 已不再被支持,要收缩数据库日志,首先需要通过将数据库恢复模式设置为 SIMPLE 来截断该文件。

语句如下:

--BACKUP log testDB with no_log

USE testDB; 
GO

-- Truncate the log by changing the database recovery model to SIMPLE.

ALTER DATABASE testDB SET RECOVERY SIMPLE;

GO

-- Shrink the trun cated log file to 1 MB.

DBCC SHRINKFILE (testDB_Log, 1); 
GO

-- Reset the database recovery model.

ALTER DATABASE testDB SET RECOVERY FULL; 
GO

也可以通过图形界面来完成。

通过先备份日志,然后再收缩日志文件,如下:

 --先执行完整备份
backup database mydb to disk=D:\db\mydb.bak WITH init;
--再执行日志备份(默认追加)
backup log mydb to disk=D:\db\mydb.bak 
--修改数据库恢复模式
ALTER DATABASE mydb SET RECOVERY SIMPLE
--收缩日志至10MB 
DBCC SHRINKFILE (mydb_Log, 10); 
--修改数据库恢复模式
ALTER DATABASE testDB SET RECOVERY FULL; 

 

sql server 2012 如何收缩事务日志

标签:

原文地址:http://www.cnblogs.com/gates/p/5067450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!