1

我正在使用同步框架 2.1 来同步我的数据库,它只是单向的,即源到目标数据库。第一次同步数据库时遇到问题。我将表分成不同的组,以便在同步时减少开销。我有一张表,里面有 90 万条记录。在同步该表时,SyncOrchestrator.Synchronize(); 方法不返回任何东西。网络使用率,磁盘 i/o 一切都变高了。我已经等待 2 天完成同步过程,但它仍然没有发生任何事情。我还使用“sp_who2”检查了 sql db,并且该进程处于挂起模式。我还使用了一些从网上找到的查询,它说 table_selectchanges 需要太多时间。

我使用以下代码来同步我的数据库。

//setup the connections
var serverConn = new SqlConnection(sourceConnectionString);
var clientConn = new SqlConnection(destinationConnectionString);

// create the sync orchestrator
var syncOrchestrator = new SyncOrchestrator();

//setup providers
var localProvider = new SqlSyncProvider(scopeName, clientConn);
var remoteProvider = new SqlSyncProvider(scopeName, serverConn);

localProvider.CommandTimeout = 0;
remoteProvider.CommandTimeout = 0;

localProvider.ObjectSchema = schemaName;
remoteProvider.ObjectSchema = schemaName;

syncOrchestrator.LocalProvider = localProvider;
syncOrchestrator.RemoteProvider = remoteProvider;

// set the direction of sync session Download
syncOrchestrator.Direction = SyncDirectionOrder.Download;

// execute the synchronization process
syncOrchestrator.Synchronize();
4

1 回答 1

1

我们遇到了这个问题。我们从数据库中删除了第一次同步的所有外键约束。这将初始同步时间从超过 4 小时减少到大约 10 分钟。初始同步完成后,我们替换了外键约束。

于 2019-07-18T19:02:04.377 回答