如果我對一個數據庫進行故障轉移,共享同一鏡像端點的其他數據庫是否也會進行故障轉移?
我們有兩個數據庫設置用於在單個 SQL Server 實例上進行鏡像:一個測試數據庫和一個生產數據庫。兩者都使用完全相同的端點鏡像到另一台伺服器。
如果我進入測試數據庫的數據庫屬性並點擊“故障轉移”按鈕,它是否也會對生產數據庫進行故障轉移,因為兩個數據庫共享一個鏡像端點並且它們的伺服器網路地址屬性相同?
我很擔心,因為當我為第二個數據庫設置鏡像時,我不需要配置任何新東西。它只是使用了所有現有資訊。
如果我使用“數據庫屬性”中的“故障轉移”按鈕,是否會導致使用該端點的所有數據庫故障轉移,或者只是我正在查看其屬性的特定數據庫?
@mrdenny 的回答是準確的,故障轉移一個數據庫不會導致所有其他數據庫也故障轉移。
然而,只是為了提供更多關於數據庫鏡像端點是什麼的概述:
從BOL,
Microsoft SQL Server 2005 及更高版本中的連接管理基於端點。端點是一個 SQL Server 對象,它使 SQL Server 能夠通過網路進行通信。對於數據庫鏡像,伺服器實例需要自己的專用數據庫鏡像端點。**伺服器實例上的所有鏡像連接都使用單個數據庫鏡像端點。**此端點是一個專用端點,專門用於接收來自其他伺服器實例的數據庫鏡像連接。
為了更加靈活,您可以使用 T-sql 進行手動故障轉移:
在鏡像 DB 上關閉鏡像(中斷鏡像)。
ALTER DATABASE <<DB NAME>> SET PARTNER OFF
將數據庫恢復模式設置為 RECOVERY
RESTORE DATABASE <<DB NAME>> WITH RECOVERY
如果您使用 SQL 身份驗證,則修復和孤立使用者
EXEC sp_change_users_login ‘Auto_Fix’ , ‘<<username>>’
編輯:
由於您使用的是高安全模式(根據您的螢幕截圖),您可以使用主伺服器中的以下內容
ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER
這樣做,只會發生角色反轉並且鏡像方向反轉 - 主體變為鏡像,反之亦然。請注意,鏡像沒有損壞。
請注意,根據此 MSDN 文章
手動故障轉移只能從主體伺服器啟動。
如果您想自動化整個故障轉移,請參閱數據庫鏡像自動化