【问题标题】:Azure SQL view contents of secondary (Geo-Replicated) DatabaseAzure SQL 查看辅助(异地复制)数据库的内容
【发布时间】:2015-02-20 16:16:40
【问题描述】:

我已经设置了一个 Azure 数据库实例,据称它使用标准异地复制复制到“只读”辅助数据库中。在 Azure 门户中,我可以看到复制的状态为“在线”,“辅助类型”为“离线”,这似乎是正常的。

我的问题是,有没有办法让我看到辅助数据库的实际内容,以确保复制实际上按计划进行?

我无法在门户中“管理”数据库。我可以连接到 SQL Management Studio 中的实例,在那里我可以看到数据库,但扩展表/存储过程什么也没有显示(有点像使用非安全连接字符串连接到安全数据库)。我也无法对其运行任何查询,因为它给了我“不允许连接到脱机辅助数据库”。

我搜索了这个网站并在网络上搜索了答案,但似乎找不到答案。我是否应该盲目地依赖 Azure 正确执行复制的事实(无法仔细检查),还是我在这里遗漏了什么?

非常感谢您对此提供的任何启示。

【问题讨论】:

    标签: sql sql-server database azure database-replication


    【解决方案1】:

    标准异地复制辅助数据库是不接受客户端连接的离线副本(因此无法直接查询数据)。如果您需要可读的 Geo-Replicated Secondary,则必须使用 Premium DB 可用的 Active Geo-Replication。

    即使您不能直接查询 Standard Geo-Replicated DB,您也可以使用 Master 中的 DMV 来确定连续副本是否正常工作。

    在 Master 上尝试以下操作: 选择 * FROM sys.dm_database_copies SELECT * FROM sys.dm_Continuous_copy_status

    我希望这会有所帮助!

    有关标准异地复制、活动异地复制或检查连续复制活动的更多信息,请使用以下链接。

    【讨论】:

    • 很好的答案,谢谢,但仍然对我们设置的几点感到困惑。我的主数据库的仪表板表明它已针对 Active Geo-Replication 进行设置,并正确列出了辅助数据库。因此,根据您链接到的文档,我应该具有只读访问权限(?)。尽管这是不允许 Active Geo-Replication 的标准层数据库。另外,我在视图 dm_database_copies 中有一个条目,但在 dm_Continuous_copy_status 中什么都没有,这表明复制实际上并没有发生,所以我仍然不知道复制是否正在发生?
    【解决方案2】:

    我试图重现您的情况,我想我理解其中的困惑。 当辅助类型 =“离线”时,它是标准的异地复制辅助。 Primary Databases 页面令人困惑,但是当您单击指向辅助数据库的链接时,应该会显示它处于脱机状态。

    就了解连续复制是否正常工作,针对主节点运行以下脚本(我上次弄错了,抱歉)。 SELECT * FROM sys.dm_Continuous_copy_status

    您应该会看到链接服务器、数据库和复制状态。

    和以前一样,如果您需要从辅助节点读取数据,则必须创建一个高级活动地理复制辅助节点。

    希望这有帮助!

    【讨论】:

    • 非常感谢您的回答。我正在对我的主实例上的主数据库运行该查询,对数据库本身运行它会产生预期的 1 个结果。不过,我有点担心 last_replication 字段中有 NULL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多