【问题标题】:Azure Data Sync Clustered Index ErrorAzure 数据同步聚集索引错误
【发布时间】:2018-08-02 00:51:05
【问题描述】:

我们正在尝试设置 Azure 数据库同步组,以将我们的数据从本地服务器复制到 Azure SQL 数据库。这是迁移到 Azure 的第一步。

同步组和同步代理均已设置完毕。 当我们按下“同步”按钮时,我们会收到以下错误:

触发器同步失败:无法执行数据同步操作:表“[dbo].[DocumentTypeDocumentVariables]”没有聚集索引。

此表没有聚集索引,但有非聚集唯一主键索引。

  • 我们尝试添加聚集索引,但出现了同样的错误。
  • 我们尝试删除非聚集 PK 索引并创建一个唯一的聚集 PK 索引,但这给了我们同样的错误。

可能出了什么问题?

【问题讨论】:

  • 我在源代码“docs.microsoft.com/en-us/azure/sql-database/…”中读到了以下限制 表不能有不是主键的标识列。对象(数据库、表和列)的名称不能包含可打印字符句点 (.)、左方括号 ([) 或右方括号 (])。不支持 Azure Active Directory 身份验证。此表没有带有标识的 PK。也许这就是问题所在。
  • 当您删除非聚集 PK 索引并创建唯一聚集 PK 索引时,您是否从头开始重试这些步骤?我的意思是重新创建组和代理,然后再次尝试同步。我以前遇到过同样的错误,在我将索引更改为聚集索引并从头开始重试后它就起作用了。似乎数据同步功能现在只支持具有集群 PK 索引的数据库,但 official doc 说“每个表必须有一个主键”而不是“必须有一个集群 PK”。

标签: azure azure-sql-database database-replication clustered-index non-clustered-index


【解决方案1】:

请使用与本地数据库相同的架构(包括索引)并且没有数据在 Azure SQL 数据库上重新创建数据库,然后尝试配置 SQL 数据同步。您可以使用 SQL Server Management Studio 创建一个没有本地数据库数据的脚本,然后使用该脚本在 Azure SQL 数据库上重新创建所有数据库对象。 Azure 上没有数据也会使初始同步更快。如果两个数据库架构存在差异,则 SQL 数据同步将不起作用

【讨论】:

    猜你喜欢
    • 2019-02-11
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2022-01-16
    • 2019-10-25
    • 2012-08-26
    相关资源
    最近更新 更多