如何使用命令行将本地数据库作为 bacpac 直接导出到 AZURE blob
How to export on premise database as bacpac directly to AZURE blob using command line
我们能够使用以下命令创建 bacpac,
C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin>
sqlpackage.exe /Action:Export /ssn:. /sdn:演示 /tf:d:\bacpac\demo.bacpac
但是我们希望自动执行以下操作,
也可以使用类似的东西通过 SSMS 完成此操作
备份数据库演示
至 URL = @FullName
WITH CREDENTIAL = democredential;
您可以使用 Azcopy 将这些 bacpac 文件上传到 Azure BLOB 存储帐户,如下所示:
AzCopy /Source:"d:\bacpac" /Dest:"https://exampleaccount.blob.core.windows.net/bacpacs" /DestKey:storageaccountkey /Pattern:*.bacpac
希望对您有所帮助。
您可以使用 Powershell 脚本实现此目的,
$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
要检查导出状态,您可以使用下面的
$exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
参考here
如果您想使用 Azure Automation RunBook
自动执行此操作
我们能够使用以下命令创建 bacpac,
C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin>
sqlpackage.exe /Action:Export /ssn:. /sdn:演示 /tf:d:\bacpac\demo.bacpac
但是我们希望自动执行以下操作,
也可以使用类似的东西通过 SSMS 完成此操作
备份数据库演示
至 URL = @FullName
WITH CREDENTIAL = democredential;
您可以使用 Azcopy 将这些 bacpac 文件上传到 Azure BLOB 存储帐户,如下所示:
AzCopy /Source:"d:\bacpac" /Dest:"https://exampleaccount.blob.core.windows.net/bacpacs" /DestKey:storageaccountkey /Pattern:*.bacpac
希望对您有所帮助。
您可以使用 Powershell 脚本实现此目的,
$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
要检查导出状态,您可以使用下面的
$exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
参考here
如果您想使用 Azure Automation RunBook
自动执行此操作