当尝试使用带有New-AzSqlDatabaseImport命令的PowerShell将数据库部署到Azure SQL时,我收到以下错误:
New-AzSqlDatabaseImport : An unexpected error occured while processing the request. Tracking ID: 'mytrackingid'
At C:mydirmypowershell.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:mydirmypowershell.ps1:376 char:74
+ ... tExportStatus -OperationStatusLink $importRequest.OperationStatusLink
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-AzSqlDatabaseImportExportStatus], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
奇怪的是,我已经在其他虚拟机上运行了100多次这个脚本,我想知道这个虚拟机是否发生了变化或关闭了,从而能够从blob存储中获取所需的bacpac文件。
我已经检查了blob存储的生命周期,该页面上没有列出任何内容。blob和容器存在。
我已经安装了Az和SQLServer模块,并且能够使用connect AzAccount连接到Azure,然后通过Set AzContext-SubscriptionId 设置我想要的订阅
我已经检查了NSG,并且能够从VM上的浏览器打开网页。我正在运行以下PowerShell:
$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
更新1:
今天测试,我可以通过Azure门户GUI导入数据库,但PowerShell不起作用。我可以通过PowerShell下载blob/bacpac文件,但使用New-AzSqlDatabaseImport导入仍然失败。
在检查Azure门户活动日志时,它显示了以下错误,因此我们认为它正在与Azure SQL:通信
"subStatus": {
"value": "InternalServerError",
"localizedValue": "Internal Server Error (HTTP Status Code: 500)"
},
在与微软交谈后,我需要调整最大字节数,以匹配我试图部署到的250GB的标准版最大字节数。虽然过去较小的值有效,但调整它有效。
我改了这个:
-DatabaseMaxSizeBytes "262144000"
到此:
-DatabaseMaxSizeBytes "268435456000"
@Kode。为我指明了正确的方向。有效号码为
Maximum Size Maximum Size Available
(in bytes) (in GB) (edition)
104857600 0.1 Premium, Standard, Basic
524288000 0.5 Premium, Standard, Basic
1073741824 1 Premium, Standard, Basic
2147483648 2 Premium, Standard, Basic
5368709120 5 Premium, Standard
10737418240 10 Premium, Standard
21474836480 20 Premium, Standard
32212254720 30 Premium, Standard
42949672960 40 Premium, Standard
53687091200 50 Premium, Standard
107374182400 100 Premium, Standard
161061273600 150 Premium, Standard
214748364800 200 Premium, Standard
268435456000 250 Premium, Standard
322122547200 300 Premium
429496729600 400 Premium
536870912000 500 Premium