【发布时间】:2014-11-28 06:46:39
【问题描述】:
我会很感激任何帮助,即使只是建议一种诊断情况的方法。错误消息并没有真正的帮助。
我已经构建了一个新的虚拟机,我正在从中运行 PowerShell 脚本来备份我的数据库。它之前在旧服务器上运行了几个月,在新服务器上运行过一次,然后我升级了我的 Azure PowerShell cmdlet,但无法让它再次运行。大多数情况下,它会说“发送请求时发生错误”,尽管有两次是“将内容复制到流中时出错”。
下面是我的源代码,敏感的东西用 ? 代替。当我显示 $stctx 和 $dbctx 时,它们似乎具有合理的值。我将服务器的 IP 地址作为例外添加到 db 防火墙,并且我已经安装了 SQL Server Management Studio 并验证我可以连接到数据库。
这是我收到的两条错误消息:
Start-AzureSqlDatabaseExport : An error occurred while sending the request.
At C:\Users\Public\PublicCmds\test.ps1:29 char:1
+ Start-AzureSqlDatabaseExport -SqlConnectionContext $dbctx -StorageContext $stctx ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Start-AzureSqlDatabaseExport],
HttpRequestException
+ FullyQualifiedErrorId :
Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.StartAzureSqlDatabaseExport
Start-AzureSqlDatabaseExport : Error while copying content to a stream.
At C:\Users\Public\PublicCmds\test.ps1:29 char:1
+ Start-AzureSqlDatabaseExport -SqlConnectionContext $dbctx -StorageContext $stctx ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Start-AzureSqlDatabaseExport], HttpRequestException
+ FullyQualifiedErrorId :
Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.StartAzureSqlDatabaseExport
这里是源代码的净化版本:
param($dbname)
if ($dbname -eq $null) {
write-host "Database code must be specified"
return
}
$password = "????????" | ConvertTo-SecureString -asPlainText -Force
$servercredential = new-object System.Management.Automation.PSCredential("????", $password)
$dbsize = 1
$dbrestorewait = 10
$dbserver = "????"
$stacct = $dbcode
$stkey = "????????"
$stctx = New-AzureStorageContext -StorageAccountName $stacct -StorageAccountKey $stkey
$dbctx = New-AzureSqlDatabaseServerContext -ServerName $dbserver -Credential $servercredential
$dt = Get-Date
$timestamp = "_" + $dt.Year + "-" + ("{0:D2}" -f $dt.Month) + "-" + ("{0:D2}" -f $dt.Day) + "-" + ("{0:D2}" -f $dt.Hour) + ("{0:D2}" -f $dt.Minute)
$bkupname = $dbname + $timestamp + ".bacpac"
write-host "db context"
$dbctx
write-host "storage context"
$stctx
write-host "Backup $dbname to $bkupname"
Start-AzureSqlDatabaseExport -SqlConnectionContext $dbctx -StorageContext $stctx - StorageContainerName databasebackup -DatabaseName $dbname -BlobName $bkupname
【问题讨论】:
标签: database azure request export