天天看點

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
'
           

繼續閱讀