当前位置: 首页>>建站开发>>正文


使用AlwaysOn可用性组时收缩事务日志

webfans 建站开发 , , , , 去评论

问题描述

我们正在使用SQL Server 2012的AlwaysOn Availability Group功能。常规的完整数据库备份和事务日志备份每天都在辅助数据库上完成。

我已阅读here,在主副本或辅助副本上执行事务日志备份,将两个副本的事务日志标记为可重用。无论如何,事务日志备份大小很大,可以使用shrink文件减少:

sql-server,sql-server-2012,transaction-log,shrink,database

我已在本地恢复数据库并执行收缩操作。日志文件大小减少到160 MB。

我的问题是我应该在哪个数据库上对事务日志文件(主要,次要或两者)执行收缩操作?


我想在过去的几年里没有备份日志文件,所以它变得如此巨大。执行DBCC SQLPERF (LOGSPACE)我可以看到只使用了文件的0.06% – 我没有必要保留这么大的日志文件。在[sys].[database_files]中,我检查它的max_size是否设置为-1growth65536所以我想当它需要更多空间时它会得到。无论如何,我可以将它缩小到5%,例如为了防止未来的增长。我试图找到一些确认,我这样做是不错的主意。


实际上,备份(在数据库和日志文件上)仅在辅助数据库上执行,因此在它们上执行收缩文件会更容易,但是主日志文件的大小也会减少吗?

最佳解决思路

在AG中,写入只能在主数据库上发生。收缩操作是写入。因此,您必须对主数据库进行缩减。请注意,收缩可能不会像您预期的那样缩小,您对已恢复数据库的测试可能会利用简单的恢复模型。阅读How to shrink the SQL Server log了解更多信息。

不要缩小到160MB。确定为什么日志增长到121Gb所以它不会重复(你有一个怀疑,如果可能的话,很高兴确认)。将日志大小调整为适合您的操作需求的大小。日志增长是一个严重的问题,它无法使用即时文件初始化,并且所有数据库活动将在日志增长并被初始化为0时冻结。用户和应用程序在发生时就讨厌它。如果您了解影响并且您的用户没问题,那么您可以缩小一次(160MB可能太小)并让它一直增长直到它稳定下来。

次佳解决思路

你可以试试:

  1. 可用性组中所有服务器上的数据库应处于“已同步”状态。

  2. 在缩小之前,将已使用的页面移动到事务日志的开始。

  3. 有时可用的日志空间为99%,但SQL Server无法释放未使用的空间。尝试依次重新启动可用性组中的每个服务器。

  4. 有时您需要在MS SQL Server释放可用空间之前对事务日志进行2次bakup和收缩(无法收缩日志文件(DB_Log),因为位于文件末尾的逻辑日志文件正在使用中。)。

试试这个脚本:


    --Set current database inside job step or script
    --Check for Execute on Primary Only
    if (SELECT role
        FROM sys.dm_hadr_availability_replica_states AS a
        JOIN sys.availability_replicas AS b
            ON b.replica_id = a.replica_id
    WHERE b.replica_server_name = @@SERVERNAME) = 1
    BEGIN
        -- Use [test_db] -- Not working for MS SQL 2014, just comment this line and set current database inside job step or script
        -- 1) Bakup Trn
        BACKUP LOG [test_db] TO  DISK = N'D:\MSSQL\Backup\test_db.trn' WITH NOFORMAT, INIT,  NAME = N' Trn Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
        -- 2) Move used pages
        DBCC SHRINKFILE (N'test_db_log' , 3000, NOTRUNCATE)
        -- 3) SHRINKFILE Log
        DBCC SHRINKFILE (N'test_db_log' , 3000)
    END

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/3044.html,转载请务必附带本地址声明。