Mr_road
Mr_road

Reputation: 564

Azure Export SQL database example

Given Microsoft is deprecating the previous method of exporting a SQL DB they have put up a suggested example 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

I have filled in all the credentials as suggested in their example and I am getting this error:

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

Does anyone have any idea what I am doing wrong?

Upvotes: 7

Views: 4208

Answers (4)

JKennedy
JKennedy

Reputation: 18789

Seems really stupid but the error for me was because my "DatabaseName" parameter was case sensitive.

I was sending in the value "database" but the actual database name was "Database"

seems crazy but might help someone out

Upvotes: 1

Jim Wooley
Jim Wooley

Reputation: 10398

It appears that the database name is case sensitive when using az sql db export. Correcting the casing on the database name and resource group solved this issue in my case.

Upvotes: 4

Mr_road
Mr_road

Reputation: 564

This has just come out from MS/Azure and helps greatly with DB Export.

https://github.com/Microsoft/sql-server-samples/tree/master/samples/manage/azure-automation-automated-export

Upvotes: 2

juvchan
juvchan

Reputation: 6245

The PowerShell script example in your question above is tested working as expected for me.

However, I am not able to reproduce the same error message as yours even try to use non-existent resource group, database server or database.

Important Note:

  1. For $serverAdmin and $serverPassword, their values should be single-quoted instead of double-quoted for the script to work
  2. Check the version of your AzureRm.Sql module. Mine tested working is 2.5.0
  3. Try to use -Debug for your New-AzureRmSqlDatabaseExport command line to see the details

Upvotes: 2

Related Questions