[SQL]MS SQL 清除 Transaction Log Script

 

分享我們家Wilson整理的MS清Transaction Log的Script,因為SQL的每個版本都不同,所以在此記錄一下。

 

补充说明一下:做以下操作前请先备份数据库

SQL 7.0/2000:

BACKUP TRANSACTION DBName WITH TRUNCATE_ONLY DBCC SHRINKFILE(2,200)

SQL 2005:

在 SQL 2005 中備份 Transaction Log 語法改為 Backup LOG

BACKUP LOG DBName WITH NO_LOG

DBCC SHRINKFILE(2,200)

SQL 2008:

必須先將復原模式改為 "簡單" 才能清除,完成之後再將模式改回 "完整"

USE DBName

Alter Database DBName Set Recovery Simple DBCC SHRINKFILE(2,100) Alter Database DBName Set Recovery Full

SQL 2008 R2:

USE DBName;

GO

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

ALTER DATABASE DBName

SET RECOVERY SIMPLE;

GO

-- Shrink the truncated log file to 10 MB.

DBCC SHRINKFILE (2, 10);

GO

-- Reset the database recovery model.

ALTER DATABASE DBName

SET RECOVERY FULL;

GO

*上述 DBCC  SHRINKFILE (2, 10),2指的是LOG File, 10指的是壓到10MB哦!

參考資料:

DBCC SHRINKFILE (Transact-SQL)

原址:http://www.dotblogs.com.tw/rainmaker/archive/2011/04/15/22755.aspx

当在SQL Server的数据库上进行一系列的更新、插入时,SQL Server会通过事务日志(transaction log)去记录这些操作。事务日志是一个关键的组成部分,用于确保在数据库的错误情况下也能保持数据的一致性和完整性。当SQL Server运行时,它会不断往事务日志中写入记录。当事务日志的空间被占满了,就会出现"SQL Server the transaction log for database is full" (SQL Server数据库的事务日志已满)的错误信息。 发生这种情况的原因有很多种,比如数据库非常繁忙、数据库日志备份未能及时完成或备份操作未被正确定时等等。当出现这种错误时,有可能影响到当前正在进行的事务,可以尝试清理事务日志或者调整SQL Server日志文件的配置来解决问题。 可以采取以下三种方法解决该错误: 1. 增加事务日志文件的大小:可以在SQL Server Management Studio中增加事务日志文件的大小,这样增加的空间可以用于记录更多的事务日志。注意,该方法不能长期解决问题,需要不断地增加日志文件大小,才能满足数据库的需求。 2. 执行定期的日志备份: 通过定期的日志备份,可以释放事务日志中的空间,可以避免事务日志被占满。建议设置合理的备份时间和备份策略。 3. 调整日志文件的增长策略: 可以通过修改SQL Server日志文件的配置来解决问题。可以通过设置日志文件的增长策略来限制日志文件的大小,保证不会因为日志过大而出现错误。 总之,SQL Server的事务日志是保证数据完整性和一致性的重要组成部分,需要得到合理的管理和配置。当出现该错误时,需要积极的解决,以保证数据库的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值