Availability-Groups

故障轉移後的 SSRS 訂閱

  • January 26, 2021

不久,我會將 2008 R2 SSRS 安裝遷移到 AWS 中的新 SQL 2019 Always on AG。這個將包含訂閱,我以前從未處理過它們。我在這裡閱讀了文件:SSRS and AG’s ,它指出控制訂閱的代理作業在新主伺服器上發生故障轉移後會自動重新創建,但仍存在於舊主伺服器上。

對於我的其他 SSRS 遷移,我編寫的程式碼會在故障轉移後自動負責在適當的節點上重新啟動 SQL 代理和 SSRS 服務以使用新節點。我在所有副本上都有相同的作業,並且我還有一個作業步驟來檢查伺服器是否是主伺服器。如果不是,則作業將不會執行。

由於我的作業已經同步並且根據主副本狀態控制了執行,我寧願使用它來控制訂閱,但是 SQL 會覆蓋訂閱的現有作業嗎?還是只會添加不存在的工作?我目前沒有伺服器可以對此進行測試,也無法在網上找到這種具體情況。我寧願讓作業一直在那裡,讓作業邏輯根據副本狀態執行作業。訂閱是否可能,或者我是否需要始終禁用舊主伺服器上的作業,並讓 SQL 在新主伺服器上重新創建作業?

我還想將 sql 代理作業從無意義的 GUID 重命名為更直覺的名稱。如果我這樣做,會不會影響正在執行的工作?

我多次處理過這種情況。

最好不要修改 SSRS 服務創建的訂閱作業。畢竟他們沒有工作時間表。計劃在 SSRS 數據庫內部進行管理。使用 SQL Server Always on AG,作業不會被複製,因為它們的定義在 msdb 中。因此,在用於 SSRS 的 Alwayson AG 設置中,您在 AG 中有一個 SSRS 數據庫,但您有兩個(或更多)可以包含 ssrs 作業和兩個(或更多)SSRS 服務的 msdb。每個執行的 SSRS 服務將執行計劃的作業,處理通過 ssrs 數據庫劃分工作負載。在這裡,我假設您將 SSRS 配置為使用 AG 偵聽器進行數據庫連接。

請記住將正確的 ssrs 服務使用者放置在每個實例的 msdb 數據庫角色 (RSExecRole) 中,如下所述:

https://docs.microsoft.com/it-it/sql/reporting-services/security/create-the-rsexecrole?view=sql-server-ver15

每次 ssrs 啟動時都會重新創建 SSRS 訂閱作業,因此當發生故障轉移時,您必須啟動或重新啟動 ssrs 服務來處理此問題。

那麼發生了什麼取決於你設計的 AG 的角色是什麼:HA 或 DR。

在 DR 設計中,我建議您不要關閉 SSRS 服務,因為它會在 DR 站點上執行訂閱,這通常不好。

在 HA 設計中,您可以打開 SSRS 服務,以便平衡兩個實例之間的工作負載(也要注意許可)

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