AlwaysOn 可用性組副本所在服務器以及該副本上數據庫的各項狀態信息

目錄標題

    • 語句
      • 代碼解釋:
      • 1. `sys.dm_hadr_database_replica_states` 視圖字段詳細解釋及官網鏈接
        • 官網鏈接
        • 字段解釋
      • 2. `sys.availability_replicas` 視圖字段詳細解釋及官網鏈接
        • 官網鏈接
        • 字段解釋
    • 查看視圖的創建語句
      • 方法一:使用 SQL Server Management Studio (SSMS)
      • 方法二:使用系統視圖 `sys.sql_modules`
        • 代碼解釋:
      • 方法三:使用 `sp_helptext` 存儲過程
        • 注意事項:
    • `[dbo].[ha_status]`
      • 1. 視圖基本信息
      • 2. 視圖定義
      • 3. 選擇列及計算列
      • 4. 表連接
      • 總結
    • `[master].[dbo].[ha_status]` 的全面解釋
      • 整體概述
      • 1. 查詢語句部分
        • 各部分解釋
      • 2. 視圖 `[ha_status]` 各列詳細解釋
        • 標識信息
        • 故障轉移相關
        • 副本角色與模式
        • 恢復時間與性能指標
        • 同步與狀態信息
        • 其他信息
    • seeding
      • Seeding 的主要作用
      • 常見的 Seeding 狀態及含義
        • 1. `NOT_STARTED`
        • 2. `IN_PROGRESS`
        • 3. `COMPLETED`
        • 4. `FAILED`
        • 5. `CANCELLED`
      • 查看 Seeding 狀態的方法
        • 使用系統視圖 `sys.dm_hadr_automatic_seeding`

語句

sys.dm_hadr_database_replica_statessys.availability_replicas 視圖關聯起來,

SELECT ar.replica_id,ar.replica_server_name,ar.endpoint_url,ar.failover_mode_desc,ar.availability_mode_desc,drs.database_id,drs.group_database_id,drs.is_local,drs.is_primary_replica,drs.synchronization_state,drs.synchronization_state_desc,drs.is_commit_participant,drs.synchronization_health,drs.synchronization_health_desc,drs.database_state,drs.database_state_desc,drs.is_suspended,drs.suspend_reason,drs.suspend_reason_desc,drs.recovery_lsn,drs.truncation_lsn,drs.last_sent_lsn,drs.last_sent_time,drs.last_received_lsn,drs.last_received_time,drs.last_hardened_lsn,drs.last_hardened_time,drs.last_redone_lsn,drs.last_redone_time,drs.log_send_queue_size,drs.log_send_rate,drs.redo_queue_size,drs.redo_rate,drs.filestream_send_rate,drs.end_of_log_lsn,drs.last_commit_lsn,drs.last_commit_time,drs.low_water_mark_for_ghosts,drs.secondary_lag_seconds,drs.quorum_commit_lsn,drs.quorum_commit_time
FROM sys.availability_replicas ar
JOIN sys.dm_hadr_database_replica_states drs ON ar.replica_id = drs.replica_id;

在這里插入圖片描述
在這里插入圖片描述

SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;

在這里插入圖片描述

代碼解釋:

  1. sys.availability_replicas 視圖

    • 該視圖存儲了 Always On 可用性組中每個副本的元數據信息。
    • replica_id:副本的唯一標識符。
    • replica_server_name:副本所在的 SQL Server 實例名稱。
    • endpoint_url:副本的端點 URL,用于副本之間的通信。
    • failover_mode_desc:副本的故障轉移模式描述,例如自動故障轉移、手動故障轉移等。
    • availability_mode_desc:副本的可用性模式描述,如同步提交、異步提交。
  2. sys.dm_hadr_database_replica_states 視圖

    • 這是一個動態管理視圖,提供了關于可用性組中數據庫副本的實時狀態信息。
    • 包含了你之前展示的眾多列,如 database_idis_localis_primary_replica、同步狀態相關列、日志序列號相關列等。
  3. JOIN 操作

    • 通過 JOIN 語句將 sys.availability_replicas 視圖和 sys.dm_hadr_database_replica_states 視圖根據 replica_id 進行關聯。
    • 這樣可以把副本的元數據信息(如副本所在服務器名稱)和數據庫副本的實時狀態信息結合起來,讓你既能確認 replica_id 對應的具體副本,又能查看該副本上數據庫的詳細狀態。

1. sys.dm_hadr_database_replica_states 視圖字段詳細解釋及官網鏈接

