Sql-Server

可用性組 log_reuse_wait = 複製

  • March 29, 2016

我們有一個 SQL 2014 可用性組,其中包含 3 個主數據庫副本 - 2 個在我們的主數據中心,1 個在我們的 DR 中心。

我們在主節點上進行了大型索引重建,顯然需要復製到輔助節點。我相信這個複制現在已經完成了。當我執行時:

select redo_queue_size, log_send_queue_size 
from sys.dm_hadr_database_replica_states 
where database_id = 28

我得到:

redo_queue_size |log_send_queue_size
0           | 0
0           | 0
NULL        | NULL

這向我表明複製已經完成。但是,當我跑步時

select log_reuse_wait, log_reuse_wait_desc from sys.databases where database_id = 28

我得到:

log_reuse_wait  | log_reuse_wait_desc
6               | REPLICATION

我發現了這個查詢:

select * 
from sys.dm_hadr_database_replica_cluster_states 
where database_name = DB_NAME()

它顯示了複製的狀態,再次表明所有內容都已複製,但由於某種原因不能截斷:

is_failover_ready   | is_pending_secondary_suspend  | recovery_lsn              | truncation_lsn
1                   | 0                             | 4294967295429496729500001 | 793156000000001600001
1                   | 0                             | 4294967295429496729500001 | 793156000000001600001
1                   | 0                             | 4294967295429496729500001 | 793156000000001600001

事務日誌備份作業正在按預期執行和備份,但由於正常流量,使用的日誌文件百分比繼續增長。如何讓 SQL 重用事務日誌文件?

CDC Capture 作業似乎已停止執行。重新啟動它(這需要一段時間)然後清除日誌並允許它重寫。

引用自:https://dba.stackexchange.com/questions/114922