【问题标题】:Azure Data Sync: Failed to perform data sync operation: Table do not have clustered indexAzure 数据同步:无法执行数据同步操作:表没有聚集索引
【发布时间】:2019-02-11 23:35:51
【问题描述】:

我收到1: https://i.stack.imgur.com/EiSRL.png

我意识到之前有一篇关于这个主题的帖子,到目前为止,它的答案似乎至少适合 2 人。 Azure Data Sync Clustered Index Error

但是,我已尝试实施该建议,但无法让它接受 Azure 端的非聚集索引进行同步。我尝试在同步组内的 Azure 表中刷新双方的架构。我尝试删除表并让 Azure 自行配置它们。还没有什么对我有用。有谁知道这个选项是否仍然有效或者我忽略了什么?

HubTableStructure

MemberTableStructure

MemberTestTable

HubTestTable

【问题讨论】:

  • 是否可以在中心数据库和成员数据库上共享当前的表结构?
  • 聚集索引的数据类型是什么?例如,它不能是唯一标识符。 SQL Data Sync 不支持将某些数据类型作为聚集索引。
  • 我不确定共享当前表结构的确切含义。如果我理解正确,我会深入研究表格并提供来自 Hub 的两个表格片段和原始问题中的成员备份。似乎 S/O 文本编辑器不允许我粘贴并列或两张图像,对此我深表歉意。如果这有帮助,请告诉我。
  • 感谢添加表结构
  • 我将不得不与 Microsoft 工程师分享这一点,并尝试获取一些可能的原因和解决方案/解决方法。

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


【解决方案1】:

从您添加到问题的图像中,我们没有看到创建的聚集索引。聚集索引是使用 SQL 数据同步的必要条件。

一位 Microsoft 工程师询问您是否在集线器和成员数据库上使用聚集索引重新创建了表。之后,他建议您需要删除该表,然后将其重新添加以获取新的更改。或者重新创建同步组可能更容易。

【讨论】:

  • 让我试试看。 . .我会回复你的!
  • 我认为没有聚集索引是问题所在。我创建了一个模拟表,将其同步到集线器,并意外让它自动配置集线器表。在这种情况下,它实际上是同步的,但忽略了外键关系。然后我删除了表和两个成员/集线器跟踪表,运行成员的创建脚本来创建集线器表,然后尝试同步。那时同步完成,但出现警告且没有数据。我在原始问题中包含了模拟表结构。
  • 正如我的回答中提到的,聚集索引是每个表与 SQL 数据同步同步的要求。
  • 确实,添加聚簇索引是正确的。就我而言,我需要使用导出向导从源数据库生成一个包含数据的脚本,然后在运行之前在脚本中添加一个聚集索引。感谢您的帮助,非常感谢。
猜你喜欢
  • 2018-08-02
  • 1970-01-01
  • 2021-11-28
  • 2010-09-14
  • 2019-05-27
  • 2015-11-23
  • 2017-04-14
  • 2020-03-05
  • 2021-07-13
相关资源
最近更新 更多