Database 整个本地数据库与sql azure同步
我正在开发一个使用本地数据库的windows应用程序。 我想添加一个函数,将所有本地数据同步到sql azure 目前我使用以下代码。它使我能够成功地同步一个特定的表。这里是“Author\u Master” 以及以下方法Database 整个本地数据库与sql azure同步,database,azure,azure-sql-database,microsoft-sync-framework,azure-data-sync,Database,Azure,Azure Sql Database,Microsoft Sync Framework,Azure Data Sync,我正在开发一个使用本地数据库的windows应用程序。 我想添加一个函数,将所有本地数据同步到sql azure 目前我使用以下代码。它使我能够成功地同步一个特定的表。这里是“Author\u Master” 以及以下方法 private static void prepareServer(SqlSyncProvider provider) { SqlConnection connection = (SqlConnection)provider.Connection;
private static void prepareServer(SqlSyncProvider provider)
{
SqlConnection connection = (SqlConnection)provider.Connection;
SqlSyncScopeProvisioning config = new SqlSyncScopeProvisioning(connection);
if (!config.ScopeExists(provider.ScopeName))
{
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(provider.ScopeName);
scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("Author_Master", connection));
config.PopulateFromScopeDescription(scopeDesc);
config.SetCreateTableDefault(DbSyncCreationOption.CreateOrUseExisting);
config.Apply();
}
}
private static void prepareClinet(SqlSyncProvider provider, SqlConnection sourceConnection)
{
SqlConnection connection = (SqlConnection)provider.Connection;
SqlSyncScopeProvisioning config = new SqlSyncScopeProvisioning(connection);
if (!config.ScopeExists(provider.ScopeName))
{
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(provider.ScopeName);
scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("Author_Master", sourceConnection));
config.PopulateFromScopeDescription(scopeDesc);
config.Apply();
}
}
我的问题是:有没有办法一次同步数据库中的所有表,而不逐个添加表
我的两个数据库具有相同的模式。
请给出一些建议,您可以使用SQL数据库迁移向导(SQLAzureMW) 它是一个开源应用程序 您可以使用它在Microsoft Azure SQL数据库之间迁移SQL数据库 SQLAzureMW有一个用户交互向导,引导用户完成分析/迁移过程 有关详细信息,请参阅
我希望这将对您有所帮助。如果您使用的是同步框架,您必须明确告诉它哪些表(甚至列)要实际同步。您可以使用SQL数据同步工具
Dim clientProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(clientCon, syncScope)
If Not (clientProvision.ScopeExists("Scope_" + tableName)) Then
clientProvision.Apply()
End If
Dim serverProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(serverCon, syncScope)
If Not (serverProvision.ScopeExists("Scope_" + tableName)) Then
serverProvision.Apply()
End If
Dim syncOrchestrator As New SyncOrchestrator()
' Create provider for SQL Server
Dim clientProvider As New SqlSyncProvider("Scope_" + tableName, clientCon)
' Set the command timeout and maximum transaction size for the SQL Azure provider.
Dim serverProvider As New SqlSyncProvider("Scope_" + tableName, serverCon)
' Set Local provider of SyncOrchestrator to the onPremise provider
syncOrchestrator.LocalProvider = clientProvider
' Set Remote provider of SyncOrchestrator to the azureProvider provider
syncOrchestrator.RemoteProvider = serverProvider
' Set the direction of SyncOrchestrator session to Upload and Download
syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload
'Dim thread As New Threading.Thread(Sub() ShowStatistics(syncOrchestrator.Synchronize(), tableName))
'thread.Start()
ShowStatistics(syncOrchestrator.Synchronize(), tableName)
SQL数据同步是Windows Azure SQL数据库的一项功能
使用SQL数据同步,您可以通过Windows Azure SQL数据库实例同步所选数据
SQL数据同步支持在Windows Azure数据中心内部或之间进行同步
SQL数据同步还支持SQL数据库实例和本地SQL Server数据库的混合配置
SQL数据同步服务是免费的
有关更多详细信息,请查看“SQL数据同步”子主题
我希望这会对你有所帮助。我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。亲爱的,我正在寻找同样的你是如何做到这一点为一个表你可以帮我这件事,因为我已经使用以下代码来做这件事。您可以试试。@las in m在mvc4中做同样的事情我使用了您的代码,但在SqlSyncProvider和all@las现在我已经删除了所有的代码,但现在的问题是它没有被执行。目前我正在使用它,是否可以迭代数据库查询中的所有表并执行上面的代码?您只需要设置一次。是的,您可以在“将表添加到范围”中遍历表列表。好的,谢谢您的建议,这就是我将要使用的内容now@las为什么?有什么特殊要求吗?迁移向导不是同步工具。这是一个迁移工具。您不能使用迁移工具进行增量同步。@JuneT感谢您提供宝贵的信息。我将相应地更新我的帖子。@las检查此工具。可能对您有帮助。@las很高兴听到它有帮助。
Dim clientProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(clientCon, syncScope)
If Not (clientProvision.ScopeExists("Scope_" + tableName)) Then
clientProvision.Apply()
End If
Dim serverProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(serverCon, syncScope)
If Not (serverProvision.ScopeExists("Scope_" + tableName)) Then
serverProvision.Apply()
End If
Dim syncOrchestrator As New SyncOrchestrator()
' Create provider for SQL Server
Dim clientProvider As New SqlSyncProvider("Scope_" + tableName, clientCon)
' Set the command timeout and maximum transaction size for the SQL Azure provider.
Dim serverProvider As New SqlSyncProvider("Scope_" + tableName, serverCon)
' Set Local provider of SyncOrchestrator to the onPremise provider
syncOrchestrator.LocalProvider = clientProvider
' Set Remote provider of SyncOrchestrator to the azureProvider provider
syncOrchestrator.RemoteProvider = serverProvider
' Set the direction of SyncOrchestrator session to Upload and Download
syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload
'Dim thread As New Threading.Thread(Sub() ShowStatistics(syncOrchestrator.Synchronize(), tableName))
'thread.Start()
ShowStatistics(syncOrchestrator.Synchronize(), tableName)