如何解决 SQL 2016 年的可用性组

How to address availability groups in SQL 2016

我如何 select 来自 SQL 可用性组中的数据库的信息。 例如。我有 2 个数据库,它们位于同一台服务器上的 2 个单独的可用性组中,我在 AG1 DB1 中并试图访问 AG2 DB2 中的 table。我知道如果它们在同一台服务器上,我可以只使用数据库名称,但如果它们故障转移,则此查询将失败。

我环顾四周但看不到。理想情况下,我认为它会是 AG2。DB2.DBO.table 但这似乎不起作用。

您需要将 linked 服务器添加到您正在查询的 AG。首先,您需要在 AG2 上有一个 SQL 身份验证帐户,该帐户至少具有对您希望从 AG1 查询的对象的读取权限——除非您希望使用用户的凭据。您将使用此帐户创建 linked 服务器。完成此操作后,您将像上面所说的那样使用 server.database.schema.table

查询它
  1. 在 AG2 DB 上创建一个 SQL 身份验证帐户,您将用于 link 服务器(如果尚不存在)。它需要访问您希望从 AG1 DB 查询的所有对象。
  2. 在您的 AG1 服务器下的 SSMS 中,导航到服务器对象 > 链接服务器
  3. 右键单击“链接服务器”文件夹并select新建链接服务器
  4. 在链接服务器下输入服务器名称
  5. Select SQL 服务器单选按钮
  6. 点击左侧安全页面
  7. 点击"Be made using this security context"并输入SQL认证账号信息。如果需要,请随意使用其他选项之一。
  8. 点击确定

现在,您可以查询该数据库。

Linked Server

Create Linked Server

One of Many Tutorials