首页 » SQL Server » windows server2012和sqlserver 2016配置AlwaysOn數據庫高可用

windows server2012和sqlserver 2016配置AlwaysOn數據庫高可用

原文 http://blog.csdn.net/u011511086/article/details/79098188

2018-01-19 02:01:39阅读(371)

轉載博文(一步一步說明怎麼配置):
http://www.cnblogs.com/lyhabc/p/4682986.html

下面是大概的步驟及注意事項:

服務器先添加功能
Active Directory
DNS服務器

配置AD DS域
添加新林
kk.com
一直點擊下一步,這裡有個什麼DNS直接跳過,不然創建不成功

DNS裡面創建域
kk.com
在此域裡面新建主機,將各個節點電腦添加進去,ping是否通了

讓控制機域在kk.com,電腦屬性右鍵修改域
各個節點電腦也配置在隸屬於kk.com

AD域
AD DS域配置
https://technet.microsoft.com/zh-CN/library/hh831457.aspx#BKMK_DNSOptionsPage
https://technet.microsoft.com/zh-cn/library/dn283324(v=ws.11).aspx

AD域配置好后,將數據庫節點電腦的域設置為kk.com

不搭建共享磁盤(有些添加不起共享磁盤的情況),也可以配置共享文件夾,來作為仲裁文件夾
windows Server 2012 iSCSI共享磁盘搭建
http://blog.csdn.net/blvyoucan/article/details/71170754

配置集群共享磁盤
https://technet.microsoft.com/zh-cn/library/cc733046(v=ws.11).aspx

創建故障轉移群集
配置仲裁
仲裁磁盤配置如果報錯,就配置成總裁文件夾

在Active Directory用戶和計算機裡面配置域控賬戶
創建域控組:ADADMIN

然後將各個sqlserver節點電腦裡面的administrator加入到組ADADMIN
再配置sqlserver服務的賬戶為administrator

AlwaysOn配置
新建可用性組嚮導

注意:
需要在故障轉移群集裡面配置故障次數
選擇域裡面的:角色
選中:可用性組名稱–>故障轉移
設置“指定時間段內的最大故障數”,盡量改大
下面的時間段改小,比如設置1小時內,故障數為50次

配置alwaysOn只讀路由
https://www.cnblogs.com/dcz2015/p/5444438.html
https://www.cnblogs.com/chenmh/p/7000236.html
https://www.cnblogs.com/aarond/p/3679915.html
http://www.shaoqun.com/a/88704.html

————————————-AlwaysOn設置只讀路由配置———————————————

需要在AlwaysOn實例主機執行sql命令,且需要選擇為master對象

----配置只讀路由屬性
ALTER AVAILABILITY GROUP TestAg1                                                     
MODIFY REPLICA ON N'MSSQL-NODE1\MSSQL2016' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); 
ALTER AVAILABILITY GROUP TestAg1                                                     
MODIFY REPLICA ON N'MSSQL-NODE2\MSSQL2016' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); 
----配置只讀路由URL
ALTER AVAILABILITY GROUP TestAg1
MODIFY REPLICA ON
N'MSSQL-NODE1\MSSQL2016' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://mssql-node1.kk.com:1433'))
ALTER AVAILABILITY GROUP TestAg1
MODIFY REPLICA ON
N'MSSQL-NODE2\MSSQL2016' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'tcp://mssql-node2.kk.com:1433'))
----當MSSQL-NODE1\MSSQL2016為主副本時,設置只讀路由列表為MSSQL-NODE2\MSSQL2016
ALTER AVAILABILITY GROUP TebittAg
MODIFY REPLICA ON
N'MSSQL-NODE1\MSSQL2016' WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('MSSQL-NODE2\MSSQL2016','MSSQL-NODE1\MSSQL2016')));
----當MSSQL-NODE2\MSSQL2016為主副本時,設置只讀路由列表為MSSQL-NODE1\MSSQL2016
ALTER AVAILABILITY GROUP TebittAg
MODIFY REPLICA ON
N'MSSQL-NODE2\MSSQL2016' WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('MSSQL-NODE1\MSSQL2016','MSSQL-NODE2\MSSQL2016')));
--查看配置情况
select ar.replica_server_name, rl.routing_priority,
 (select ar2.replica_server_name 
 from sys.availability_read_only_routing_lists rl2 
    join sys.availability_replicas AS ar2 ON rl2.read_only_replica_id = ar2.replica_id 
where rl.replica_id=rl2.replica_id and rl.routing_priority =rl2.routing_priority 
    and rl.read_only_replica_id=rl2.read_only_replica_id) as 'read_only_replica_server_name' 
    from sys.availability_read_only_routing_lists rl join sys.availability_replicas AS ar ON rl.replica_id = ar.replica_id
//主副本,讀寫
const string conStr1 = "Server=tcp:10.100.50.163,1433;Database=test;uid=sa;pwd=ms2016@*808;ApplicationIntent=ReadWrite;MultiSubnetFailover=Yes";
//輔助副本,只讀
const string conStr2 = "Server=tcp:10.100.50.163,1433;database=test;uid=sa;pwd=ms2016@*808;ApplicationIntent=ReadOnly;MultiSubnetFailover=Yes"; 

可用性组配置只读路由
https://docs.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server

部署應用程序的服務器非kk.com域的電腦需要配置ip跟機器全域名配對,才能正確解析,不然sqlserver客戶端連接會報錯
配置地址:
C:\Windows\System32\drivers\etc
hosts文件末尾添加ip和dns全域名映射
10.100.50.130 mssql-node1.kk.com
10.100.50.132 mssql-node2.kk.com
如果不配置以上,sqlserver客戶端連接讀取副本會報錯,說找不到sqlserver實例

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