The transaction log for database 'dbname' is full due to 'LOG_BACKUP'.

The transaction log for database 'dbname' is full due to 'LOG_BACKUP'.

xx库的事务日志已满,需要进行日志备份。


看了一下, 是一个不太重要的库, 设置为了完整模式, 日志没有日常的备份计划, 但又限制了大小。

处理方式:

1. 先改恢复模式为简单;

2. 收缩日志文件。

为了便于操作, 将实例上所有的DB全部快速处理一遍:

EXEC sp_MSforeachdb '
if "?" not in (''master'',''msdb'',''tempdb'',''model'')
begin
	DECLARE @sql NVARCHAR(MAX),@dataName VARCHAR(MAX),@logName VARCHAR(MAX)
	SET @sql=''USE [master]
ALTER DATABASE [?] SET RECOVERY SIMPLE WITH NO_WAIT
ALTER DATABASE [?] MODIFY FILE ( NAME = N''''%data%'''', FILEGROWTH = 65536KB )
ALTER DATABASE [?] MODIFY FILE ( NAME = N''''%log%'''', MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
	''
	SELECT @dataName=s.name FROM [?].sys.sysfiles AS s WHERE s.groupid=1
	SELECT @logName=s.name FROM [?].sys.sysfiles AS s WHERE s.groupid=0
	SET @sql=REPLACE( REPLACE(@sql,''%data%'',@dataName),''%log%'', @logName) 
	PRINT @sql
	EXEC(@sql)
end
'



你可能感兴趣的:(SQL,Server,-,故障排除,SQL,Server)