zoukankan      html  css  js  c++  java
  • The transaction log for database 'xxxx' is full due to AVAILABILITY_REPLICA error message in SQL Server

    原因:

    在主副本上日志达到了最大空间或者磁盘满了。

    分析

    主副本的日志块要在其他副本上固话和redo后,才能复用。

    所以如果

    1.传送延迟,由于网络延迟或带宽延迟了发送。

    2.重做延迟,堵塞或资源不足导致副本重做缓慢。

    导致日志增大且不能备份下去。

    log_send_queue_size:副本还未收到的日志块,多了代表传送延迟。

    redo_queue_size:副本上还没有redo的日志块,多了代表redo延迟。

    SELECT ag.name AS [availability_group_name]
    , d.name AS [database_name]
    , ar.replica_server_name AS [replica_instance_name]
    , drs.truncation_lsn , drs.log_send_queue_size
    , drs.redo_queue_size
    FROM sys.availability_groups ag
    INNER JOIN sys.availability_replicas ar
        ON ar.group_id = ag.group_id
    INNER JOIN sys.dm_hadr_database_replica_states drs
        ON drs.replica_id = ar.replica_id
    INNER JOIN sys.databases d
        ON d.database_id = drs.database_id
    WHERE drs.is_local=0
    ORDER BY ag.name ASC, d.name ASC, drs.truncation_lsn ASC, ar.replica_server_name ASC
    

    解决方法:

    1.在延迟最多的副本上移除该DB,以后在加入。

    2.如果是副本上的redo thread频繁被读操作堵塞,那么将副本设置为不可读,后续在改回。

    3.如果磁盘还有空间,则开启日志文件自动增长。

    4.如果达到了最大空间限制且磁盘还有空间,就增大最大空间的限制。

    5.如果日志文件达到了2T系统最大值且还有空闲磁盘,那么就增加日志文件。

    参考资料

    https://docs.microsoft.com/en-US/troubleshoot/sql/availability-groups/error-9002-transaction-log-large

  • 相关阅读:
    【福利】idea最新激活码,绝对可用
    最好用的录屏工具Bandicam (班迪录屏)
    markdown改变字体、颜色和大小
    idea 2020最新破解教程(可激活至2089年)
    解决电脑桌面图标变白消失
    常见排序
    算法
    uWSGI、WSGI和uwsgi
    RabbitMQ
    flask请求和应用上下文
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/14965609.html
Copyright © 2011-2022 走看看