如何在 SQL 2016 中处理可用性组
Posted
技术标签:
【中文标题】如何在 SQL 2016 中处理可用性组【英文标题】:How to address availability groups in SQL 2016 【发布时间】:2017-10-30 12:05:46 【问题描述】:如何从 SQL 可用性组中的数据库中选择信息。 例如。我有 2 个数据库,它们位于同一服务器上的 2 个单独的可用性组中,我在 AG1 DB1 中并尝试访问 AG2 DB2 中的表。我知道如果它们在同一台服务器上,我可以只使用数据库名称,但如果它们发生故障转移,此查询将失败。
我环顾四周,但看不到。理想情况下,我认为它会是 AG2.DB2.DBO.table 但这似乎不起作用。
【问题讨论】:
【参考方案1】:您需要将链接服务器添加到您从中查询的 AG。首先,您需要 AG2 上的 SQL 身份验证帐户,该帐户至少对您希望从 AG1 查询的对象具有读取权限——除非您希望使用用户的凭据。您将使用此帐户来创建链接服务器。完成此操作后,您将像上面所说的那样使用 server.database.schema.table 查询它
-
在 AG2 DB 上创建一个 SQL 身份验证帐户,用于链接服务器(如果尚不存在)。它需要访问您希望从 AG1 DB 查询的所有对象。
在 AG1 服务器下的 SSMS 中,导航到 Server Objects > Linked Servers
右键单击 Linked Servers 文件夹并选择 New Linked Server
在链接服务器下输入服务器名称
选择 SQL Server 单选按钮
点击左侧的安全页面
单击“使用此安全上下文”并输入 SQL 身份验证帐户信息。如果您愿意,请随意使用其他选项之一。
点击确定
现在,您可以查询该数据库了。
Linked Server
Create Linked Server
One of Many Tutorials
【讨论】:
以上是关于如何在 SQL 2016 中处理可用性组的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2016 Failover +AlwaysOn 增加数据库到可用性组
MS SQL/Powershell:如何杀死可用性组中辅助节点上的后台进程