Sql-Server
SQL Server 2008 高安全性:就數據失去而言,是否可以進行防彈配置?
我正在設計一個帶有兩個 SQL 伺服器的 SQL Server 體系結構,並且我計劃在兩者之間實現數據庫鏡像。如果伺服器發生故障(無論是什麼原因),我需要盡量減少數據失去。我正在查看沒有自動故障轉移的 SQL Server 2008 高安全模式。只有一個操作數據庫需要鏡像,並且兩台伺服器將位於同一站點上。
線上文件指出,在該模式下,當主體伺服器出現故障時,我可以強製鏡像成為新主體,但存在失去數據的風險。那麼我的問題是,如果可能發生數據失去(最小化它?),鏡像的意義何在?我能做些什麼來消除(而不是最小化)這種失去?是否存在一種模式,在這種模式下,主體伺服器在首先成功寫入鏡像之前不送出其數據?
此外,客戶端應用程序通常會訪問 SQL 伺服器,這些應用程序將被配置為按名稱連接到某個伺服器。如果有數據庫鏡像,應該使用什麼伺服器名稱來訪問鏡像,客戶端是否應該知道鏡像伺服器的存在?
編輯:應支持以下場景:
- Principal is down -> Client 收到 FAIL,我們收到通知,手動中斷鏡像並將鏡像用作新的 principal,然後線上建立新鏡像。
- 鏡像關閉 -> 客戶端收到 FAIL,我們收到通知,線上時手動中斷鏡像並建立新鏡像。
SQL Server 2008 有兩種操作模式:一種是高安全模式,其中鏡像是同步的:事務在寫入鏡像之前不會送出。在該模式下,如果來自未送出的事務,您可能會失去唯一的數據。
第二種模式是高性能。在這種模式下,事務會盡快在主體上標記為已送出,而無需等待鏡像。即使主體和鏡像之間的連接暫時中斷,它也允許系統繼續工作,但是,當然,如果您執行手動故障轉移,您將失去所有尚未複製的事務。
有關詳細資訊,請參閱此連結: http ://technet.microsoft.com/en-us/library/ms189852.aspx