我们有一个 SQL 2014 可用性组,其中包含主数据库的 3 个副本 - 2 个在我们的主数据中心,1 个在我们的灾难恢复中心。
我们在主数据库上进行了一次大型索引重建,这显然需要复制到辅助数据库。我相信这个复制现在已经完成了。当我跑步时:
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 作业似乎已停止运行。重新启动它(这需要一段时间)然后清除日志并允许它重写。