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
'