-- Configure the READ_ONLY_ROUTING_URL
ALTER AVAILABILITY GROUP [Contoso-ag] MODIFY REPLICA ON N'sqlserver-1'
WITH ( SECONDARY_ROLE( READ_ONLY_ROUTING_URL = N'TCP://sqlserver-1.contoso.com:1433') )
ALTER AVAILABILITY GROUP [Contoso-ag] MODIFY REPLICA ON N'sqlserver-0'
WITH ( SECONDARY_ROLE( READ_ONLY_ROUTING_URL = N'TCP://sqlserver-0.contoso.com:1433') )
-- Configure the READ_ONLY_ROUTING_LIST
ALTER AVAILABILITY GROUP [Contoso-ag] MODIFY REPLICA ON N'sqlserver-1'
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(N'sqlserver-0', N'sqlserver-1')))
ALTER AVAILABILITY GROUP [Contoso-ag] MODIFY REPLICA ON N'sqlserver-0'
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(N'sqlserver-1', N'sqlserver-0')))
连接到可读的次级就是ApplicationIntent=ReadOnly在你的连接字符串中使用 facet 的问题。我没有尝试从 R 中执行此操作,但可以想象你可以。有一种简单的方法可以验证您是否已连接到sqlcmd我最近在这里使用的辅助设备。
如果这些功能以这种方式协同工作,我个人会感到惊讶,因为 R 是如此之新,但这是一个好主意。如果事实证明它不起作用,您可以将其作为功能请求。不过,我还要说的是,当您连接到 AG 侦听器并请求只读路由时,这只是一个请求。由于 AOAG 是一项高可用性功能,如果次要服务器发生故障,您将连接到主要服务器。因此,假设您只在辅助服务器上启用了 R 服务,您会创建一种情况,当辅助服务器不可用时,这些脚本会失败。
Readable Secondary 是 Always On 可用性组的一项功能,您可以使用库中的模板在 Azure 中轻松创建其中一个。
您必须做一些额外的配置,以配置只读路由,如下所示:
连接到可读的次级就是
ApplicationIntent=ReadOnly
在你的连接字符串中使用 facet 的问题。我没有尝试从 R 中执行此操作,但可以想象你可以。有一种简单的方法可以验证您是否已连接到sqlcmd
我最近在这里使用的辅助设备。就推送计算而言,这还不得而知。查看Always On 可用性组:未列出互操作性 R 服务。
如果这些功能以这种方式协同工作,我个人会感到惊讶,因为 R 是如此之新,但这是一个好主意。如果事实证明它不起作用,您可以将其作为功能请求。不过,我还要说的是,当您连接到 AG 侦听器并请求只读路由时,这只是一个请求。由于 AOAG 是一项高可用性功能,如果次要服务器发生故障,您将连接到主要服务器。因此,假设您只在辅助服务器上启用了 R 服务,您会创建一种情况,当辅助服务器不可用时,这些脚本会失败。
不幸的是,我无法自己测试这一点,因为我这个月已经烧掉了我所有的 Azure 学分来回答@BrentO 的一些问题:)也许在这个月晚些时候。
Nick Burns为 SQLServerSentry.com 撰写了这篇在 SQL Server 2016 中配置 R 服务的文章。
请注意他在最后的想法中的评论:
在可读辅助服务器上完成的工作不应影响主服务器。它是一个可读但不可写的辅助服务器,因此查询(“R”、“TSQL”等)不会泄漏回主服务器。
你有什么理由不这样期待吗?