[SQL Server 2005]Cluster Storage Server 移轉

[Deployment] SQL Server 2005 Cluster 移動到新的Storage Server

當公司內部架設的SQL Server Cluster 的 Storage Server遇到了老舊要更新的問題時 ,公司可能買了一台新的Storage Server 給您,讓您替換掉舊的Storage Server。但是目前您的Cluster 架構下所使用的仲裁與Share Disk都放在舊的Storage Server上,這樣要如何移轉呢 ?

這篇文章是要討論如何把現有的SQL Server Cluster 架構下的Storage Server 移轉到另外的 Storage Server 上。移傳的方法有兩種可以選擇 :

  • 第一種是用微軟提供的[Cluster Server Recovery Utility]工具。這個方法基本上還滿簡單的,幾個設定完成大致上就可以輕鬆移轉。您可以到以下網站下載這個工具 :

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2BE7EBF0-A408-4232-9353-64AAFD65306D&displaylang=en

2

不過根據浩呆在實際測試上,在移轉Storage Server時,在[Cluster Server Recovery Utility]選項中的[Replace a physical disk resource]要置換Storage Disk時。在Hyper-V的環境中無法被看硬碟資訊。請參考下列圖片:

1

 

不過沒關係,山不轉路轉。我們用方法2 [更改磁碟簽章] 來做磁碟的移轉。

  • 環境架構說明

在這次的移轉中我們準備了4個VM。

1. DC主機: 這台主機是擔任網域控制站以及舊的Storage Server。

2. SQL Node1: SQL Server 的叢集架構中的 第1個節點。

3. SQL Node2 : SQL Server 的叢集架構中的 第2個節點。

3. newstorage主機: 新的儲存伺服器。這邊我是用Windows Server 2003 R2來安裝新的Storage Server。

至於如何架設SQL Server 2005 Cluster,您可以參考下列文章:

[Hight Available]SQL Server 2005 FailOver Cluster
http://www.dotblogs.com.tw/toysboy21/archive/2011/03/18/21933.aspx

3

 

更改磁碟簽章的方式來置換Cluster中的Storage

1. 將 SQL cluster node2 先關機,接下來的動作全部在node1執行。

   4

2. 將新的Storage Server 接上。這邊我們也在新的Storage Server 上安裝 iSCSI Targets。然後讓 SQL Server node 1 的 iSCSI Initiator 也可以連結到新的new storage。這部分的步驟也可以參考下列文章 (Partition數量需和舊storage相同,但partition容量大小可以不同) :

[Hight Available]SQL Server 2005 FailOver Cluster
http://www.dotblogs.com.tw/toysboy21/archive/2011/03/18/21933.aspx

    5

設定完成後,可以在SQL Node1中看到新的磁碟已經出現了。

    6

3. 使用Cluster administrator把SQL Server停掉

    7

4. 到Windows server 管理中心停止Cluster Service,並將它改成手動。

   8

5. 把群集磁片驅動的啟動類型更改為”disable”(computer management| Device manager| show hidden devices| Non-Plug and Play drivers| Cluster Disk Driver)

6. 重新開機來啟動node1

8  .Copy 所有資料到新的Storage  (資料所在的partition layout需和舊磁碟相同, 記得把隱藏檔, 資料夾開啟,以免沒有copy到)。這邊Q跟R 是我原本的仲裁與Shared Disk 兩個磁碟。接著我要把檔案複製到Y跟Z兩個磁碟。

   9

9. 使用dumpcfg更改磁碟Signautre 將disk signature dump到檔案

    [語法]

    DumpConfig.EXE > C:\dumpfile.txt

    [註] dumpcfg.exe有分32及64位元版本

   這邊要注意磁碟簽章,這邊我總共有5個磁碟。我們可以看到[Volumes] 下方資訊,可以看到Volume代號以及磁碟代號。這邊我們看到舊Storage 的Q磁碟是 Disk 3,接著你可以在下方找到磁碟簽章。

12    11

10.  確認資料備份和拷貝已經完成。然後將舊的兩個磁片(Q:和S:)從Node1上移除。同時保持New Storage上的新磁片(Y:和Z:)連接在node1上。

      移除方式您可以到舊的 Storage上來 Disable 硬碟。

      13

      接著到Node1上就只看到Y:與Z:兩個磁碟了。

       14

 

11. 將R:和T:的磁碟代號改為(Q:和R:),然後將 Q:和R:的disk signature改成和舊磁碟相同的signature。,。,。

     [語法] C:\DumpConfig.EXE -S<new signature in HEX format> <disk device number>

      在我們的範例中 則是 DumpConfig.EXE -S7A98C059 1  然後在執行 DumpConfig.EXE -S7A98C056 2

       15

12. 再run一次dumpcfg.exe來列出現有的磁片signagure,結果右圖, 確認每個磁碟對應到正確的signature

       16

13. 將Node1上的群集磁片驅動的啟動類型更改回”system”,保持群集服務的啟動類型為“manual”(先不要讓cluster啟動),然後重新啟動node1。

14. 開啟node1,進入Disk signature修改後,disk letter會遺失,我們需重新assign Q:和R:

    17

15. 重新assign Disk letter後, 把cluster service啟動,並把startup type改成automatic

    18

16. 開啟Cluster administrator可以看到MSDTC的service無法啟動, 必需要到cmd下msdtc –resetlog後MSDTC就可以在cluster中正常啟動

    19

17. 開啟node2,正常情況下它不需要做任何修改就可以加入到Cluster中。

    21.

18. 接著我們關閉Node 1來測試SQL Server Cluster 是否可以被移轉到 Node 2

22

 

相關資料參考網站

http://support.microsoft.com/kb/294209/en-us