SQL Server 2008R2 Mirroring with No Domain (SQL 鏡像)

SQL Server 2008R2 Mirroring with No Domain (SQL 鏡像)

 

SQL ServiceAgent的啟動帳號皆為StartSQLMirroring會使用這一個帳號,由於是在沒有網域的環境中,故兩部SQL Server的帳號要設定成一樣(StartSQL)。

clip_image002[4]

     

鏡像『主體端』先做一次『完整備份』。

clip_image004[4]

      

鏡像『主體端』再做一次『交易記錄備份』。

clip_image006[4]

   

『鏡像端』點選資料庫按下右鍵選『還原資料庫』(注意此時『鏡像端』尚無MirrorTest資料庫)clip_image008[4]

          

還原時請手動鍵入資料庫的名稱(實驗命名MirrorTest),選擇BAK檔案,勾選還原的備份組。clip_image010[4]

   

在還原的『選項』頁面,如下圖紅色圈選處,請點選RESTORE WITH NORECOVERY

clip_image012[4]

         

完成還原後,我們可以看見下圖多了一個MirrorTest資料庫,狀態為(正在還原

clip_image014[4]

       

同之前還原完整備份的方式,我們也將交易記錄檔還原,注意在還原的『選項』頁面,也請點選RESTORE WITH NORECOVERY,在此就不附圖檔,做完這一個步驟則『鏡像端』就算完成。

clip_image016[4]

      

回到『主體端』,我們點選資料庫後啟用『鏡像』功能。

clip_image018[4]

   

點選『設定安全性』後會出現設定精靈。

clip_image019[4]

   

由於本實驗單純的只有兩部SQL,所以本選項請選否然後按『下一步』。clip_image021[4]

   

設定『主體端』的鏡像執行個體,預設通訊PORT5022,本實驗端點名稱設定成Mirror,完成後按『下一步』。

clip_image023[4]

設定『鏡像端』的鏡像執行個體,此處需要按下『連接』按鈕,然後輸入可登入『鏡像端』的帳密,預設通訊PORT5022,本實驗端點名稱設定成Mirror,完成後按『下一步』。

clip_image025[4]

   

如同說明,沒有網域,我們留白後,按『下一步』。

clip_image027[4]

精靈成功在兩端建立鏡像要用的端點。

clip_image029[4]

   

精靈結束後會彈跳出啟動鏡像的視窗,此時我們先點選『不要啟動鏡像』,因為我們接下來要修改鏡像主機位址。

clip_image031[4]

    

如下圖紅色圈選處,主體位址為TCP://SQL1:5022,鏡像位址為TCP://SQL2:5022(您可以先在命令提示字元中下telnet指令來確認主機彼此是否認的到,例:telnet SQL1 5022)設定完我們的需求後在手動按下『啟動鏡像』按鈕來啟動。

clip_image033[4]

由於我們輸入的位址格式不符合FQDN,所以會跳出下圖的視窗,不用管它直接按下『是』。

clip_image034[4]

 

歐歐!MyGod發生錯誤!看訊息感覺像是找不到對方,無法鏡像(錯誤碼1418),這裡讓我卡關卡好久,一直爬文一直TRY,試著找出問題,後來偶然想起不如去『鏡像端』看看LOG,也許會看出一些端倪。 clip_image036[4]

     

『鏡像端』的錯誤訊息看來,感覺是『主體端』有找到『鏡像端』但要建立CONNECT時卻發生權限不足的問題。

clip_image038[4]

     

此時上SUPER SQL SERVER尋求協助,楊志強老師馬上回覆GRANT CONNECT ON ENDPOINT::你的端點名稱 TO 你在兩邊設定的LOGIN帳號。

馬上利用老師的方法,將端點MirrorCONNECT權限給StartSQL帳號。

clip_image040[4]

      

『主體端』也一樣將端點MirrorCONNECT權限給StartSQL帳號。clip_image042[4]

       

經過授權動作後,重新啟動鏡像,YA………..成功了。

clip_image043[4]

   

『主體端』跟『鏡像端』,鏡像中資料庫的圖示。

clip_image045[4]

        

資料庫鏡像監試器的畫面

clip_image047[4]

  

本次的鏡像實做真的很不順,卡關卡的很久,建議大家ERROR LOG去『鏡像端』看,我一直在『主體端』打轉,一直以為是位址寫法的問題(以為要FQDN寫法才可以),導致建立失敗,結果是權限問題,感謝楊志強老師及SUPER SQL SERVER社團的社友提點。

  

我是ROCK

rockchang@mails.fju.edu.tw