SQL SERVER 事务日志已满 处理办法

本文提供了一套解决SQL Server日志文件过大的方案,包括调整数据库恢复模式及收缩日志文件的具体步骤。

一大早用户就报,SQL SERVER日志满了。



执行语句参考:

ALTER DATABASE CARDB SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE CARDB SET RECOVERY SIMPLE
GO


DBCC SHRINKFILE (N'Test20130116_standard_log' , 1024, NOTRUNCATE)
go
DBCC SHRINKFILE (N'Test20130116_temp2_log' , 1024, NOTRUNCATE)
go


ALTER DATABASE CARDB SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE CARDB SET RECOVERY FULL
GO





解决SqlServer事务日志问题的办法如下: - **日志备份与收缩**:事务日志原因通常是因为事务日志备份不及时或未完成,可使用以下SQL语句进行收缩操作: ```sql USE [DBName] GO DBCC SHRINKFILE (N'DBName_log', 2, TRUNCATEONLY) GO ``` 此外,为防止日志文件再次充,可配置自动收缩功能,通过以下SQL语句实现: ```sql ALTER DATABASE [DBName] SET AUTO_SHRINK ON; EXEC sp_configure 'auto shrink', 1; RECONFIGURE; GO ``` 还可以调整日志文件的大小和增长设置来避免日志文件过快填: ```sql USE [DBName] GO ALTER DATABASE [DBName] MODIFY FILE (NAME = N'DBName_log', SIZE = 10240MB, FILEGROWTH = 1024MB, MAXSIZE = 20480MB); GO ``` [^2] - **手动调整文件大小**:在数据库上点击右键,选择“属性”,再选择“文件”,然后增加数据库日志文件的文件大小 [^3][^5]。 - **手动收缩日志文件并调整恢复模式**:在数据库上点击右键,选择“属性”,选择“选项”,把模式改为“简单”,然后收缩文件,收缩完了,要把模式改回“完整”,这样数据库才好继续记录日志 [^5]。 - **执行SQL语句调整恢复模式并收缩**:通过执行SQL语句来实现手动操作的效果,示例代码如下: ```sql -- 修改数据库恢复模式为【简单模式】 USE [master] GO ALTER DATABASE [目标数据库名称] SET RECOVERY SIMPLE WITH NO_WAIT GO USE [目标数据库名称] GO DBCC SHRINKFILE (N'数据库日志逻辑名称', 200) -- 10指压缩后的大小 GO -- 修改数据库恢复模式为【完整模式】 USE [master] GO ALTER DATABASE [目标数据库名称] SET RECOVERY FULL WITH NO_WAIT GO ``` 需要将“目标数据库名称”“数据库日志逻辑名称”以及压缩后的日志文件大小进行相应修改 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫气东来_999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值