SQL SERVER 2005 MIRROR配置指南_第1頁
SQL SERVER 2005 MIRROR配置指南_第2頁
SQL SERVER 2005 MIRROR配置指南_第3頁
SQL SERVER 2005 MIRROR配置指南_第4頁
SQL SERVER 2005 MIRROR配置指南_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、SQL Server 2005 鏡像配置指南1. 文檔目的本文檔將介紹SQL Server 2005 Mirror配置方法及注意事項。2. SQL Server 2005 鏡像技術2.1. 概述“數據庫鏡像”是用于提高數據庫可用性的主要軟件解決方案。 鏡像基于每個數據庫實現,并且只適用于使用完整恢復模式的數據庫。 簡單恢復模式和大容量日志恢復模式不支持數據庫鏡像。 因此,所有大容量操作始終被完整地記入日志。 數據庫鏡像可使用任意支持的數據庫兼容級別。 數據庫鏡像維護一個數據庫的兩個副本,這兩個副本必須駐留在不同的 SQL Server 數據庫引擎服務器實例上。 通常,這些服務器實例駐留在不同位

2、置的計算機上。 其中一個服務器實例使數據庫服務于客戶端(“主體服務器”), 另一個服務器實例則根據鏡像會話的配置和狀態,充當熱備用或溫備用服務器(“鏡像服務器”)。 同步數據庫鏡像會話時,數據庫鏡像提供熱備用服務器,可支持在已提交事務不丟失數據的情況下進行快速故障轉移。未同步會話時,鏡像服務器通常用作備用服務器(可能造成數據丟失)。 注意:不能鏡像 master、msdb、tempdb 或 model 數據庫。2.2. 優點2.2.1. 增強數據保護功能數據庫鏡像提供完整或接近完整的數據冗余,具體取決于運行模式是高安全性還是高性能。在 SQL Server 2005 Enterprise Ed

3、ition 或更高版本上運行的數據庫鏡像伙伴會自動嘗試解決某些阻止讀取數據頁的錯誤。 無法讀取頁的伙伴會向其他伙伴請求新副本。 如果此請求成功,則將以新副本替換不可讀的頁,這通常會解決該錯誤。2.2.2. 提高數據庫的可用性發生災難時,在具有自動故障轉移功能的高安全性模式下,自動故障轉移可快速使數據庫的備用副本聯機(而不會丟失數據)。在其他運行模式下,數據庫管理員可以選擇強制服務(可能丟失數據),以替代數據庫的備用副本。 2.2.3. 提高生產數據庫在升級期間的可用性若要盡量減少鏡像服務器的停機時間,您可以按順序升級參與數據庫鏡像會話的 SQL Server 實例。 這樣只會導致一個故障轉移的

4、停機時間。 這種形式的升級稱為“滾動升級”。2.3. 鏡像工作方式在“數據庫鏡像會話”中,主體服務器和鏡像服務器作為“伙伴”進行通信和協作。 兩個伙伴在會話中扮演互補的角色:“主體角色”和“鏡像角色”。在任何給定的時間,都是一個伙伴扮演主體角色,另一個伙伴扮演鏡像角色。 每個伙伴擁有其當前角色。 擁有主體角色的伙伴稱為“主體服務器”(Principal),其數據庫副本為當前的主體數據庫。 擁有鏡像角色的伙伴稱為“鏡像服務器”(Mirror),其數據庫副本為當前的鏡像數據庫。 如果數據庫鏡像部署在生產環境中,則主體數據庫即為“生產數據庫”。數據庫鏡像涉及盡快將對主體數據庫執行的每項插入、更新和刪

5、除操作“重做”到鏡像數據庫中。重做通過將每個活動事務日志記錄發送到鏡像服務器來完成,這會盡快將日志記錄按順序應用到鏡像數據庫中。 與邏輯級別執行的復制不同,數據庫鏡像在物理日志記錄級別執行。2.3.1. 鏡像-無見證服務器(Witness)數據庫鏡像會話以同步操作或異步操作運行。 在異步操作下,事務不需要等待鏡像服務器將日志寫入磁盤便可提交,這樣可最大程度地提高性能。 在同步操作下,事務將在伙伴雙方處提交,但會延長事務滯后時間。有兩種鏡像運行模式。 一種是“高安全性模式”,它支持同步操作。 在高安全性模式下,當會話開始時,鏡像服務器將使鏡像數據庫盡快與主體數據庫同步。 一旦同步了數據庫,事務將

