SQL Server 2022 新增強化的 AOAG 功能 - Contained Availability Group
相信許多 DBA 在使用 SQL Server 2019 或之前的版本,在高可用性 AOAG (AlwaysOn Availability Group) 的操作上,都有一個相同的痛點,就是當我們在 primary node 設定 SQL Server agent jobs 之後,必須得到每一個 secondary nodes 也同樣的建立這些 agent jobs 才行。原因是傳統的 AOAG 設計上,每一個 node 節點上,都得安裝一個獨立的 SQL instance 執行個體。也因為如此,每一個執行個體都有各自獨立的 msdb 系統資料庫。所以當我們在 primary node 的 msdb 資料庫建立一個 agent job,這個新建立的 agent job 並不會自動地複製到 secondary node 的 msdb 資料庫。在這種情況之下,就得靠 DBA 將這些 SQL agent jobs 建立在每一個節點上的 msdb 資料庫中。非常麻煩。
在 SQL Server 2022 版本的 AOAG 設定上,新增了一個叫做 contained availability group 的功能,當我們建立了一個 contained availability group, 同時也會建立兩個屬於這個 Availability group 的系統資料庫,分別為 master 跟 msdb 資料庫。要特別注意的是這兩個系統資料庫是專屬於 availability group 所有,跟 SQL instance 執行個體上的 master 跟 msdb 沒有任何相關聯的關係。使用者只要使用 listener 連接上 primary node 的 availability group, 建立的 SQL agent jobs 就會被儲存在這個 contained availability group 的 msdb 資料庫中,也會自動地被複製到所有的 secondary nodes. 將之前的 DBA 痛點完美的移除。有空的話也可以自己試著設定看看。
-Jason
DBABootcamp