我们有一个始终处于可用状态的组,其中包含一个主要的和一个启用读取的辅助设备。我们有一个实现团队的用户,他使用数据库来检查他们打算放入数据库的数据的正确性。
用户只有从数据库读取的权限,但是当他们通过AG侦听器连接(通过SSMS)时,他们总是连接到活动节点。
我试着让他们直接访问只读实例,但是他们还是固步自封,一两天后,他们又回到了活动节点上。
是否有一种方法可以让SQL Server说这个用户总是有意图地进行读并将他们重定向到那里?
注意:我尝试过在附加的连接参数中设置'ApplicationIntent = ReadOnly‘,但这似乎并不是重定向到次要节点,而且也不是理想的解决方案,因为它们不可避免地会忘记为新的启动程序设置它。
SQL Server 2012 Enterprise,可用性组1主,可读辅助与同步提交。
我不打算让一个用户连接到一个链接的服务器,或通过任何其他服务器。用户通过SSMS (没有其他应用程序)直接连接到数据库,我希望AG侦听器(或其他一些东西)能够在没有用户进行任何操作的情况下,将用户引导到一个备用节点(因为它只具有读取访问权,其中没有访问主节点的意义),因为他们在机器周围移动,并且忘记添加应用程序意图。此外,我发现添加到附加连接参数并不总是指向次要节点。
发布于 2016-05-10 18:34:34
您想要的是点,然后单击某个解决方案或设置。不幸的是,目前所有这些都没有以“现成”的形式存在。如果微软将其包含在注册服务器的连接设置中,这样就可以保存它,这将是非常好的,但遗憾的是它们没有。
这给您留下了两种选择之一:
我偶然看到一个微软下载的SNAC - SQL本机访问客户端,寻找可能满足您的要求的东西(S)。这将允许您编写一小部分代码,为用户提供一个直接访问只读辅助设备的按钮。https://blogs.msdn.microsoft.com/alwaysonpro/2013/08/02/connect-to-sql-server-using-application-intent-read-only/
另一种可能是强迫用户在通过SSMS连接时填写连接参数对话框。要强制这种行为,您需要修改主服务器和辅助服务器上的登录,拒绝连接到主服务器,并允许连接到次要服务器。您可以使用SQL代理作业检查服务器的状态并相应地设置登录。
诚然,我并没有尝试做后者,但从理论上讲,应该是可行的。
发布于 2018-10-01 20:39:06
现在看来,这是Server 2019中的一个特性。
来自正式文档中的次要于主副本读/写连接重定向(总是在可用性组上):
SQLServer2019预览CTP2.0引入了次要的主副本、读/写连接重定向,用于“始终可用”组。在任何操作系统平台上都可以使用读/写连接重定向。它允许将客户端应用程序连接定向到主副本,而不管连接字符串中指定的目标服务器是什么。例如,连接字符串可以以辅助副本为目标。根据可用性组(AG)副本的配置和连接字符串中的设置,可以自动将连接重定向到主副本。
https://dba.stackexchange.com/questions/117857
复制相似问题