6、在伙伴雙方處提交,這會延長事務滯后時間。第二種運行模式,即“高性能模式”,異步運行。 鏡像服務器嘗試與主體服務器發送的日志記錄保持同步。 鏡像數據庫可能稍微滯后于主體數據庫。 但是,數據庫之間的時間間隔通常很小。 但是,如果主體服務器的工作負荷過高或鏡像服務器系統的負荷過高,則時間間隔會增大。在高性能模式中,主體服務器向鏡像服務器發送日志記錄之后,會立即再向客戶端發送一條確認消息。 它不會等待鏡像服務器的確認。這意味著事務不需要等待鏡像服務器將日志寫入磁盤便可提交。 此異步操作允許主體服務器在事務滯后時間最小的條件下運行,但可能會丟失某些數據。所有數據庫鏡像會話都只支持一臺主體服務器和一臺鏡像

7、服務器。 下圖顯示了該配置。2.3.2. 鏡像-有見證服務器(Witness)具有自動故障轉移功能的高安全性模式要求使用第三個服務器實例,稱為“見證服務器”。 與這兩個伙伴不同的是,見證服務器并不能用于數據庫。 見證服務器通過驗證主體服務器是否已啟用并運行來支持自動故障轉移。只有在鏡像服務器和見證服務器與主體服務器斷開連接之后而保持相互連接時,鏡像服務器才啟動自動故障轉移。 下圖顯示了包含見證服務器的配置。注意:1、使用見證服務器必須保證其和數據庫鏡像伙伴(主體服務器和鏡像服務器的)的網絡通訊暢通,否則見證服務器的故障會導致數據庫鏡像失敗。2、僅 SQL Server 2005 Standar

8、d Edition 及更高版本和 SQL Server 2005 Enterprise Edition 及更高版本支持數據庫鏡像伙伴。 SQL Server 2005 Workgroup Edition 及更高版本和 SQL Server 2005 Express Edition 及更高版本也支持見證服務器。 建立新的鏡像會話需要所有涉及的服務器實例運行同一版本的 SQL Server。2.3.3. 鏡像運行方式與數據安全運行方式見證服務器安全級別自動故障轉移故障轉移中數據丟失風險有見證服務器的同步YesFullYesNo沒有見證服務器的同步NoFullNoNo異步NoOffNoYes如果數據

9、要求不丟失,我們推薦“沒有見證服務器的同步”方式。如果可以容忍少量數據丟失,主服務器效率是關鍵。我們推薦“異步”方式。2.4. 鏡像環境中數據操作順序2.4.1. 無鏡像時2.4.2. 同步鏡像2.4.3. 異步鏡像3. 配置過程我們準備了兩個數據庫實例:Principal和Mirror。在這兩個實例上我們將演示如何通過SQL Server Management Studio配置Mirror。3.1. 準備工作分別在數據庫實例Principal和Mirror上創建數據庫MirrorDB。將備份文件分別拷貝到這兩臺機器上,還原數據庫。建議兩個數據庫的物理文件路徑相同。還原Principal上的數

10、據庫:還原mirror實例上的數據庫:注意:Mirror實例的數據庫要用Restore with NORecovery。兩個實例數據庫還原后的狀態如下:3.2. 配置Mirror單擊“配置安全性”彈出配置向導。下一步我們不使用見證服務器,下一步。下一步下一步點擊“連接”按鈕數據合法的身份校驗信息下一步Principal和Mirror沒有域環境,SQL Server服務都是使用的.administrator帳戶。如果有域環境,建議使用對兩臺機器都有administrator權限的域用戶。鏡像配置不成功的大部分原因是網絡和安全檢查無法通過。下一步點擊完成。關閉向導,返回主界面。如果單擊“開始鏡像”

11、按鈕,SQL Server將嘗試連接兩臺機器進行鏡像。但是我們通常選擇“不開始鏡像”,這樣我們可以選擇鏡像類型(同步或異步),或選擇IP地址方式設置鏡像。我們點擊“不開始鏡像”按鈕。我們選擇了高性能的異步模式,而且主體服務器和鏡像服務器是使用機器名還是IP地址都可以修改。一切設置完畢,點擊“開始鏡像”按鈕。試驗機沒有域環境,所以不用理會這個提示。直接點“是”。至此SQL Server 2005的鏡像已經完全設置完畢了。單擊“確定”完成鏡像配置。我們看到鏡像已經配置成功了。4. 監控鏡像工作情況4.1. 性能計數器性能計數器對系統資源消耗最少,在負載較高的系統中建議使用性能計數器觀察鏡像性能。4

