在角色切換後管理登入和作業

建立鏡像時,只會針對主體資料庫的內容建立鏡像。您無法針對 mastermsdb 系統資料庫中相關聯的資訊建立鏡像。這類相關聯的資訊包括針對主體資料庫所設定的工作,以及加入至主體伺服器的登入。

如果這類資訊對於角色切換的後續支援很重要,則必須複寫到鏡像站台。可能的話,您最好在角色切換之後,撰寫程式在新的主體資料庫上重新產生這些資訊。最常見的問題就是登入和工作。

登入

若要讓使用者在角色切換之後能夠存取資料庫,鏡像伺服器上也必須有具備主體資料庫存取權限的登入。不過,您無法針對 master 資料庫建立鏡像。因此,如果您在目前的主體伺服器上建立具有這類權限的新登入來登入主體資料庫,就必須在鏡像伺服器上執行相同的動作。

您必須在鏡像伺服器和主體伺服器上為每位資料庫使用者手動定義登入。否則,如果主體角色切換,舊的鏡像伺服器以主體資料庫的形式提供其資料庫,則未在舊鏡像伺服器上定義的使用者登入,將會無法存取新的主體資料庫。這些使用者便遭到遺棄。

如果有使用者被新的主體伺服器遺棄,請在新的主體伺服器上建立登入,然後執行 sp_change_users_login (Transact-SQL)。如需詳細資訊,請參閱<孤兒使用者疑難排解>。

使用 SQL Server 驗證的應用程式登入

如果嘗試連接到鏡像資料庫的應用程式使用 SQL 驗證,則利用 SID 不相符的方式可以避免在容錯移轉之後解析應用程式的登入,造成登入變成遺棄的使用者。您可以使用 sp_change_users_login 解析遺棄的使用者 (請參閱<孤兒使用者疑難排解>)。

不過,建議您在設定這類應用程式使用鏡像資料庫時,採取預防性措施。如需如何避免發生此問題的詳細資訊,請參閱知識庫文件 918992 —如何在 SQL Server 2005 和 SQL Server 2008 的執行個體之間傳送登入和密碼

[!附註]

Windows 驗證不會發生此問題,因為 Windows 登入的 SID 並不是機器專屬,而是從 Active Directory 取得。

作業

像是備份工作這類的工作,也需要特別注意。通常在角色切換之後,資料庫擁有者或系統管理員必須為新的主體資料庫重新建立工作。

此外,如果舊的主體伺服器可供使用,您便應該從新的鏡像資料庫刪除原始工作。因為鏡像資料庫處於 RESTORING 狀態,屬於無法使用的情況,所以該資料庫上的工作將會失敗。

[!附註]

夥伴會以不同的磁帶機代號或之類的方式予以個別設定。每個夥伴的工作都必須允許此種差異。

請參閱

概念