如何使用命令行将本地数据库作为 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

自动执行此操作