12、.2. 鏡像監視器SQL Server提供鏡像監視器,可以利用圖形工具觀察鏡像行為。4.3. 系統存儲過程和視圖4.3.1. 系統視圖sys.dm_db_mirroring_connections使用系統視圖sys.dm_db_mirroring_connections來觀察鏡像配置參數。針對為每個數據庫鏡像建立的連接返回一行。 列名 數據類型 說明 connection_id uniqueidentifier 連接的標識符。 transport_stream_id uniqueidentifier 此連接用于 TCP/IP 通信的 SQL Server 網絡接口 (SNI) 連接的標識符。s

13、tate smallint 連接的當前狀態。可能的值:1 = NEW2 = CONNECTING3 = CONNECTED4 = LOGGED_IN5 = CLOSED state_desc nvarchar(60) 連接的當前狀態。可能的值:NEWCONNECTINGCONNECTEDLOGGED_INCLOSED connect_time datetime 打開連接的日期和時間。login_time datetime 連接登錄成功的日期和時間。authentication_method nvarchar(128) Windows 身份驗證方法的名稱,如 NTLM 或 KERBEROS。該值

14、由 Windows 提供。 principal_name nvarchar(128) 驗證其連接權限的登錄的名稱。對于 Windows 身份驗證,此值為遠程用戶名。對于證書身份驗證,該值為證書所有者。remote_user_name nvarchar(128) Windows 身份驗證所使用的來自其他數據庫的對等方用戶名。last_activity_time datetime 上次使用連接發送或接收信息的日期和時間。is_accept bit 指示連接是否源自遠程端。 1 = 連接是從遠程實例接受的請求。 0 = 連接由本地實例啟動。login_state smallint 此連接的登錄進程狀

15、態。可能的值: 0 = 初始1 = 協商2 = SSPI3 = PublicKeyLogin4 = PublicKeyTentative5 = LoggedIn6 = 仲裁 login_state_desc nvarchar(60) 遠程計算機的當前登錄狀態。可能的值:初始協商SSPIPublicKeyLoginPublicKeyTentative仲裁LoggedIn peer_certificate_id int 身份驗證遠程實例所用證書的本地對象 ID。該證書的所有者必須對數據庫鏡像端點具有 CONNECT 權限。receives_posted smallint 尚未針對此連接完成的異步網

16、絡接收數。is_receive_flow_controlled bit 網絡接收是否由于流控制(因為網絡忙)而推遲。 1 = Truesends_posted smallint 尚未針對此連接完成的異步網絡發送數。is_send_flow_controlled bit 網絡發送是否由于網絡流控制(因為網絡忙)而推遲。 1 = Truetotal_bytes_sent bigint 此連接發送的字節總數。total_bytes_received bigint 此連接接收的字節總數。total_fragments_sent bigint 此連接發送的數據庫鏡像消息片段總數。total_fragme

17、nts_received bigint 此連接接收的數據庫鏡像消息片段總數。total_sends bigint 此連接發出的網絡發送請求總數。total_receives bigint 此連接發出的網絡接收請求總數。encalg smallint 用于此連接的加密算法。可能的值: 1 = 無加密2 = RC43 = AES4.3.2. sp_dbmmonitor系列存儲過程使用sp_dbmmonitor系列存儲過程觀察鏡像運行期行為。注意:sp_dbmmonitor是一系列系統存儲過程的統稱,并不存在sp_dbmmonitor存儲過程。5. 故障切換我們不建議使用自動故障切換鏡像。自動切換需

18、要見證服務器,見證服務器與主服務器的網絡連接容易出現單一故障點。當主服務器非常繁忙時,與見證服務器的聯系延遲也容易造成見證服務器認為主服務器已經shutdown,而錯誤的進行鏡像切換。5.1. 同步切換鏡像如果是同步模式,當主服務器(Principal)shutdown,我們在鏡像服務器(Mirror)上執行下列命令:-取消鏡像關系ALTER DATABASE MirrorDB SET PARTNER OFF-恢復數據庫RESTORE DATABASE MirrorDB WITH RECOVERY5.2. 異步切換鏡像如果是異步模式,當主服務器(Principal)shutdown,我們在鏡像

19、服務器(Mirror)上執行下列命令:-強制恢復數據庫ALTER DATABASE dbname SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS請注意,這種切換方式可能會造成數據丟失。6. 連接客戶端與鏡像數據庫6.1. 連接機制對于到鏡像數據庫的初始連接,客戶端必須提供一個至少提供服務器實例名稱的連接字符串。這個必需的服務器名稱應標識當前主體服務器實例,并稱為“初始伙伴名稱”。 另外,連接字符串還可以提供另一個服務器實例的名稱,此名稱應標識當前鏡像服務器實例,以便在首次連接嘗試期間初始伙伴不可用的情況下使用。第二個名稱稱為“故障轉移伙伴名稱”。連接字符串還

