我的问题很简单:缩小日志文件不起作用。当我执行维护计划(数据库完全备份和收缩数据库日志)时,执行终止没有问题或错误,但日志文件使用相同的百分比。
数据库位于AlwaysOn高可用性组中。该组有1个主服务器(称为BO1),2个辅助服务器(称为BO2 e MI1),我使用SQL Server 2014.
执行备份后,我使用了命令
DBCC SQLPERF(LOGSPACE);
我检查了我的日志数据库(数据库名为DM_AUT)。结果如下:日志大小(MB)10689.3和使用的日志空间(%)90.90916。
这些是我用于完整备份的脚本:
DECLARE @preferredReplica int
SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica('DM_AUT'))
IF (@preferredReplica = 1)
BEGIN
BACKUP DATABASE [DM_AUT] TO DISK = N'K:\xxx\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\DM_AUT.bak' WITH COPY_ONLY, NOFORMAT, INIT, NAME = N'DM_AUT_backup_2017_02_24_125045_4829954', SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 10
END
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'DM_AUT' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'DM_AUT' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''DM_AUT'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM DISK = N'K:\xxx\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\DM_AUT.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
备份后我执行了缩小命令:
USE DM_AUT
BACKUP LOG BISYSTEM TO DISK='NUL:'
DBCC SHRINKFILE (DM_AUT_log,50)
在这些维护活动结束时,我检查了数据库日志,结果是相同的:使用的日志空间(%)90.90916。
我在此AlwaysOn组中有其他数据库,但备份和收缩日志文件工作正常(并使用相同的脚本)。
我想了解如何修复收缩日志任务。
感谢所有人。