官網鏈接

sys.dm_hadr_database_replica_states (Transact - SQL)

字段解釋
  • replica_id:可用性副本的唯一標識符,對應 sys.availability_replicas 中的 replica_id,用于關聯兩個視圖。
  • group_id:可用性組的唯一標識符。
  • database_id:數據庫的標識符,標識該副本中的數據庫。
  • group_database_id:可用性組內數據庫的唯一標識符。
  • is_local:指示該副本是否為本地副本。值為 1 表示是本地副本,0 表示不是。
  • is_primary_replica:指示該副本是否為主副本。1 表示主副本,0 表示輔助副本。
  • synchronization_state:數據庫副本的同步狀態的數字代碼。例如 1 表示 SYNCHRONIZING(正在同步),2 表示 SYNCHRONIZED(已同步)等。
  • synchronization_state_desc:同步狀態的文本描述,與 synchronization_state 代碼對應。
  • is_commit_participant:指示該副本是否參與事務提交。1 表示參與,0 表示不參與。
  • synchronization_health:同步健康狀態的數字代碼。
  • synchronization_health_desc:同步健康狀態的文本描述。
  • database_state:數據庫狀態的數字代碼。
  • database_state_desc:數據庫狀態的文本描述。
  • is_suspended:指示該副本是否已暫停。1 表示暫停,0 表示未暫停。
  • suspend_reason:暫停原因的數字代碼。
  • suspend_reason_desc:暫停原因的文本描述。
  • recovery_lsn:恢復日志序列號,指示數據庫恢復的起始點。
  • truncation_lsn:截斷日志序列號,指示可以截斷日志的位置。
  • last_sent_lsn:主副本上最后發送到輔助副本的日志序列號。
  • last_sent_time:主副本上最后發送日志的時間。
  • last_received_lsn:輔助副本上最后接收到的日志序列號。
  • last_received_time:輔助副本上最后接收日志的時間。
  • last_hardened_lsn:輔助副本上最后持久化到磁盤的日志序列號。
  • last_hardened_time:輔助副本上最后持久化日志到磁盤的時間。
  • last_redone_lsn:輔助副本上最后重做的日志序列號。
  • last_redone_time:輔助副本上最后重做日志的時間。
  • log_send_queue_size:日志發送隊列的大小(以字節為單位)。
  • log_send_rate:日志發送速率(以字節/秒為單位)。
  • redo_queue_size:重做隊列的大小(以字節為單位)。
  • redo_rate:重做速率(以字節/秒為單位)。
  • filestream_send_rate:FileStream 數據的發送速率(以字節/秒為單位)。
  • end_of_log_lsn:日志末尾的日志序列號。
  • last_commit_lsn:最后提交事務的日志序列號。
  • last_commit_time:最后提交事務的時間。
  • low_water_mark_for_ghosts:幽靈記錄的低水位標記。
  • secondary_lag_seconds:輔助副本相對于主副本的延遲秒數。
  • quorum_commit_lsn:法定提交的日志序列號。
  • quorum_commit_time:法定提交的時間。

2. sys.availability_replicas 視圖字段詳細解釋及官網鏈接

官網鏈接

sys.availability_replicas (Transact - SQL)

字段解釋
  • replica_id:可用性副本的唯一標識符,用于和 sys.dm_hadr_database_replica_states 視圖進行關聯。
  • group_id:可用性組的唯一標識符。
  • replica_metadata_id:副本的元數據標識符。
  • replica_server_name:承載該可用性副本的 SQL Server 實例的名稱。
  • owner_sid:副本所有者的安全標識符。
  • endpoint_url:副本的端點 URL,用于副本之間的通信。
  • availability_mode:可用性模式的數字代碼,例如 1 表示同步提交,2 表示異步提交。
  • availability_mode_desc:可用性模式的文本描述。
  • failover_mode:故障轉移模式的數字代碼,例如 1 表示自動故障轉移,2 表示手動故障轉移。
  • failover_mode_desc:故障轉移模式的文本描述。
  • session_timeout:會話超時時間(以秒為單位)。
  • primary_role_allow_connections:主副本允許的連接類型的數字代碼。
  • primary_role_allow_connections_desc:主副本允許的連接類型的文本描述。
  • secondary_role_allow_connections:輔助副本允許的連接類型的數字代碼。
  • secondary_role_allow_connections_desc:輔助副本允許的連接類型的文本描述。
  • create_date:副本創建的日期和時間。
  • modify_date:副本最后修改的日期和時間。
  • backup_priority:備份優先級,值越高表示越優先進行備份。
  • read_only_routing_url:只讀路由的 URL。
  • seeding_mode:種子設定模式的數字代碼。
  • seeding_mode_desc:種子設定模式的文本描述。