20、必須提供數據庫名稱。這是數據訪問接口啟用故障轉移嘗試所必需的。接收連接字符串后,數據訪問接口將初始伙伴名稱和故障轉移伙伴名稱(如果提供)存儲在客戶端易失內存的緩存中(對于托管代碼,緩存的作用域限定為應用程序域)。緩存后,數據訪問接口將從不對初始伙伴名稱進行更新。客戶端提供故障轉移伙伴名稱時,數據訪問接口還暫時存儲此故障轉移伙伴名稱,以防出現訪問接口無法使用初始伙伴名稱進行連接的情況。 數據庫鏡像會話無法避免與客戶端相關的服務器訪問問題,例如,客戶端計算機出現網絡通信問題時。到鏡像數據庫的連接嘗試也可能會因為各種與數據訪問接口無關的原因而失敗;例如,連接嘗試可能會因為下列情況而失敗:主體服務器實

21、例處于不活動狀態(如同數據庫進行故障轉移時發生的情況)或者網絡錯誤。 嘗試連接時,數據訪問接口首先使用初始伙伴名稱。如果指定的服務器實例可用并且為當前主體服務器實例,則連接嘗試通常都會成功。 注意:如果鏡像會話暫停,則客戶端通常連接到主體服務器并下載伙伴名稱。但是,在恢復鏡像之前,數據庫不可用于客戶端。如果此嘗試失敗,則數據訪問接口將嘗試使用故障轉移伙伴名稱(如果可用)。如果任一伙伴名稱都正確標識了當前主體服務器,則數據訪問接口通常都會成功打開初始連接。完成此連接后,數據訪問接口將下載當前鏡像服務器的服務器實例名稱。此名稱作為故障轉移伙伴名稱存儲在緩存中,從而覆蓋客戶端提供的故障轉移伙伴名稱(

22、如果有)。此后,SQL Server 的 .NET Framework 數據訪問接口不會更新故障轉移伙伴名稱。相反,每當后續連接或連接重置返回不同的伙伴名稱時,SQL Server Native Client 便會更新高速緩存。下圖針對名為 Db_1 的鏡像數據庫說明了到初始伙伴 Partner_A 的客戶端連接。此圖顯示的情況是:客戶端提供的初始伙伴名稱正確標識了當前主體服務器 Partner_A。初始連接嘗試成功,數據訪問接口在其本地緩存中將鏡像服務器(當前為 Partner_B)的名稱存儲為故障轉移伙伴名稱。最后,客戶端連接到 Db_1 數據庫的主體副本。初始連接嘗試可能會失敗,例如,因

23、為網絡錯誤或不活動的服務器實例。由于初始伙伴不可用,因此要讓數據訪問接口嘗試連接到故障轉移伙伴,客戶端必須在連接字符串中提供故障轉移伙伴的名稱。 在這種情況下,如果故障轉移伙伴名稱不可用,則原始連接嘗試將繼續,直到網絡連接超時或返回錯誤(與非鏡像數據庫的情況相同)。 連接字符串中提供故障轉移伙伴名稱時,數據訪問接口的行為取決于網絡協議和客戶端的操作系統,如下所示: l 對于 TCP/IP,如果客戶端運行的是 Microsoft Windows XP 或更高版本,則使用與數據庫鏡像相關的連接重試算法調整連接嘗試。“連接重試算法”確定在給定連接嘗試中為打開連接所分配的最長時間(“重試時間”)。l

24、對于其他網絡協議以及未運行 Microsoft Windows XP 或更高版本的客戶端如果發生錯誤或者初始伙伴不可用,則初始連接嘗試將處于等待狀態,直到數據訪問接口上的網絡連接超時期限過期或登錄超時期限過期。通常,此等待時間大約為 20 至 30 秒。此后,如果數據訪問接口尚未超時,則它會嘗試連接到故障轉移伙伴。如果連接超時期限過期而未成功連接或者故障轉移伙伴不可用,則連接嘗試會失敗。如果故障轉移伙伴在登錄超時期限內可用并且現在為主體服務器,則連接嘗試通常都會成功。6.2. 鏡像數據庫的連接字符串例如,為了使用 TCP/IP 顯式連接到 Partner_A 或 Partner_B 中的 AdventureWorks 數據庫,客戶端應用程序將提供以下連接字符串:"Server=Partner_A; Failover Partner=Partner_B; Database=Adventu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論