在上篇文章中,我們講了WSFC上層文件服務器應用數據磁盤的替換與升級,實際上我們可以有好多個場景去適用這種替換方式,第一,擴容替換 ,就是我們上篇所演示的那樣,第二,壞損替換,事先文件服務器好的時候,把數據拷貝出來,某天忽然群集數據磁盤壞了,直接插入新磁盤,把備份的內容還原進來,點擊修復磁盤即可。
那么基于上篇文章提到的內容,本篇我們再來看一種場景,針對于SQL Server群集應用,完整替換群集磁盤陣列,應該怎么處理。
一個SQL群集會有仲裁磁盤,DTC磁盤,數據磁盤,甚至日志磁盤,我們假設這些磁盤都來自同一個存儲陣列,現在要全部換到另外一個新的存儲陣列,應該如何操作。
首先,根據我們上篇文章所提到的修復替換方法,可以參照下列流程操作
新陣列分配LUN到群集節點
群集節點識別存儲磁盤,聯機,初始化,分區,分配非原群集磁盤臨時盤符
首先添加見證磁盤,直接更改見證磁盤為新磁盤
脫機SQL群集應用,這將停止SQL服務以釋放SQL數據文件上任何打開的句柄
拷貝原SQL數據磁盤完整目錄內容到新數據磁盤,可以使用資源管理器,或使用Xcopy,RoboCopy拷貝,如果針對于數據庫文件權限有所設置,這里可以進行處理
記錄現有DTC應用配置,刪除,基于新磁盤原樣重建新的DTC應用
點擊SQL應用現有數據磁盤,右鍵點擊修復,選擇新數據磁盤
聯機上線SQL應用
原SQL數據磁盤自動從SQL群集應用刪除,從群集可用磁盤刪除
根據老王的研究,針對于SQL群集的磁盤替換,除了這種方法,還有以下幾種方法
新增替換:不采用修復替換,使用新增磁盤至SQL資源組,手動修改盤符。缺點:有一點點復雜,需要理解群集磁盤替換過程,如果不小心操作錯誤會導致應用不能聯機
備份恢復:網上也有朋友介紹過一種辦法,事先針對于數據庫進行MDF,LDF的備份,之后新增磁盤,刪除原磁盤,附加還原數據庫。缺點:如果數據庫過多的話,會需要執行多個數據庫備份,如果數據庫不多,可能適用,但需考慮到數據庫權限的恢復
重裝替換:直接重新搭建一個群集,再從備份的數據庫文件恢復,缺點:如果數據庫實例很多,重裝將會非常耗時。如果只有一個數據庫實例,可能適用,但仍需考慮數據庫權限的恢復。
工具替換:有一些第三方工具可以幫助我們在兩個群集,或者說兩個SQL實例之間,或是從文件到數據庫,批量還原遷移數據庫,同時可以保證數據庫權限的恢復,但需要操作人員熟悉第三方工具
基于考慮我們決定采用最為熟悉穩妥的修復替換方式
環境介紹
DNS&iscsi
lan:10.0.0.2 255.0.0.0
iscsi:30.0.0.2 255.0.0.0
08node1
MGMET:10.0.0.3 255.0.0.0 DNS 10.0.0.2
ISCSI:30.0.0.3 255.0.0.0
CLUS:18.0.0.3 255.0.0.0
08node2
MGMET:10.0.0.4 255.0.0.0 DNS 10.0.0.2
ISCSI:30.0.0.4 255.0.0.0
CLUS:18.0.0.4 255.0.0.0
當前SQL群集已經配置完畢DTC,及SQL應用

驗證SQL Server 故障轉移,及查詢,可以正常工作

時間節點來到第二步
各節點得到存儲新分配的存儲,并且已經完成分區格式化
新分配的S O X 分別為新見證磁盤,新DTC磁盤,新數據磁盤
其中 見證磁盤和DTC磁盤里面的數據可以接受重建,因此不需要考慮盤符問題

添加新陣列見證磁盤,DTC磁盤為群集可用磁盤

點擊群集名稱-更多操作-配置群集仲裁設置

在選擇見證存儲處取消勾選之前舊的存儲,勾選新的見證磁盤作為見證

配置完成可以看到,群集見證磁盤已經自動變為了新的陣列磁盤,原有見證磁盤被移動至群集可用存儲,這時它已經不起作用,可以選擇從群集可用存儲中刪除。

這里的見證磁盤替換非常簡單,因為見證磁盤的作用無非是在發生分區的時候幫助其中一方獲勝存活,儲存群集數據庫副本,群集數據庫副本各個節點本身都有,新的見證磁盤無非是添加進來重新和各節點同步下最新的群集數據庫副本
在實際見證磁盤替換過程中,按照正常步驟操作,通常不會出現宕機情況,因為幾乎就是一瞬間的事情,2012之后有動態仲裁,更不會宕機,如果在2012之前,發現替換見證磁盤過程意外出現宕機,可以使用強制仲裁啟動群集服務。
接下來我們需要處理DTC和SQL,SQL群集應用可其它群集應用不一樣的地方就是,它可能隨時隨地會在用著,有句柄在打開它的文件,因此我們需要脫機SQL群集應用,才可以做拷貝文件和處理DTC的操作,這也是此方案的弊病,如果采用備份替換,工具替換,則不會面臨此問題,此過程宕機時間視數據庫拷貝時間決定。
脫機SQL群集應用,宕機時間開始

在這一步驟中如果發現SQL舊數據磁盤不可見,可以單獨把SQL舊數據磁盤進行聯機,以便拷貝文件,這時候所有連接到SQL群集應用的句柄已經關閉

拷貝整個舊數據目錄至新數據磁盤,如果針對于數據庫文件有權限設置,這里可以使用xcopy,robocopy進行處理


記錄現有DTC應用配置,然后刪除,重建


這里針對于DTC應用,我們可以選擇這種直接重建的方式,或者如果您不方便重建,修復替換,新增替換的方式也可以操作,DTC應用本身并沒有什么不可以替換的數據,只是用于SQL各節點的間的分布式協調。因此我們采用直接重建沒有問題。
最后使用修復替換掉SQL應用的數據磁盤,在SQL應用群集磁盤5的地方右鍵點擊-更多操作 - 修復
這里的群集磁盤5狀態一定要是脫機才可以使用修復

選擇拷貝完成數據的新數據磁盤

和文件服務器替換一樣,修復向導直接自動幫助我們把舊的群集磁盤信息,帶入新群集磁盤,確認盤符為舊盤符

聯機上線SQL群集應用

驗證可以正常執行故障轉移

驗證可以正常進行數據庫查詢

到這里我們完成了SQL群集應用的全部存儲替換
使用這種替換方式的好處,我們不用一個個的去備份還原數據,不用去care權限的問題,因為所有文件我們都是原封不動的拷貝
缺點就是SQL應用的停機時間較長,主要是脫機拷貝數據庫目錄的時間,具體實際環境下,也許可以有一些更靈活的方式,例如可以下班之前凍結SQL寫入句柄,然后拷貝文件出來,下班之后直接替換見證,DTC,然后修復SQL。
以上是老王為大家帶來的兩篇關于群集替換存儲的文章,希望能為感興趣的朋友帶來收獲
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。