同步 Sql Server 和 Sql Azure - Sync Framework 时出现上载和下载错误



我正在尝试将Sql Server数据库与SQL Azure数据库同步(请耐心等待,因为我不完全了解同步框架)。这些是要求:

  • 首先:将 1 个表从 Sql Azure 同步到 Sql Server
  • 第二:将其他 13 个表(包括我在第一步中提到的表)从 Sql Server 同步到 Azure。我创建了一个控制台应用程序,这是代码:

1.我用13个表创建一个范围:

DbSyncScopeDescription myScope = new DbSyncScopeDescription("alltablesyncgroup");
DbSyncTableDescription table = qlSyncDescriptionBuilder.GetDescriptionForTable("tablename", sqlServerConn);
myScope.Tables.Add(table); //repeated 13 times.

2.I 提供两个数据库:

SqlSyncScopeProvisioning sqlAzureProv = new SqlSyncScopeProvisioning(sqlAzureConn,myScope);
if (!sqlAzureProv.ScopeExists("alltablesyncgroup"))
{
 sqlAzureProv.Apply();
}
SqlSyncScopeProvisioning sqlServerProv = new SqlSyncScopeProvisioning(sqlServerConn, myScope);
if (!sqlServerProv.ScopeExists("alltablesyncgroup"))
{
  sqlServerProv.Apply();          
}

3.我使用 SyncDirectionOrder 创建 SyncOrchestrator.下载以同步第一个表:

SqlConnection sqlServerConn = new SqlConnection(sqllocalConnectionString);
SqlConnection sqlAzureConn = new SqlConnection(sqlazureConnectionString);
SyncOrchestrator orch = new SyncOrchestrator
{
  RemoteProvider = new SqlSyncProvider(scopeName, sqlAzureConn),
  LocalProvider = new SqlSyncProvider(scopeName, sqlServerConn),
  Direction = SyncDirectionOrder.Download
};
orch.Synchronize();

4.后来,我使用相同的功能,只更改方向同步方向顺序.上传以同步剩余的 13 个表

SqlConnection sqlServerConn = new SqlConnection(sqllocalConnectionString);
SqlConnection sqlAzureConn = new SqlConnection(sqlazureConnectionString);
SyncOrchestrator orch = new SyncOrchestrator
{
  RemoteProvider = new SqlSyncProvider(scopeName, sqlAzureConn),
  LocalProvider = new SqlSyncProvider(scopeName, sqlServerConn),
  Direction = SyncDirectionOrder.Upload
};
orch.Synchronize();

现在,事情是这样的,显然我做错了,因为当我下载时,syncStats 显示已经应用了很多更改,但我看不到它反映在任何数据库中,当我尝试执行上传同步时,它似乎进入了一个循环'因为上传过程不会停止。

谢谢!!!

首先,你提到你只想将一个表从 Azure 同步到 SQL Server,但你在作用域中预配了 13 个表。 如果需要一个表,只需预配一个包含一个表的范围。(例如,一个范围用于使用表下载,一个范围用于与其余表一起上传)

若要找出行未同步的原因,可以订阅两端的 ApplyChangeFailed 事件,并检查是否遇到冲突或错误。

或者,可以在详细模式下启用同步框架跟踪,以便查看下面发生的情况。

最新更新