查看視圖的創建語句

在 SQL Server 中,有多種方法可以查看視圖的創建語句,下面為你詳細介紹:

方法一:使用 SQL Server Management Studio (SSMS)

  1. 連接到數據庫引擎:打開 SSMS 并連接到相應的 SQL Server 實例。
  2. 展開數據庫對象:在“對象資源管理器”中,展開“數據庫”節點,找到包含目標視圖的數據庫并展開它。
  3. 找到目標視圖:展開“視圖”文件夾,找到你想要查看創建語句的視圖。
  4. 查看創建腳本:右鍵單擊該視圖,選擇“編寫視圖腳本為” -> “CREATE 到” -> “新查詢編輯器窗口”。此時,SSMS 會在新的查詢窗口中生成該視圖的創建語句。

在這里插入圖片描述

方法二:使用系統視圖 sys.sql_modules

可以通過查詢 sys.sql_modules 系統視圖來獲取視圖的定義腳本。以下是具體的 SQL 示例:

-- 假設要查看的視圖名為 YourViewName,數據庫名為 YourDatabaseName
USE master;
SELECT sm.definition
FROM sys.sql_modules sm
JOIN sys.objects o ON sm.object_id = o.object_id
WHERE o.type = 'V' -- 'V' 表示視圖AND o.name = 'ha_status';

在這里插入圖片描述

代碼解釋:
  • sys.sql_modules 視圖存儲了數據庫中所有模塊(包括視圖、存儲過程、函數等)的定義文本。
  • sys.objects 視圖包含了數據庫中所有對象的元數據信息,通過 object_id 將兩個視圖關聯起來。
  • o.type = 'V' 用于篩選出類型為視圖的對象。
  • o.name = 'YourViewName' 用于指定要查看的具體視圖名稱。

方法三:使用 sp_helptext 存儲過程

sp_helptext 是 SQL Server 提供的一個系統存儲過程,可用于查看對象的定義文本,包括視圖。示例如下:

-- 假設要查看的視圖名為 YourViewName
EXEC sp_helptext 'ha_status';

在這里插入圖片描述

注意事項:
  • 如果視圖所在的數據庫不是當前默認數據庫,需要在視圖名稱前加上數據庫名和架構名,例如 EXEC sp_helptext 'YourDatabaseName.dbo.YourViewName';
  • sp_helptext 會將視圖的定義文本逐行顯示,如果定義較長,可能會分行顯示。

通過以上方法,你可以方便地查看 SQL Server 中視圖的創建語句。

[dbo].[ha_status]

以下是對這個視圖 [dbo].[ha_status] 創建語句的詳細解釋:

1. 視圖基本信息

