【问题标题】:Removing data sync meta data from Azure Sql database copy从 Azure Sql 数据库副本中删除数据同步元数据
【发布时间】:2021-11-03 15:48:18
【问题描述】:

我正在尝试将我们的生产 Azure SQL 数据库导出到本地以进行测试。我已经制作了数据库的副本,但在尝试导出时出现以下错误。

在用作数据包一部分的架构中发现了一个或多个不受支持的元素。 错误 SQL71501:验证元素 [dss] 时出错:架构:[dss] 具有对对象 [##MS_SyncAccount##] 的未解析引用。 错误 SQL71501:验证元素 [TaskHosting] 时出错:架构:[TaskHosting] 对对象 [##MS_SyncAccount##] 的引用未解析。

我发现这篇文章解释了如何解决这个问题:

https://techcommunity.microsoft.com/t5/azure-database-support-blog/exporting-a-database-that-is-was-used-as-sql-data-sync-metadata/ba-p/369062.

我的问题是,在复制的数据库上运行下面的脚本(来自文章)是否只会影响副本的数据同步元数据,还是存在以任何方式影响我们的生产数据库或服务器的风险?

脚本: https://raw.githubusercontent.com/vitomaz-msft/DataSyncMetadataCleanup/master/Data%20Sync%20complete%20cleanup.sql

非常感谢

【问题讨论】:

  • 作为参考,上面的脚本正确地从复制的数据库中删除了同步元数据,因此可以将其导出,并且不会影响任何其他数据库。

标签: export azure-sql-database azure-data-sync


【解决方案1】:

链接中提供的脚本只会清理同步数据库对象,您可以检查 where 条件中提到的架构名称。如果您想更确定您可以只运行 select 语句并针对主数据库重新验证对象。

例如,下面的语句将使用 where 子句中提到的特定模式名称获取存储过程。

select @procedures = isnull( @procedures + @n, '' ) + 'drop procedure [' + schema_name(schema_id) + '].[' + name + ']'
from sys.procedures
where schema_name(schema_id) = 'dss' or schema_name(schema_id) = 'TaskHosting' or schema_name(schema_id) = 'DataSync'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 2019-06-23
    • 2022-06-10
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多