我正在使用同步框架 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();