USE [master]
GO/****** Object:  View [dbo].[ha_status]    Script Date: 2025/2/5 14:44:13 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER OFF
GO
  • USE [master]:指定當前使用的數據庫為 master 數據庫。
  • SET ANSI_NULLS ON:啟用 ANSI 空值處理規則,即當比較操作涉及 NULL 值時,結果為 NULL
  • SET QUOTED_IDENTIFIER OFF:指定是否將雙引號字符解釋為分隔標識符或字符串文字。這里設置為 OFF 表示不嚴格遵循 SQL-92 標準,雙引號可以用于字符串文字。

2. 視圖定義

CREATE VIEW [dbo].[ha_status] AS

這行代碼創建了一個名為 [dbo].[ha_status] 的視圖,其中 dbo 是視圖所屬的架構。

3. 選擇列及計算列

SELECT [AG].[name] AS [AvailabilityGroupName],[AR].[replica_server_name] AS [AvailabilityReplicaServerName],[dbcs].[database_name] AS [AvailabilityDatabaseName],CASEWHEN  [dbcs].[database_name]  IS NULL THEN 1ELSE  ISNULL([dbcs].[is_failover_ready],0) END AS [IsFailoverReady],ISNULL([arstates].[role_desc],3) AS [ReplicaRole],[AR].[availability_mode_desc] AS [AvailabilityMode],CASE [dbcs].[is_failover_ready]WHEN 1THEN 0ELSE ISNULL(DATEDIFF([ss],[dbr].[last_commit_time],[dbrp].[last_commit_time]),0)END AS [EstimatedDataLoss_(Seconds)],ISNULL(CASE [dbr].[redo_rate]WHEN 0THEN -1ELSE CAST([dbr].[redo_queue_size] AS FLOAT) / [dbr].[redo_rate]END,-1) AS [EstimatedRecoveryTime_(Seconds)],ISNULL([dbr].[is_suspended],0) AS [IsSuspended],ISNULL([dbr].[suspend_reason_desc],'-') AS [SuspendReason],ISNULL([dbr].[synchronization_state_desc],0) AS [SynchronizationState],ISNULL([dbr].[last_received_time],0) AS [LastReceivedTime],ISNULL([dbr].[last_redone_time],0) AS [LastRedoneTime],ISNULL([dbr].[last_sent_time],0) AS [LastSentTime],ISNULL([dbr].[log_send_queue_size],-1) AS [LogSendQueueSize],ISNULL([dbr].[log_send_rate],-1) AS [LogSendRate_KB/S],ISNULL([dbr].[redo_queue_size],-1) AS [RedoQueueSize_KB],ISNULL([dbr].[redo_rate],-1) AS [RedoRate_KB/S],ISNULL(CASE [dbr].[log_send_rate]WHEN 0THEN -1ELSE CAST([dbr].[log_send_queue_size] AS FLOAT) / [dbr].[log_send_rate]END,-1) AS [SynchronizationPerformance],ISNULL([dbr].[filestream_send_rate],-1) AS [FileStreamSendRate],ISNULL([dbcs].[is_database_joined],0) AS [IsJoined],[arstates].[is_local] AS [IsLocal],ISNULL([dbr].[last_commit_lsn],0) AS [LastCommitLSN],ISNULL([dbr].[last_commit_time],0) AS [LastCommitTime],ISNULL([dbr].[last_hardened_lsn],0) AS [LastHardenedLSN],ISNULL([dbr].[last_hardened_time],0) AS [LastHardenedTime],ISNULL([dbr].[last_received_lsn],0) AS [LastReceivedLSN],ISNULL([dbr].[last_redone_lsn],0) AS [LastRedoneLSN]

這部分代碼定義了視圖返回的列,包括從不同系統表中選取的列以及一些計算列:

  • CASE 語句用于根據不同條件進行值的計算和判斷,例如 [IsFailoverReady][EstimatedDataLoss_(Seconds)] 列。
  • ISNULL 函數用于處理可能的 NULL 值,當列值為 NULL 時,使用指定的默認值。
  • 計算列如 [EstimatedRecoveryTime_(Seconds)][SynchronizationPerformance] 是通過對其他列進行數學運算得到的。

4. 表連接

FROM [master].[sys].[availability_groups] AS [AG]
LEFT JOIN [master].[sys].[availability_replicas] AS [AR] ON [AR].[group_id] = [AG].[group_id]
LEFT JOIN [master].[sys].[dm_hadr_database_replica_cluster_states] AS [dbcs] ON [dbcs].[replica_id] = [AR].[replica_id]
LEFT OUTER JOIN [master].[sys].[dm_hadr_database_replica_states] AS [dbr] ON [dbcs].[replica_id] = [dbr].[replica_id]AND [dbcs].[group_database_id] = [dbr].[group_database_id]
LEFT OUTER JOIN (SELECT[drs].[database_id],[drs].[replica_id],[drs].[last_commit_time]FROM [master].[sys].[dm_hadr_database_replica_states] AS [drs]WHERE [drs].[is_primary_replica] = 1
) AS [dbrp] ON [dbr].[database_id] = [dbrp].[database_id]
LEFT JOIN [master].[sys].[dm_hadr_availability_replica_states] AS [arstates] ON [arstates].[replica_id] = [AR].[replica_id];

這部分代碼通過多個 LEFT JOIN 操作將不同的系統表連接起來,以獲取所需的數據:

  • [master].[sys].[availability_groups]:包含可用性組的信息。
  • [master].[sys].[availability_replicas]:包含可用性副本的信息。
  • [master].[sys].[dm_hadr_database_replica_cluster_states]:包含數據庫副本在集群中的狀態信息。
  • [master].[sys].[dm_hadr_database_replica_states]:包含數據庫副本的詳細狀態信息。
  • [master].[sys].[dm_hadr_availability_replica_states]:包含可用性副本的狀態信息。

子查詢 [dbrp] 用于篩選出主副本的 last_commit_time 信息,以便計算數據丟失估計時間。

總結

這個視圖 [dbo].[ha_status] 主要用于匯總 SQL Server Always On 可用性組的相關狀態信息,包括可用性組名稱、副本服務器名稱、數據庫名稱、故障轉移準備情況、數據丟失估計、恢復時間估計、同步狀態等,方便管理員監控和管理可用性組。

[master].[dbo].[ha_status] 的全面解釋

以下是對這個查詢語句以及相關視圖 [master].[dbo].[ha_status] 的全面解釋:

整體概述

此查詢語句的作用是從 [master].[dbo].[ha_status] 視圖中選取前 1000 條記錄,獲取 SQL Server Always On 可用性組的詳細狀態信息,這些信息對于監控和管理可用性組的健康狀況、性能表現以及故障轉移能力等方面具有重要意義。

1. 查詢語句部分

SELECT TOP (1000) [AvailabilityGroupName],[AvailabilityReplicaServerName],[AvailabilityDatabaseName],[IsFailoverReady],[ReplicaRole],[AvailabilityMode],[EstimatedDataLoss_(Seconds)],[EstimatedRecoveryTime_(Seconds)],[IsSuspended],[SuspendReason],[SynchronizationState],[LastReceivedTime],[LastRedoneTime],[LastSentTime],[LogSendQueueSize],[LogSendRate_KB/S],[RedoQueueSize_KB],[RedoRate_KB/S],[SynchronizationPerformance],[FileStreamSendRate],[IsJoined],[IsLocal],[LastCommitLSN],[LastCommitTime],[LastHardenedLSN],[LastHardenedTime],[LastReceivedLSN],[LastRedoneLSN]
FROM [master].[dbo].[ha_status];
各部分解釋
  • SELECT TOP (1000):指定查詢結果僅返回前 1000 條記錄。當視圖中的數據量較大時,使用 TOP 關鍵字可以限制返回的數據量,避免返回過多數據導致性能問題或顯示不便。
  • 列選擇:明確列出了要從視圖中選取的列,這些列涵蓋了可用性組、副本、數據庫的各種狀態和性能指標。
  • FROM [master].[dbo].[ha_status]:指定查詢的數據來源為 [master] 數據庫中 [dbo] 架構下的 [ha_status] 視圖。

2. 視圖 [ha_status] 各列詳細解釋

標識信息
  • AvailabilityGroupName:可用性組的名稱,用于唯一標識一個 Always On 可用性組。通過該名稱可以區分不同的可用性組,方便管理員對多個可用性組進行管理和監控。
  • AvailabilityReplicaServerName:可用性副本所在的 SQL Server 實例名稱。每個可用性組可以包含多個副本,分布在不同的服務器上,該列用于標識副本所在的具體服務器。
  • AvailabilityDatabaseName:可用性組中數據庫的名稱,表明該記錄所涉及的具體數據庫。
故障轉移相關
  • IsFailoverReady:表示該數據庫副本是否已準備好進行故障轉移。值為 1 表示準備好,0 表示未準備好。此指標對于評估可用性組的高可用性至關重要,當主副本出現故障時,只有準備好的輔助副本才能順利接管工作。
  • EstimatedDataLoss_(Seconds):估計的數據丟失時間(以秒為單位)。在故障轉移過程中,如果輔助副本與主副本之間存在數據延遲,可能會導致部分數據丟失,該指標用于估算可能丟失的數據對應的時間范圍。
副本角色與模式
  • ReplicaRole:副本的角色,如主副本、輔助副本等。不同的角色具有不同的功能和職責,主副本負責處理讀寫操作,輔助副本則用于數據備份和故障轉移。
  • AvailabilityMode:可用性模式,例如同步提交或異步提交。同步提交模式下,主副本在確認事務提交之前會等待輔助副本將事務日志寫入磁盤,確保數據的一致性;異步提交模式則不等待,性能較高但可能存在數據丟失的風險。
恢復時間與性能指標
  • EstimatedRecoveryTime_(Seconds):估計的恢復時間(以秒為單位),表示輔助副本在發生故障后恢復到可用狀態所需的大致時間。該指標可以幫助管理員評估故障恢復的效率和影響范圍。
  • LogSendQueueSize:日志發送隊列的大小,反映了主副本等待發送到輔助副本的事務日志的數量。隊列過大可能表示網絡延遲或輔助副本處理能力不足。
  • LogSendRate_KB/S:日志發送速率(以 KB/秒為單位),衡量主副本向輔助副本發送事務日志的速度。該指標可以反映網絡帶寬和系統性能對日志傳輸的影響。
  • RedoQueueSize_KB:重做隊列的大小,即輔助副本等待重做的事務日志的數量。隊列過大可能導致輔助副本與主副本之間的延遲增加。
  • RedoRate_KB/S:重做速率(以 KB/秒為單位),表示輔助副本重做事務日志的速度。該指標反映了輔助副本處理日志的能力。
  • SynchronizationPerformance:同步性能指標,通過日志發送隊列大小和日志發送速率計算得出,用于評估主副本和輔助副本之間的同步效率。
同步與狀態信息
  • IsSuspended:表示該數據庫副本是否已暫停。值為 1 表示暫停,0 表示正常運行。暫停副本可能是由于維護、故障排查等原因。
  • SuspendReason:如果副本已暫停,該列顯示暫停的原因,方便管理員了解情況并采取相應的措施。
  • SynchronizationState:副本的同步狀態,如正在同步、已同步等。同步狀態反映了副本與主副本之間的數據一致性程度。
  • LastReceivedTime:輔助副本最后一次接收到主副本發送的事務日志的時間,用于監控日志接收的及時性。
  • LastRedoneTime:輔助副本最后一次重做事務日志的時間,結合 LastReceivedTime 可以分析輔助副本處理日志的延遲情況。
  • LastSentTime:主副本最后一次發送事務日志的時間,用于監控主副本的日志發送情況。
其他信息
  • FileStreamSendRate:FileStream 數據的發送速率,對于使用 FileStream 功能存儲大型二進制數據的數據庫,該指標可以反映數據傳輸的性能。
  • IsJoined:表示數據庫是否已加入到可用性組中。值為 1 表示已加入,0 表示未加入。
  • IsLocal:表示該副本是否為本地副本。
  • LastCommitLSN:最后提交事務的日志序列號(LSN),用于標識事務的順序和位置。
  • LastCommitTime:最后提交事務的時間。
  • LastHardenedLSN:最后持久化到磁盤的日志序列號。
  • LastHardenedTime:最后持久化日志到磁盤的時間。
  • LastReceivedLSN:最后接收到的日志序列號。
  • LastRedoneLSN:最后重做的日志序列號。

通過這些信息,管理員可以全面了解 Always On 可用性組的運行狀態,及時發現潛在的問題并采取相應的措施,確保數據庫的高可用性和數據的一致性。

seeding

在 SQL Server Always On 可用性組的上下文中,“seeding”(種子設定)是將主副本上的數據庫數據初始復制到輔助副本的過程。Seeding 狀態反映了這個數據初始化過程的當前情況。下面為你詳細介紹相關內容:

Seeding 的主要作用

在創建新的輔助副本或者將新數據庫加入到可用性組時,需要將主副本上的數據和日志文件復制到輔助副本上,讓輔助副本與主副本的數據保持一致,以便后續進行正常的數據同步和故障轉移。Seeding 提供了一種自動化、高效的方式來完成這個初始數據復制過程。

常見的 Seeding 狀態及含義

1. NOT_STARTED
  • 含義:種子設定過程尚未開始。這可能是因為管理員還沒有觸發種子設定操作,或者正在等待必要的條件滿足,例如網絡連接、權限等。
  • 可能的原因
    • 手動種子設定模式下,管理員還未執行相關的種子設定命令。
    • 自動種子設定模式下,可能存在一些先決條件未滿足,如端點配置不正確、防火墻阻止了通信等。
2. IN_PROGRESS
  • 含義:種子設定過程正在進行中。此時,主副本正在將數據庫的數據和日志文件復制到輔助副本。
  • 監控要點:可以通過查看相關的系統視圖和性能指標來監控種子設定的進度,如 sys.dm_hadr_automatic_seeding 視圖中的 transfer_rate_bytes_per_second 列可以顯示當前的數據傳輸速率,total_data_bytesbytes_sent 列可以用于計算傳輸進度。
3. COMPLETED
  • 含義:種子設定過程已成功完成。輔助副本已經接收到主副本上的所有數據和日志文件,并且數據處于一致狀態,可以開始正常的同步過程。
  • 后續操作:種子設定完成后,輔助副本會開始與主副本進行日志同步,以保持數據的實時一致性。
4. FAILED
  • 含義:種子設定過程失敗。可能是由于各種原因導致復制過程中斷,如網絡故障、磁盤空間不足、權限問題等。
  • 排查方法:可以查看 sys.dm_hadr_automatic_seeding 視圖中的 failure_message 列,獲取詳細的失敗信息,根據錯誤信息進行相應的排查和修復。
5. CANCELLED
  • 含義:種子設定過程被手動取消。管理員可以在種子設定過程中根據需要取消操作。
  • 后續處理:如果需要重新進行種子設定,需要重新觸發種子設定操作。

查看 Seeding 狀態的方法

使用系統視圖 sys.dm_hadr_automatic_seeding
SELECT ag.name AS availability_group_name,ar.replica_server_name,ads.*
FROM sys.dm_hadr_automatic_seeding ads
JOIN sys.availability_replicas ar ON ads.ag_replica_id = ar.replica_id
JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;

這個查詢可以獲取每個可用性組和副本的種子設定狀態信息,幫助管理員監控和管理種子設定過程。

通過了解 Seeding 狀態,管理員可以及時發現并解決種子設定過程中出現的問題,確保可用性組的順利部署和運行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/68114.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/68114.shtml
英文地址,請注明出處:http://en.pswp.cn/web/68114.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GPU-Z重磅更新,Blackwell架構全面支持

由TechPowerUp傾力打造的GPU-Z,是一款集顯卡信息查看、實時監控與深度診斷于一體的強大工具。它以其輕巧靈便的體積、完全免費的使用模式以及極其友好的操作界面,贏得了全球無數用戶的青睞與信任,成為PC硬件領域中不可或缺的軟件。 GPU-Z不僅…

c++11總結26——std::regex

std::regex 是 C11 引入的 正則表達式庫&#xff0c;用于 字符串匹配、搜索和替換。 &#x1f539; 頭文件&#xff1a;#include <regex> &#x1f539; 命名空間&#xff1a;std &#x1f539; 支持的匹配模式&#xff1a;ECMAScript&#xff08;默認&#xff09;、POS…

程序詩篇里的靈動筆觸:指針繪就數據的夢幻藍圖<6>

大家好啊&#xff0c;我是小象?(?ω?)? 我的博客&#xff1a;Xiao Xiangζ????? 很高興見到大家&#xff0c;希望能夠和大家一起交流學習&#xff0c;共同進步。 今天我們繼續來學習數組指針變量&#xff0c;二維數組傳參的本質&#xff0c;函數指針變量&#xff0c;…

MySQL時間類型相關總結(DATETIME, TIMESTAMP, DATE, TIME, YEAR)

MySQL時間類型相關總結(DATETIME, TIMESTAMP, DATE, TIME, YEAR) MySQL官方文檔&#xff1a; https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html 一. 對比&#xff1a; 在 MySQL 中&#xff0c;處理時間相關的數據類型主要有以下幾種&#xff1a;DATE、TIME、…

前綴和練習——洛谷P8218:求區間和

題目: 這道題很簡單&#xff0c;直接根據題目無腦套公式 代碼&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e5 9; using ll long long; ll a[N], perfix[N]; int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//取消同步輸…

【STM32】藍牙模塊數據包解析

使用到的藍牙模塊為DX-BT24&#xff0c;他可以將串口轉藍牙&#xff0c;實現與手機藍牙的通信&#xff0c;本次實現使用手機藍牙發送數據包來控制單片機LED的亮滅&#xff0c;規則如下&#xff1a; AA 05 01 FF AF 該數據包表示包頭為AA&#xff0c;05表示該數據包的大小&#…

NSS-DAY2

Crypto [HNCTF 2022 Week1]A dictator 題目&#xff1a; from random import randint from secret import flagoffset randint(1,100) % 26 # print(offset)assert flag.startswith(NSSCTF{) assert all([ord(c) not in range(ord(A),ord(Z)) for c in flag[7:-1]])for cha…

【vue3 入門到實戰】7. 標簽中的 ref

目錄 1. ref 的作用 2. 如何使用 1. ref 的作用 用于注冊模板引用 用在普通DOM標簽上&#xff0c;獲取的是DOM節點。 用在組件標簽上&#xff0c;獲取的是組件的實例對象。 2. 如何使用 代碼如下 <template><div class"app"><h2 ref"titl…

手寫MVVM框架-實現簡單的數據代理

MVVM框架最顯著的特點就是虛擬dom和響應式的數據、我們以Vue為例&#xff0c;分別實現data、computed、created、methods以及虛擬dom。 這一章我們先實現簡單的響應式&#xff0c;修改數據之后在控制臺打印。 我們將該框架命名為MiniVue。 首先我們需要創建MiniVue的類(src/co…

Redis命令:列表模糊刪除詳解

前言 在Redis中&#xff0c;列表&#xff08;List&#xff09;是一種非常常用的數據結構&#xff0c;允許存儲多個有序的元素。然而&#xff0c;在實際應用中&#xff0c;可能會遇到需要刪除列表中符合某種模式的元素的需求。本文將詳細介紹如何在Redis中實現列表的模糊刪除。…

spy-debugger + Charles 調試移動端/內嵌小程序H5

簡介說明&#xff1a; PC端可以用F12進行console等進行調試&#xff0c;但移動端App中使用webview就無法進行實時調試&#xff0c;針對這種情況 1. 安裝 全局安裝 spy-debugger sudo npm install spy-debugger -g // window不用加sudo2. spy-debugger 證書 其實spy-debugg…

【目標檢測】模型驗證:K-Fold 交叉驗證

K-Fold 交叉驗證 1、引言1.1 K 折交叉驗證概述 2、配置2.1 數據集2.2 安裝包 3、 實戰3.1 生成物體檢測數據集的特征向量3.2 K 折數據集拆分3.3 保存記錄3.4 使用 K 折數據分割訓練YOLO 4、總結 1、引言 我們將利用YOLO 檢測格式和關鍵的Python 庫&#xff08;如 sklearn、pan…

Android studio ternimal 中gradle 指令失效(gradle環境變量未配置)

默認gradle路徑&#xff1a;C:\Users\ylwj.gradle\wrapper\dists\gradle-8.10.2-bin\a04bxjujx95o3nb99gddekhwo\gradle-8.10.2\bin 環境變量-系統環境變量-雙擊path-配置上即可-注意重啟studio才會生效

Axure大屏可視化動態交互設計:解鎖數據魅力,引領決策新風尚

可視化組件/模板預覽&#xff1a;https://8dge09.axshare.com 一、大屏可視化技術概覽 在數據驅動決策的時代&#xff0c;大屏可視化技術憑借直觀、動態的展示方式&#xff0c;已成為眾多行業提升管理效率和優化決策過程的關鍵工具。它能夠將復雜的數據轉化為易于理解的圖形和…

Resnet 改進:嘗試在不同位置加入Transform模塊

目錄 1. TransformerBlock 2. resnet 3. 替換部分卷積層 4. 在特定位置插入Transformer模塊 5. 使用Transformer全局特征提取器 6. 其他 Tips:融入模塊后的網絡經過測試,可以直接使用,設置好輸入和輸出的圖片維度即可 1. TransformerBlock TransformerBlock是Transfo…

PromptSource和LangChain哪個更好

目錄 1. 設計目標與定位 PromptSource LangChain 2. 功能對比 3. 優缺點分析 PromptSource LangChain 4. 如何選擇&#xff1f; 5. 總結 PromptSource 和 LangChain 是兩個在自然語言處理&#xff08;NLP&#xff09;領域非常有用的工具&#xff0c;但它們的設計目標和…

MySQL調優02 - SQL語句的優化

SQL語句的優化 文章目錄 SQL語句的優化一&#xff1a;SQL優化的小技巧1&#xff1a;編寫SQL時的注意點1.1&#xff1a;查詢時盡量不要使用*1.2&#xff1a;連表查詢時盡量不要關聯太多表1.3&#xff1a;多表查詢時一定要以小驅大1.4&#xff1a;like不要使用左模糊或者全模糊1.…

langchain教程-12.Agent/工具定義/Agent調用工具/Agentic RAG

前言 該系列教程的代碼: https://github.com/shar-pen/Langchain-MiniTutorial 我主要參考 langchain 官方教程, 有選擇性的記錄了一下學習內容 這是教程清單 1.初試langchain2.prompt3.OutputParser/輸出解析4.model/vllm模型部署和langchain調用5.DocumentLoader/多種文檔…

如何實現網頁不用刷新也能更新

要實現用戶在網頁上不用刷新也能到下一題&#xff0c;可以使用 前端和后端交互的技術&#xff0c;比如 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;、Fetch API 或 WebSocket 來實現局部頁面更新。以下是一個實現思路&#xff1a; 1. 使用前端 AJAX 或 Fetch…

在ubuntu22.04上先部署docker,再編譯安裝kamailio,附詳細操作流程及docker和makailio的版本號

以下是在Ubuntu 22.04上部署Docker并編譯安裝Kamailio的詳細操作流程&#xff0c;包含版本號信息&#xff1a; 一、部署Docker&#xff08;版本&#xff1a;24.0.7&#xff09; 更新系統包 sudo apt update && sudo apt upgrade -y安裝依賴工具 sudo apt install -y ap…