SQL SERVER 2008 事务日志截断

本文介绍了如何在SQL Server 2008中进行事务日志截断,包括不再支持的WITH NO_LOG和WITH TRUNCATE_ONLY选项,并提供了在简单恢复模式下截断及收缩日志文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


2008 跟2000命令不同,我用了很多2000的都提示失败,用sql2005的事务日志截断语句在sql2008中运行, sql2008 提示错误如下:
语句:BACKUP LOG 数据库名 WITH NO_LOG 
报错:Msg 3032, Level 16, State 2, Line 1  此语句不支持一个或多个选项(no_log)。请查阅文档以了解所支持的选项。


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

注意: 
BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。
 
有关常规日志截断的详细信息,请参阅事务日志截断。
http://msdn.microsoft.com/zh-cn/library/ms186865.aspx 
 
SQL SERVER 2008 中 BACKUP LOG WITH TRUNCATE_ONLY 已不再被支持,要收缩数据库日志,首先需要通过将数据库恢复模式设置为 SIMPLE 来截断该文件。

语句如下:
USE DATABASENAME;


-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE DATABASENAME SET RECOVERY SIMPLE;

-- Shrink the trun cated log file to 1 MB.
DBCC SHRINKFILE (DATABASENAME_Log, 1);


-- Reset the database recovery model.
ALTER DATABASE DATABASENAME SET RECOVERY FULL;


也可以通过图形界面来完成。
通过先备份日志,然后再收缩日志文件,如下: back database mydb to disk='mydb_bak'; dbcc shinkfile(mydb_log,10);--收缩至10m

### SQL Server截断事务日志的方法解决方案 在SQL Server中,事务日志截断一个关键的操作,用于释放磁盘空间并确保数据库性能。以下是关于如何在SQL Server截断事务日志文件的详细方法和注意事项。 #### 1. 事务日志截断的本质 事务日志截断是指将事务日志中不再需要的部分标记为可重用,从而避免无限增长[^1]。这并不意味着物理文件大小会立即缩小,而是指逻辑上清理了已使用过的日志记录。 #### 2. 简单恢复模式下的事务日志截断 在简单恢复模式下,事务日志会在每次检查点操作后自动截断。这意味着不需要手动干预即可完成日志清理。然而,这种模式不支持事务日志备份,因此不适合需要点-in-time恢复的场景[^1]。 #### 3. 手动截断事务日志的方法 如果事务日志增长过快占用过多磁盘空间,可以采取以下方法进行处理: - **切换到简单恢复模式**: ```sql ALTER DATABASE [YourDatabaseName] SET RECOVERY SIMPLE; ``` 切换后,事务日志将在下次检查点时自动截断[^1]。 - **执行日志备份**(适用于完整恢复模式): 在完整恢复模式下,事务日志不会自动截断,必须通过日志备份来释放空间。 ```sql BACKUP LOG [YourDatabaseName] TO DISK = 'C:\Path\To\LogBackup.trn'; ``` - **收缩事务日志文件**: 如果事务日志文件已经增长过大,可以通过以下命令缩小其物理大小: ```sql DBCC SHRINKFILE (N'YourDatabase_Log', TargetSizeInMB); ``` 需要注意的是,频繁收缩日志文件可能导致性能问题,因此应谨慎使用[^1]。 #### 4. 全备是否会截断事务日志? 全备(完整备份)不会直接截断事务日志。只有在完整恢复模式大容量日志恢复模式下,通过事务日志备份才能实现日志截断。完整备份仅记录数据库的状态,而不会影响事务日志的状态[^1]。 #### 5. 截断事务日志的注意事项 - 确保了解当前数据库的恢复模式。 - 在生产环境中,建议避免频繁切换恢复模式,以免影响业务连续性。 - 定期监控事务日志的增长情况,并制定合理的维护计划。 ```sql -- 示例:检查事务日志使用情况 DBCC SQLPERF(LOGSPACE); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值