Azure导出SQL数据库示例

时间:2017-02-01 15:05:24

标签: sql-server azure backup azure-powershell azure-sql-database

鉴于Microsoft已弃用先前导出SQL DB的方法,他们提出了一个建议示例here

$subscriptionId = "YOUR AZURE SUBSCRIPTION ID"

Login-AzureRmAccount
Set-AzureRmContext -SubscriptionId $subscriptionId

# Database to export
$DatabaseName = "DATABASE-NAME"
$ResourceGroupName = "RESOURCE-GROUP-NAME"
$ServerName = "SERVER-NAME"
$serverAdmin = "ADMIN-NAME"
$serverPassword = "ADMIN-PASSWORD" 
$securePassword = ConvertTo-SecureString -String $serverPassword -AsPlainText -Force
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $serverAdmin, $securePassword

# Generate a unique filename for the BACPAC
$bacpacFilename = $DatabaseName + (Get-Date).ToString("yyyyMMddHHmm") + ".bacpac"

# Storage account info for the BACPAC
$BaseStorageUri = "https://STORAGE-NAME.blob.core.windows.net/BLOB-CONTAINER-NAME/"
$BacpacUri = $BaseStorageUri + $bacpacFilename
$StorageKeytype = "StorageAccessKey"
$StorageKey = "YOUR STORAGE KEY"

$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
   -DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
   -AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
$exportRequest

# Check status of the export
Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink

我填写了他们示例中建议的所有凭据,我收到此错误:

New-AzureRmSqlDatabaseExport : NotFound: Entity not found to invoke export
At C:\Users\bob\Desktop\DBBackupScript.ps1:47 char:18
+ ... rtRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $Resource ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmSqlDatabaseExport], CloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.NewAzureSqlDatabaseExport

有谁知道我做错了什么?

4 个答案:

答案 0 :(得分:4)

使用az sql db export时,数据库名称似乎区分大小写。在我的案例中,更正数据库名称和资源组的大小写解决了这个问题。

答案 1 :(得分:2)

上述问题中的PowerShell脚本示例已按预期的方式对我进行了测试。

但是,即使尝试使用不存在的资源组,数据库服务器或数据库,我也无法重现与您相同的错误消息。

重要提示:

  1. 对于$serverAdmin$serverPassword,他们的值应该是单引号而不是双引号才能让脚本正常工作
  2. 检查AzureRm.Sql模块的版本。矿山测试工作 2.5.0
  3. 尝试使用 -Debug 作为New-AzureRmSqlDatabaseExport命令行查看详细信息

答案 2 :(得分:2)

答案 3 :(得分:1)

似乎真的很愚蠢,但对我来说,错误是因为我的“ DatabaseName”参数区分大小写。

我正在发送值“数据库” ,但实际的数据库名称是“数据库”

似乎疯了,但可能会帮助某人