之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了。windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向往的AlwaysOn2016 负载均衡集群的神秘面纱了。 本篇主要描述个人集群 ...
之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了。windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向往的AlwaysOn2016 负载均衡集群的神秘面纱了。
本篇主要描述个人集群搭建中遇到的坑和一些注意事项,以及2016无域负载均衡的简单体验测试。
搭建体验
基础环境
想要不使用域环境来搭建AlwaysON 必须使用windows 2016 和sql server2016
本篇我使用3台虚拟机(主要是为了测试负载均衡,否则2台就可以),为了搭建的纯洁性,我3台机器都是独立安装,没有使用虚机复制。
主机名 | IP地址 |
sql16node1 | 192.168.3.113 |
sql16node2 | 192.168.3.114 |
sql16node3 | 192.168.3.115 |
sqlcluster2016(windows集群) | 192.168.3.120 |
L_KK_AWO2016(AlwaysOn监听) | 192.168.3.121 |
16操作系统介质 | ed2k://|file|cn_windows_server_2016_x64_dvd_9327743.iso|6020876288|58F585A340248EF7603A48F832F08B6D|/ |
SQL16介质 | ed2k://|file|cn_sql_server_2016_enterprise_x64_dvd_8699450.iso|2452795392|D8AFD8D6245F518F53F720C48E2819C0|/ |
遇到的问题
整体的系统,故障转移集群,AlwaysOn搭建都和2012和2014没有太大差别,所以这里只介绍几个搭建时的特殊注意点。
1.因为没有域所以需要在”计算机属性“添加计算机的DNS后缀。
2.需要做域名解析(域名解析运行——>drivers,每个节点都需要配置)
3.图形化创建会出现问题,导出脚本查看发现脚本不全
下面是创建AWO的脚本(前提是各个节点已经还原的备份文件)
注: 以下脚本可以通过SSMS工具切换到SQLCMD模式运行
--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.:Connect sql16node1IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0BEGIN ALTER ENDPOINT [Hadr_endpoint] STATE = STARTEDENDGOuse [master]GOGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [NT Service\MSSQLSERVER]GO:Connect sql16node1IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);ENDIF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;ENDGO:Connect sql16node2IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0BEGIN ALTER ENDPOINT [Hadr_endpoint] STATE = STARTEDENDGOuse [master]GOGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [NT Service\MSSQLSERVER]GO:Connect sql16node2IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);ENDIF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;ENDGO:Connect sql16node3IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0BEGIN ALTER ENDPOINT [Hadr_endpoint] STATE = STARTEDENDGOuse [master]GOGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [NT Service\MSSQLSERVER]GO:Connect sql16node3IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);ENDIF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')BEGIN ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;ENDGO:Connect sql16node1USE [master]GOCREATE AVAILABILITY GROUP [KK_AG_2016]WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY,DB_FAILOVER = OFF,DTC_SUPPORT = NONE)FOR DATABASE [AWO_2016]REPLICA ON N'SQL16NODE1' WITH (ENDPOINT_URL = N'TCP://SQL16NODE1:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)), N'SQL16NODE2' WITH (ENDPOINT_URL = N'TCP://SQL16NODE2:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)), N'SQL16NODE3' WITH (ENDPOINT_URL = N'TCP://SQL16NODE3:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL));GO------------这部分代码是图形化工具中缺失的步骤
原标题:AlwaysOn_2016_无域集群+负载均衡搭建与简测
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。