Kod*_*ode 2 powershell azure azure-sql-database
尝试使用 PowerShell 和 New-AzSqlDatabaseImport 命令将数据库部署到 Azure SQL 时,我收到以下错误:
New-AzSqlDatabaseImport : An unexpected error occured while processing the request. Tracking ID: 'mytrackingid'
At C:\mydir\mypowershell.ps1:363 char:18
+ ... rtRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresource ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzSqlDatabaseImport], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.NewAzureSqlDatabaseImport
Get-AzSqlDatabaseImportExportStatus : Cannot bind argument to parameter 'OperationStatusLink' because it is null.
At C:\mydir\mypowershell.ps1:376 char:74
+ ... tExportStatus -OperationStatusLink $importRequest.OperationStatusLink
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-AzSqlDatabaseImportExportStatus], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我已经在其他虚拟机上运行了 100 多次这个脚本,我想知道这个虚拟机中是否发生了某些变化或关闭,能够从 blob 存储中获取所需的 bacpac 文件。
我已经检查了 blob 存储的生命周期,但该页面上没有列出任何内容。blob 和容器存在。
我已经安装了 Az 和 SQLServer 模块,并且能够使用 Connect-AzAccount 连接到 Azure,然后通过 Set-AzContext -SubscriptionId 设置我想要的订阅
我已经检查了 NSG 并且能够从我正在运行以下 PowerShell 的 VM 上的浏览器打开网页:
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresourcegroup" `
-ServerName "5878956-sql" `
-DatabaseName "mydatabase"`
-DatabaseMaxSizeBytes "262144000" `
-StorageKeyType "StorageAccessKey" `
-StorageKey "mylongaccesskey" `
-StorageUri "https://myblobs.blob.core.windows.net/mycontainer/mydatabase.bacpac" `
-Edition "Standard" `
-ServiceObjectiveName "S1" `
-AdministratorLogin "azuresqladmin" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "mypassword" -AsPlainText -Force)
# Check import status and wait for the import to complete
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing mydatabase")
while ($importStatus.Status -eq "InProgress")
{
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write(".")
Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
Run Code Online (Sandbox Code Playgroud)
更新 1:
今天进行测试,我能够通过 Azure 门户 GUI 导入数据库,但 PowerShell 不起作用。我可以通过 PowerShell 下载 blob/bacpac 文件,但使用 New-AzSqlDatabaseImport 导入仍然失败。
在检查 Azure 门户活动日志时,它显示以下错误,因此我们认为它正在与 Azure SQL 通信:
"subStatus": {
"value": "InternalServerError",
"localizedValue": "Internal Server Error (HTTP Status Code: 500)"
},
Run Code Online (Sandbox Code Playgroud)
在与 Microsoft 交谈后,我需要调整最大字节数以匹配我尝试部署到的标准版最大 250GB。虽然过去较小的值有效,但调整此值有效。
我改变了这个:
-DatabaseMaxSizeBytes "262144000"
Run Code Online (Sandbox Code Playgroud)
对此:
-DatabaseMaxSizeBytes "268435456000"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |