本篇已被騰訊雲官網騰雲閣收錄《在QCloud上建立您的SQL Cluster(5)》sql
終於到了本系列最後一篇,在上一篇中,咱們準備好了各類資源,包括搭建SQL Cluster羣集的底層,在發佈了前面四篇後我收到了大量反饋,如今集中回答下。安全
A、文中採用iscsi服務器做爲共享存儲僅僅是爲demo效果,可是生產環境毫不推薦使用IAAS層面的iscsi服務器,那麼究竟什麼樣的架構才能夠相對合理(IaaS層面的Guest Cluster沒有絕對合理的架構)呢?我我的建議是這樣的,能夠採用AlwayON來進行搭建SQL高可用(這也是從SQL Server 2012以後就主推的架構),AlwayON(可是一樣須要安裝Cluster,只是不須要再起SQL Role,在SQL Server 2016 Always On不依賴域)能夠無存儲進行搭建,若是確確實實須要搭建SQL Cluster,有什麼辦法呢?目前來講,國內大部分公有云廠商不支持雙掛NAS盤的架構,QCloud實際上底層支持,可是這一樣須要必定的level(錢。)才能夠支持這種特殊配置,據我所知,目前客戶羣體中不超過兩位數。服務器
B、那既然SQL Servr2012以後不推崇SQL Server Failover Cluster了,爲毛你還要寫SQL Server Failover Cluster文章?首先寫SQL Server Failover ClusterC最主要的目的是給大部分客戶在國內雲廠商上搭建 Failover Cluster(不僅僅是SQL Cluster)提供指引,其次也是爲了驗證國內雲廠商的可折(tu)騰(cao)性,單從這兩點來看,目前效果仍是不錯的,從文章被官方騰雲閣收錄的狀況來看,國內雲廠商的容忍度仍是比較高的。網絡
C、 後續計劃是怎麼樣的?大家覺得就只有SQL Cluster嗎?看過我我的博客的童鞋應該都知道,我所寫的文章基本都是系列文,並且是平行世界炒雞大的系列文,既然此次系列文反響還不錯,那麼解下來的尿性應該就是《在QCloud上建立您的XXXX》的一大堆博文了,最終會跟我 VMCloud雲平臺系列文章 作整合,這算是埋下的一個彩蛋,敬請期待。架構
有些童鞋確定存在疑問,爲何作一個SQL Cluster須要這麼多CLB(VIP),這麼多角色有點混亂,如今咱們就來捋一捋,涉及到本系列文章其實最重要有三個角色:運維
l Cluster分佈式
l DTCide
l SQL Cluster測試
其中Cluster做爲DTC、SQL的基礎羣集服務,天然不用多講,那麼DTC與SQL之間存在什麼關係,我我的是運維集成工程師,並非專業DBA,經過請教DBA大師得知,DTC(分佈式事務協調器)主要目的是爲了實現分佈式的事務型任務處理,確保節點間進程通訊一致,若是不作Cluster的話DTC不須要搭建,若是須要作到羣集的話,DTC就是必要條件之一,當前環境只存在一個SQL Cluster,默認選擇第一個(也是惟一一個)DTC實例做爲分佈式實例(爲確保羣集完整,這是SQL Server 2008以後纔有的驗證)。ui
好了,話癆了這麼久,如今上正菜,涉及架構及相關網絡以下:
編號 |
服務器名稱 |
生產IP |
存儲IP |
心跳IP |
對外VIP |
1 |
Q-DC01 |
192.168.108.188 |
無 |
無 |
無 |
2 |
Q-SG01 |
192.168.108.206 |
10.11.11.231 |
無 |
無 |
3 |
Q-SQL01 |
192.168.108.254 |
10.11.11. |
10.10.10.2 |
ClusterName 192.168.108.99 SQLClusterName 192.168.108.68 |
4 |
Q-SQL02 |
192.168.108.114 |
10.11.11. |
10.10.10.234 |
一、 ClusterName羣集名已經用了一個CLB,如今要啓用CLB第2、三個IP做爲SQLCluster羣集VIP綁定給兩臺CVM並指定DNS,記得把反向區域建立好,避免nslookup出現解析錯誤:
二、 在SQL0一、SQL02安裝DTS角色:
三、 確認SQL0一、SQL02介質到位,初始化兩個節點的數據盤(咱們將SQL主程序安裝在數據盤上,避免出問題),開始進行安裝:
四、 點擊 羣集管理器 將SQLData01 進行脫機刪除(上一篇主要爲了測試將 共享存儲 進行轉換成CSV測試轉移):
五、 點擊SQLServer Setup安裝程序,切換到安裝:
六、 第一個節點(Q-SQL01)點擊新的羣集安裝並輸入License:
七、 一路點到安裝故障轉移羣集規則檢測,默認會有羣集警告(前篇介紹過因爲virio驅動):
八、 功能目錄、實例根目錄統一選擇輸入數據盤路徑:
九、 輸入以前配置好的羣集名稱及輸入實例名稱:
十、 在檢查羣集資源頁上下一步(因爲存在仲裁盤及默認cluster這裏的SQL組不可用是正常的):
十一、 在羣集磁盤頁面選擇SQL Data01做爲SQLCluster共享存儲:
十二、 配置管理帳戶(這裏選定域管理,後面再添加SQLAdmin做爲管理帳戶,建議生產環境直接使用SQLAdmin域帳戶做爲管理帳戶)
1三、 爲確保管理遍歷,這裏啓用SA帳戶:
1四、 確認配置後開始安裝:
1五、 完成搭建,檢查羣集狀態:
1六、 完成第一個節點的建立後,打開羣集管理器,點擊角色——選中SQL Server右鍵——選擇添加資源——分佈式事務處理協調器來添加DTC進行事務處理:
1七、 檢查分佈式事務處理協調器是否狀態正常,正常後對SQL01進行重啓下:
1八、 登陸SQL02,打開安裝並選擇:
1九、 一路下一步就會識別到羣集並進行安裝:
至此,完成羣集搭建完成,若是應用要使用調用能夠直接採用q-sqlcluster01.q-vmcloud.com(192.168.108.68)進行訪問,當一個SQL節點掛了後Cluster就會切換到另一個節點(這裏會存在停機時間1~2s),若是要實現沒有停機時間的羣集,能夠採用目前推薦使用的AlwayOn或者直接採用PaaS級別的CDB(底層其實也是AlwayOn),效果以下:
模擬切換:
切換過程當中:
切換完成:
關於如何鏈接該羣集實例 及 安全相關:
l 直接使用SQL Server Manager Stuio連接,注意使用SQLCluster VIP:192.168.108.68進行連接
l 鏈接後先添加一個SQL管理員到登陸名中並指定相關權限
下批系列預告:
將放出更多基於QCloud的微軟架構文章