Sql server 2016 Always on 实现无域高可用
Sql server 2016 Always on 實現(xiàn)無域高可用
上一篇:sql server 2016 Always on 無域部署教程 使用三臺服務(wù)器組成了sql server 高可用,但是基于成本考慮很多情況下我們只有兩臺服務(wù)器,今天就來測試下用兩臺服務(wù)器來組建sql server 高可用。
一、環(huán)境準(zhǔn)備
①、服務(wù)器及IP規(guī)劃
| sql3.yishoe.com | 192.168.6.53 | 數(shù)據(jù)庫 |
| sql4.yishoe.com | 192.168.6.54 | 數(shù)據(jù)庫 |
| win-cluster | 192.168.6.56 | 集群偵聽IP |
| sqlcluster | 192.168.6.57 | sql 高可用偵聽IP |
②、設(shè)置集群節(jié)點(diǎn)主機(jī)名,每個節(jié)點(diǎn)都需要設(shè)置
修改hosts文件,文件路徑:C:\Windows\System32\drivers\etc
直至可以使用主機(jī)名互相ping通
③、防火墻放行
注:兩臺服務(wù)器都需要放行
3.1、開啟ICMP回顯已檢測服務(wù)器是否可以ping通
3.2、放行1433(Sql Server數(shù)據(jù)庫端口)/5022(數(shù)據(jù)庫鏡像端口)
3.3、開啟WMI、及遠(yuǎn)程相關(guān)應(yīng)用和功能防火墻放行。(生產(chǎn)環(huán)境不建議關(guān)閉防火墻)
回顯開啟,方便測試服務(wù)器是否通達(dá)
故障轉(zhuǎn)移集群需要允許通過防火墻
④、安裝Windows Failover Cluster Feature(win 故障轉(zhuǎn)移集群)
注:兩臺服務(wù)器都需要安裝
⑤、安裝sql server
注:兩臺服務(wù)器單獨(dú)安裝
二、創(chuàng)建Win 故障轉(zhuǎn)移集群
①、使用powershell創(chuàng)建故障轉(zhuǎn)移集群
管理員啟動powershell
New-Cluster –Name win-cluster -Node sql3.yishoe.com,sql4.yishoe.com -AdministrativeAccessPoint DNS -StaticAddress 192.168.6.56創(chuàng)建完成
–獲取集群名
Get-Cluster
–群集詳情
Get-ClusterResource
②、驗證集群高可用
先ping一下試試
管理故障轉(zhuǎn)移集群
在服務(wù)器管理器–>工具–>故障轉(zhuǎn)移群集–>右鍵故障轉(zhuǎn)移群集管理器–>連接到群集(N)–>輸入集群的名稱,如:win-cluster
注:故障轉(zhuǎn)移集群名稱必須能ping通,能解析。
我們關(guān)閉了一臺服務(wù)器
將關(guān)閉的服務(wù)器重新啟動
集群恢復(fù)正常
三、配置Sql Server 2016 Alwayson
①、sql server 啟用always on
注:兩臺sql server 服務(wù)器都需要啟用
啟用后需要重啟下sql server服務(wù)
②、sql server 啟動用戶
百度到的文章都說需要啟用單獨(dú)的統(tǒng)一的用戶啟動,我這里就是用系統(tǒng)NT Service 用戶啟動
③、新建一共享文件夾用戶
只給administrator 權(quán)限
在另外一臺服務(wù)器測試訪問沒問題
④、為數(shù)據(jù)庫通信創(chuàng)建證書
注:先兩個節(jié)點(diǎn)分別執(zhí)行step1生產(chǎn)證書后,將sql3服務(wù)器生產(chǎn)的證書copy到sql4服務(wù)器指定目錄下(C:\software\cerficates)。
然后再執(zhí)行step2、step3兩個步驟!
sql3 服務(wù)器執(zhí)行
--step1 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*********' --創(chuàng)建主密鑰 CREATE CERTIFICATE cer_alwayson_063 WITH SUBJECT='alwayson 063 local certificate', EXPIRY_DATE='9999-12-31' --創(chuàng)建證書 這里有兩個"cer_alwayson_063",建議每臺機(jī)器都改成不同的名稱以作區(qū)分 EXEC xp_create_subdir 'C:\software\cerficates' --創(chuàng)建存放證書目錄 BACKUP CERTIFICATE cer_alwayson_063 TO FILE='C:\software\cerficates\cer_alwayson_063.cer' --將證書保存在本地C:\software\cerficates 路徑下 CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE cer_alwayson_063, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL) --創(chuàng)建鏡像端點(diǎn) --step2: CREATE LOGIN alwayson_user WITH PASSWORD='*********', CHECK_POLICY=OFF --創(chuàng)建鏡像用戶 USE MASTER GO CREATE USER alwayson_user FOR LOGIN alwayson_userCREATE CERTIFICATE cer_alwayson_064 AUTHORIZATION alwayson_user FROM FILE='C:\software\cerficates\cer_alwayson_064.cer'--step3:grant connection right GRANT CONNECT ON ENDPOINT:: Endpoint_Mirroring TO alwayson_usersql4服務(wù)器執(zhí)行
--step1 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '***********' --創(chuàng)建主密鑰 CREATE CERTIFICATE cer_alwayson_064 WITH SUBJECT='alwayson 064 local certificate', EXPIRY_DATE='9999-12-31' --創(chuàng)建證書 這里有兩個"cer_alwayson_064",建議每臺機(jī)器都改成不同的名稱以作區(qū)分 EXEC xp_create_subdir 'C:\software\cerficates' --創(chuàng)建存放證書目錄 BACKUP CERTIFICATE cer_alwayson_064 TO FILE='C:\software\cerficates\cer_alwayson_064.cer' --將證書保存在本地C:\software\cerficates 路徑下 CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE cer_alwayson_064, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL) --創(chuàng)建鏡像端點(diǎn) --step2: CREATE LOGIN alwayson_user WITH PASSWORD='**********', CHECK_POLICY=OFF --創(chuàng)建鏡像用戶 USE MASTER GO CREATE USER alwayson_user FOR LOGIN alwayson_userCREATE CERTIFICATE cer_alwayson_063 AUTHORIZATION alwayson_user FROM FILE='C:\software\cerficates\cer_alwayson_063.cer'--step3:grant connection right GRANT CONNECT ON ENDPOINT:: Endpoint_Mirroring TO alwayson_user⑤、建一個測試數(shù)據(jù)庫
sql3作為主數(shù)據(jù)庫服務(wù)器創(chuàng)建一個新測試數(shù)據(jù)庫
將sql3上的Demo數(shù)據(jù)庫做一個完整備份和日志備份還原到sql4服務(wù)器上
注:恢復(fù)狀態(tài)需設(shè)置為RESTORE WITH NORECOVERY
注:按此手動同步數(shù)據(jù)庫,創(chuàng)建可用性組后需要進(jìn)入副本服務(wù)器sql 可用性組中將副本服務(wù)器上的數(shù)據(jù)庫手動聯(lián)接到可用性組
查看sql4上數(shù)據(jù)庫狀態(tài)
⑥、配置 sql server always on 可用性
此操作在sql3上執(zhí)行
設(shè)置可用性組名稱,例如:sqlcluster
選擇需要高可用的數(shù)據(jù)庫
指定副本
設(shè)置可用性模式為同步提交,且都可讀。并勾選自動故障轉(zhuǎn)移!
備份可以在任何副本上執(zhí)行
創(chuàng)建偵聽器:sqlcluster
數(shù)據(jù)庫同步方式
我這里選擇手動備份還原,所以跳過初始化同步。
驗證沒問題就執(zhí)行下一步
接下來喝杯茶,等著安裝完成。
注:上面配置完之后還有一部需要操作,否則查看sql server 可用性組面板顯示錯誤
在副本服務(wù)器上將數(shù)據(jù)庫聯(lián)接到可用性組
再次刷新可用性面板
高可用性就搭建好了!
四、報錯處理
①、沒有做事務(wù)日志還原
解決辦法:在主數(shù)據(jù)庫服務(wù)器備份最新事務(wù)日志還原到報錯的節(jié)點(diǎn)即可。
參考:配置SQL Server 2016無域AlwaysOn
參考:sql server 2016 AlwaysOn實現(xiàn)無域高可用全教程
總結(jié)
以上是生活随笔為你收集整理的Sql server 2016 Always on 实现无域高可用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创业公司、科技巨擎、产业龙头先后涌入 中
- 下一篇: Hive 练习(带数据)