SQLSERVER2016 無域控AlwaysOn 實施步驟


SQLSERVER2016 無域控AlwaysOn 實施步驟

步驟:

一、安裝3windows server 2016系統

1)在3台機器建立具有administrators權限的相同賬號密碼,本例子直接使用administrator

2)分別修改計算機名稱為 sqldb1,sqldb2,sqldb3

3)配置dns,如testag.com

4)3台服務器上做好hosts映射,如:

192.168.40.128 sqldb1

192.168.40.128 sqldb1.testag.com

 

192.168.40.129 sqldb2

192.168.40.129 sqldb2.testag.com

 

192.168.40.130 sqldb3

192.168.40.130 sqldb3.testag.com

 

192.168.40.100 testcluster

192.168.40.100 testcluster.testag.com

 

192.168.40.200 sqllistner

192.168.40.200 sqllistner.testag.com

 

二、配置故障轉移群集

1)3台機器上分別安裝故障轉移群集;

2)建立故障轉移群集 testcluster.testag.com

三、每台機器單獨安裝SQLSERVER 2016

1)3台機器上分別安裝SQLSERVER2016,獨立安裝,非群集安裝;

2)3台服務器的SQLSERVER配置相同的啟動賬號;

3)配置證書;

四、配置Alwayson

1)在另外2台輔助副本機器上恢復要加入alwayson的數據庫;

2)SSMSGUI創建alwayson;注:我使用的SSMS按本會丟失兩個關鍵語句,導致創建失敗https://www.cnblogs.com/double-K/p/5994166.html 該博有說明,這兩個語句是:

------------這部分代碼是圖形化工具中缺失的步驟


:Connect sqldb2

ALTER AVAILABILITY GROUP [sqldbag] JOIN;

Go

ALTER DATABASE [testdb2] SET HADR AVAILABILITY GROUP = [sqldbag];
GO

 

:Connect sqldb3

ALTER AVAILABILITY GROUP [sqldbag] JOIN;

GO

ALTER DATABASE [testdb2] SET HADR AVAILABILITY GROUP = [sqldbag];

GO

 

3)創建偵聽器 sqllistner,做好hosts映射;

4)創建只讀路由,讓alwayson支持讀寫分離

 

ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb1' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));    
                                                 
ALTER AVAILABILITY GROUP sqldbag                                                    
MODIFY REPLICA ON N'sqldb1' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb1.testag.com:1433'));                                                    



ALTER AVAILABILITY GROUP sqldbag                                                    
MODIFY REPLICA ON N'sqldb2' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));                                                    

ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb2' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb2.testag.com:1433'));                                                     


ALTER AVAILABILITY GROUP sqldbag                                                    
MODIFY REPLICA ON N'sqldb3' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));                                                    

ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb3' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://sqldb3.testag.com:1433'));                                                     



ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb1' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb2','sqldb3','sqldb1')));                                                     


ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb2' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb3','sqldb1','sqldb2')));                                                     


ALTER AVAILABILITY GROUP sqldbag                                                     
MODIFY REPLICA ON N'sqldb3' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('sqldb2','sqldb1','sqldb3')));                                                     

 

 ssms要讓只讀路由生效,必須具備兩點:

1)連接到制定數據庫,而不是默認;

 

2)增加連接參數 ApplicationIntent=ReadOnly

 

 

 

參考文檔:

https://www.cnblogs.com/double-K/p/5994166.html

http://www.cnblogs.com/lyhabc/p/6498712.html

----------------------------------

注意問題和事項:

1)所有sqlserver服務器創建相同密碼的administrators權限的windows賬號,用作sqlserver的啟動賬號,避免權限問題;

2)本人使用的ssms2016版本創建alwayson丟失語句,導致創建alwayson失敗;

3)無域控,需要對所有資源做hosts映射,包含

     sqldb1, sqldb2, sqldb3,  sqldb1.testag.com,  sqldb2.testag.com,  sqldb3.testag.com, 

     群集服務器 testcluster.testag.com,

     偵聽器 sqllistner, sqllistner.testag.com

4)忘記創建只讀路由,通過偵聽器無法連接到只讀副本;

5)當alwayson的輔助副本中的 可讀輔助副本 設置為 僅讀意向 時,ssms無法打開數據庫,需要配置 ApplicationIntent=ReadOnly 連接參數才可打開

 


免責聲明!

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



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