将SQL Server数据库迁移到Azure SQL数据库

时间:2019-01-02 11:29:58

标签: azure azure-sql-database

我们在vm上有一个sql服务器,还有一个Azure SQL数据库,现在我们想将vm db迁移/恢复到Azure db。我知道如何通过ssms手动进行操作。但是我们要计划它,因为我们需要每天运行它。我找不到T-SQL脚本来执行这些操作。有什么办法吗?

3 个答案:

答案 0 :(得分:0)

您可以将下面的PowerShell脚本与Azure Automation结合使用,以安排bacpac的创建和到Azure SQL数据库的导入过程。

首先,您需要创建一个Blob存储帐户,然后在该存储帐户上创建一个容器。

Set-AzureSubscription -CurrentStorageAccountName “YourStorageAccountName” -SubscriptionName $subscription 

New-AzureStorageContainer -Name “mycontainer” -Permission Off 

现在,您需要使用SqlPackage创建一个bacpac。您可以使用Windows上的“计划任务”或使用PowerShell来计划bacpac的创建。

SqlPackage /Action:Export /SourceServerName:SampleSQLServer.sample.net,1433 /SourceDatabaseName:SampleDatabase /TargetFile:"F:\Temp\SampleDatabase.bacpac"

接下来使用PowerShell将bacpac上传到存储帐户。

Set-AzureStorageBlobContent -Container “mycontainer” -File “F:\Temp\SampleDatabase.bacpac” 

现在,您可以将bacpac作为新数据库导入到Azure SQL数据库逻辑服务器中:

Get-AzureStorageKey –StorageAccountName “YourStorageAccountName” 

$primarykey=(Get-AzureStorageKey -StorageAccountName “YourStorageAccountName”).Primary 

$StorageUri=(Get-AzureStorageBlob -blob ‘SampleDatabase.bacpac’ -Container ‘mycontainer’).ICloudBlob.uri.AbsoluteUri 

答案 1 :(得分:0)

除了导入/导出,您还可以使用快照复制或事务复制。参见Replication to SQL Database single and pooled databases

答案 2 :(得分:0)

您可以使用SQL Data Sync,它将每天进行几次同步,您可以自行配置时间间隔。

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-sync-data

  

混合数据同步:使用数据同步,可以使本地数据库和Azure SQL数据库之间的数据保持同步,以启用混合应用程序。此功能可能会吸引正在考虑迁移到云并希望将其某些应用程序放入Azure的客户。

相关问题