Sql-Server

有什麼方法可以檢測和獲取訂閱者方面的推送訂閱資訊?

  • August 28, 2018

我在 Azure SQL 中有一個數據庫。可能存在來自本地數據庫的**推送訂閱。**我無權訪問創建和配置分發/發布/訂閱的本地伺服器。

有很多方法可以從 dicttributor 或 Publisher 方面獲取有關訂閱的資訊,它們很容易被Google搜尋。同時,我沒有設法在訂閱者端找到一種方法來檢測訂閱存在/健康

我目前的檢測方式是間接的。即,我知道經常出現新記錄的表,只計算記錄的數量,然後在一分鐘後再次計算。這在夜間沒有幫助,當數據庫中沒有活動時,由於需要等待一分鐘或更長時間,這很不方便。

我需要的是一個腳本,它清楚直接地向我顯示訂閱是否存在,並且可能/如果可能的話還有一些附加資訊:* 如果它是活動的(此時推送端是否正常工作)* 配置了哪些文章等

您有 4 個表用於訂閱方的事務複製(推送訂閱):

與訂閱伺服器數據庫中的複制相關聯的每個對像都包含一行

包含為本地訂閱者數據庫提供服務的每個分發代理的一行複制資訊

由分發代理和可更新訂閱的觸發器使用以跟踪訂閱屬性

用於在應用快照時跟踪已成功傳遞給訂閱伺服器的文件


您可以使用此列來監視訂閱者端的複制狀態

SELECT login_time,
      last_sync_status,
      last_sync_summary,
      last_sync_time,
      spid 
FROM dbo.MSsubscription_agents

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