SQLServer2008鏡像實施過程摘要和碰到的問題


SQLServer2008關於可用性的解決方案

高可用性解決方案: http://msdn.microsoft.com/zh-cn/library/bb522583(v=sql.105).aspx

鏡像解決方案:http://msdn.microsoft.com/zh-cn/library/bb934127(v=sql.105).aspx

幾種鏡像方案的對比(圖片來自:http://www.cnblogs.com/killkill/archive/2008/05/23/1205792.html

(點擊圖片查看大圖)

選擇鏡像的理由如下:

  1. 選擇熱備份,就只有三個選擇了
  2. 但故障轉移集群,一需要做集群,麻煩,二需要共享磁盤,服務器是有雙機了,我不想磁盤成為了潛在的單點故障,去年藝龍的宕機也是存儲單點故障導致
  3. 鏡像可以支持對客戶端透明

同時選擇了不要見證服務器,高性能模式,避免對數據庫性能的影響,當然風險是一旦故障轉移,可能對是部分數據有丟失

鏡像實施准備和過程

在實施之前做了一份數據庫鏡像實施計划,大概有1400字,將實施前中后要做到事情明確,論證到位,同時與相關的同事進行講解,計划大概有以下幾個方面的內容

  1. 1、需要做到准備工作
    1. 鏡像的前提工作,SQLServer版本一致等
    2. 確保鏡像先期測試通過,並整理好使用的鏡像sql腳本
    3. 鏡像后的數據、日志文件路徑等
    4. 設置要鏡像的數據為完整模式,並設置完整和日志備份計划
  2. 2、鏡像工作
    1. 將需要鏡像的數據庫都做一個完整備份並回復到鏡像服務器
    2. 做某個庫的鏡像前,備份日志並恢復到鏡像服務器
    3. 執行鏡像腳本
  3. 3、更新程序配置的連接字符串,以實現鏡像對客戶端的透明度

鏡像實施中碰到的問題

  1. 主體、鏡像服務器權限問題,這個問題折騰了兩個多小時,很熟悉的錯誤

     

    服務器網絡地址 “TCP://192.168.1.4:5022″ 無法訪問或不存在。請檢查網絡地址名稱,並檢查本地和遠程端點的端口是否正常運行。 (Microsoft SQL Server,錯誤: 1418)

     

    后來在SQLServer日志中看到了如下錯誤

    Database mirroring connection error 4 ‘An error occurred while receiving data: ’10054(遠程主機強迫關閉了一個現有的連接。)’.’ for ‘TCP://192.168.1.4:5022′.

     

    通過這個錯誤找到了問題,c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\ 沒有讀寫權限,一看真的是這樣,加入管理員(即sqlserver的運行用戶)的讀寫權限后一切正常!(如果還不行,配置權限后,再重新配置鏡像)

    具體見:http://dba.stackexchange.com/questions/6222/mirroring-problems-after-removing-domain

     

    解決這個問題的經驗就是,一定要先通過SQLServer日志和系統日志定位更准備的錯誤 ,才能快速解決問題

     

  2. 主體服務器備份后,需要拷貝備份文件到鏡像服務器,由於文件太大(500G),真慢

    備份、拷貝、恢復的過程占了80%以上的時間

  3. 原本預計是停掉網站來做鏡像,實際上不需要,只是盡量在業務低峰期進行就可以了

鏡像實施后,可用性的解決辦法

准備好鏡像手工故障轉移到的腳本,主要下面三個語句

都需要指定數據庫,在主體服務器上執行

ALTER DATABASE AA SET PARTNER SAFETY FULL; 事務安全,同步模式

ALTER DATABASE AA SET PARTNER FAILOVER; 手動故障轉移

ALTER DATABASE AA SET PARTNER SAFETY OFF;事務不安全,異步模式,高性能模式

其他

實施鏡像后,數據庫的升級就可以采取滾動升級了,如圖所示(來自MSDN官方文檔,具體鏈接忘記了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM