none
如何在SQL 2005 Standard Version之下做到Failover? RRS feed

  • 問題

  • 各位好:
         先說明一下我的環境與需求。
         我有兩台主機都安裝SQL 2005,兩台要做Mirror以及要有Failover功能。
         我是依照微軟網站上的設定步驟去設定(http://technet.microsoft.com/zh-tw/library/ms191140.aspx)
         一開始是使用SQL 2005 Enterprise版,可以成功做到Failvoer。
        
         但由於客戶要求,必須轉而使用SQL 2005 Standard版,而相同的設定在Standard版本下,
         雖然同樣可以做到Mirror,但在測試Failover時卻失敗了。

         請教各位大大,是否在使用Standard版本做Mirror時,有不同於Enterprise版本的地方??
    2009年10月22日 上午 11:11

解答

  • To Alex:

    抱歉,剛意外發現一件事,其實Standard搭配指令
    [ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS]是可行的,
    之前會失敗的原因是SQLConnect物件沒有重新Open Connection,才會誤解Failover Partner失敗,
    剛重新測試一次有成功了。

    無論如何,都非常感謝您的熱心幫忙~ ^^
    2009年10月23日 上午 10:30

所有回覆

  • 請問您是強制容錯移轉鏡像嗎?
    由於標準版的鏡像安全性僅支援 FULL 模式(這是預設值),換句話說,在標準版上要進行容錯移轉,只能使用自動或手動模式,亦即無法以非同步資料庫鏡像 (高效能模式)進行
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    2009年10月22日 下午 12:13
    版主
  • To Alex:
           我是採用手動模式,即是當Principal Database掛掉時,在Mirror Database執行下列指令:
    ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
    就可開始作Failover(在使用Enterprise版之下)

    2009年10月22日 下午 01:38
  • ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

    這個指令就是我所謂的強制模式,可參考:http://msdn.microsoft.com/zh-tw/library/ms189270(SQL.90).aspx
    茲節錄其內容如下:
    高效能模式與不含自動容錯移轉的高安全性模式中,若主體伺服器失敗而鏡像伺服器可用,則資料庫擁有者就可以強制將服務容錯移轉到鏡像資料庫 (有遺失資料的可能),讓資料庫成為可用。

    手動移轉的指令應該是:

    ALTER DATABASE <鏡像資料庫的名稱> SET PARTNER FAILOVER

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    2009年10月22日 下午 02:04
    版主
  • To Alex:
         我在執行[ALTER DATABASE <鏡像資料庫的名稱> SET PARTNER FAILOVER]時失敗了,
    訊息是 [錯誤1404 資料庫鏡像忙碌中,因此命令失敗。請稍後再重新發出命令]

    我的測試步驟是
    1. 啟動一隻測試工具,持續地對Principal DB做INSERT。 Test Tool裡的DB Connect String有加入Failover Partner=MirrorDB的設定。
    2. 將Principal DB主機裡SQL Server (MSSQLSERVER)服務關閉,此時測試工具會開始持續顯示錯誤。
    3. 進入Mirror DB,執行備援切換指令[ALTER DATABASE <鏡像資料庫的名稱> SET PARTNER FAILOVER]。
    4. 觀察測試工具是否恢復正常。(我的期望)

    2009年10月23日 上午 07:44
  • To Alex:

    抱歉,剛意外發現一件事,其實Standard搭配指令
    [ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS]是可行的,
    之前會失敗的原因是SQLConnect物件沒有重新Open Connection,才會誤解Failover Partner失敗,
    剛重新測試一次有成功了。

    無論如何,都非常感謝您的熱心幫忙~ ^^
    2009年10月23日 上午 10:30