基於無域故障轉移群集 配置高可用SQLServer 2016數據庫


基於上次的文章搭建的環境,可以在這里:http://www.cnblogs.com/DragonStart/p/8275182.html看到上次的文章.


演示環境

1. 配置一覽

Key Value
系統版本 Win2016
數據庫版本 SQLServer 2016
群集IP 10.22.20.201
數據庫偵聽器IP 10.22.20.202

2. 連接

3. 寫點初始數據

這個只需要在其中一個寫就行,不用全部寫

4. 備份數據庫

如果不做備份的話,后面會失敗.進入后不用改什么,直接備份即可.

5. 給SQLServer服務打開高可用性組支持

操作完記得重啟數據庫服務:


創建與分享證書

1. 在服務器上建立目錄

創建證書過程中會生成證書文件,所以每個服務器准備個文件夾用於存放證書文件:
記得給everyone讀寫權限

2. 創建證書

每一個服務器上,執行如下SQL代碼,注意:每一個服務器執行之前要做小改動,要改的地方寫在注釋里:

USE master; 
GO
--創建主密鑰
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123'; 
--創建證書  這里有兩個"CERT1",建議每台機器都改成不同的名稱以作區分
CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把剛才創建的證書備份到文件 這里也有兩個CERT1要改
BACKUP CERTIFICATE CERT1 TO FILE = 'D:\share\CERT1.cer';
--創建終結點,設為證書驗證 這里第二行有1個CERT1要改
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
 FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT1, ENCRYPTION = REQUIRED ALGORITHM AES) 
GO

如果創建證書過程中有失敗的,可以用這個回退一些操作:

--刪除終結點
drop ENDPOINT [group0_endpoint];
go
--刪除證書
DROP CERTIFICATE CERT1;
--刪除主密鑰
drop master key 
go

3. 把證書文件發到每台設備

隨便用什么方法,把證書文件發到每台服務器:

4. 在每台服務器的SQL里,安裝其它服務器的證書:

--載入其它節點證書
--不用載入自己的證書!
--不用載入自己的證書!
--不用載入自己的證書!
--CREATE CERTIFICATE CERT1 FROM FILE = 'D:\share\CERT1.cer'; 
CREATE CERTIFICATE CERT2 FROM FILE = 'D:\share\CERT2.cer'; 
CREATE CERTIFICATE CERT3 FROM FILE = 'D:\share\CERT3.cer'; 
GO 

5. 查看證書與終結點

現在在每台設備執行如下指令應該都能看到所有證書,以及終結點.group0_endpoint,如果沒有,需要根據以上操作創建.

select * from sys.certificates
select * from sys.endpoints 

創建可用性組

1. 新建可用性組向導

2. 根據向導走流程

名稱隨意

如果你之前沒備份數據庫,這里會過不了

把所有節點添加進來,注意還要配置些選項

默認過過過~



3. 數據同步成功


到這里,數據同步就成功了,我們可以看到每台服務器都同步了這個數據庫
根據之前的配置,我們有1個可讀寫的主節點,和2個只讀的備用節點.當客戶端要連接的時候,如何知道主節點與備用節點呢?接下來需要配置一個偵聽器,讓客戶端通過偵聽器自動連接到主節點.


創建偵聽器

我們需要給可用性組創建一個偵聽器,該偵聽器會自動把偵聽器IP指向主庫服務器.

1. 點這里

2. 填寫偵聽器IP和端口

3. 完成


簡單測試

1. 使用偵聽器連接

我們剛才創建了偵聽器,現在可以用這個偵聽器的IP去連接當前主數據庫節點.

成功!

2. 嘗試手工切換主節點

點這里

選D2節點切換

連接一下

后面都是默認配置即可.

刷新下連接,可以看到當前還是連着"主要"節點:

3. 嘗試自動切換

接着試試以關機的方式,讓數據庫自己去切換節點.
強行關閉該服務器:

再次刷新客戶端:

可以看到主庫自動切換到D1去了.

4. 寫入數據


在切換過的庫寫數據會出現這樣的情形:寫入的數據自增長字段多了1000,所以,在設計業務的時候,最好對此有所准備.

結束~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM