3、w68服务器SQL Server 2012配置启用高可用性组AlwaysOn
1)在“开始”菜单中点击“所有程序”-“Microsoft SQL Server 2012”-“配置工具”,打开“SQL Server配置管理器”,点击“SQL Server服务”节点,在右边窗口中右击“SQL Server (MSSQLSERVER)”,在上下文菜单中选择“属性”。修改登录账号为sz1card1\administrator,并启用AlwaysOn组,需要重启SQL Server服务才能生效
4、配置只读路由
1)主副本w65上高可用性组--右键属性,配置w65,w68的“可读辅助副本”设为“是”,w67的“可读辅助副本”设为“仅读意向”,使辅助副本能够响应从侦听器转来的“只读意向”。
也可以脚本如下:
USE [master]
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w65'
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL))
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w68'
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL))
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w67'
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS =READ_ONLY ))
GO
--AGSQL01 #可用性组名称
--MODIFY REPLICA ON N'w65' #副本名称
2)在主副本w65服务器上执行以下脚本,添加只读路由 URL。每个只读路由 URL 都用于将只读意向请求路由到一个特定的可读辅助副本。通常,向每个可读辅助副本分配一个只读路由 URL。
脚本如下:
USE master
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N'w65'
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'TCP://w65.sz1card1.com:1433'));
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N'w67'
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'TCP://w67.sz1card1.com:1433'));
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N'w68'
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'TCP://w68.sz1card1.com:1433'));
GO
--TCP://w68.sz1card1.com:1433 #自行设定的域名和端口 3)然后还要添加只读路由表,告诉侦听器按照怎样的先后顺序将辅助副本的地址返回给客户端。分别为每个副本设置作为主副本时的只读路由 URL。每个副本上配置的只读路由列表中的最后一个成员都是自己,表明当前面所有的只读副本都发生故障后,则还可以由主副本自己来响应这些“只读意向”。
脚本如下:
USE master
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w65'
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('w68','w67','w65')));
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w68'
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('w65','w67','w68')));
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N'w67'
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('w65','w68','w67')));
GO
5、测试只读路由(客户端必须使用TCP协议连接到支持只读路由的AlwaysOn可用性组的侦听器,并且在连接字符串中将应用程序意向特性/属性设置为只读,而且必须引用该可用性组中的数据库)。
例如:
Server=tcp:AGSQL,1433; Database=test; IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly;MultiSubnetFailover=True
--AGSQL #侦听器名称