【问题标题】:How to address availability groups in SQL 2016如何在 SQL 2016 中处理可用性组
【发布时间】:2017-10-30 12:05:46
【问题描述】:
如何从 SQL 可用性组中的数据库中选择信息。
例如。我有 2 个数据库,它们位于同一服务器上的 2 个单独的可用性组中,我在 AG1 DB1 中并尝试访问 AG2 DB2 中的表。我知道如果它们在同一台服务器上,我可以只使用数据库名称,但如果它们发生故障转移,此查询将失败。
我环顾四周,但看不到。理想情况下,我认为它会是 AG2.DB2.DBO.table 但这似乎不起作用。
【问题讨论】:
标签:
sql-server
sql-server-2016
high-availability
alwayson
【解决方案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