我们试图将数据库从一个资源组移动到另一个资源组。不幸的是,我们在尝试移动数据库时收到以下错误消息:
Move-AzureRmResource:ResourceNotTopLevel:Identifier''不是顶级 资源。 在行:1个字符:1 + Move-AzureRmResource -DestinationResourceGroupName -ResourceId / subscrip ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:CloseError:(:) [Move-AzureRmResource],ErrorResponseMessageException + FullyQualifiedErrorId:ResourceNotTopLevel,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.Move AzureResourceCommand
请参阅下面用于移动数据库的命令,
$ resource = Get-AzureRmResource -ResourceName Name -ResourceGroupName oldRG
Move-AzureRmResource -DestinationResourceGroupName NewRG -ResourceId $ resource.ResourceId
您能告诉我们如何将数据库移动到另一个资源组吗?
答案 0 :(得分:3)
您需要将父数据库服务器和数据库的资源ID 一起移动到另一个资源组。
错误:ResourceNotTopLevel : Identifier '' is not a top level resource
已经明确指出数据库的资源ID不是顶级资源。这实际上意味着您需要移动顶级资源才能移动子资源。
在这种情况下,您的顶级资源应该是您的数据库服务器。
-ResourceId
的{{1}}参数实际上包含字符串数组Move-AzureRmResource
此link也会报告与此类似的问题。
希望这有帮助!
答案 1 :(得分:1)
根据您在问题中给出的命令,您没有为DestinationResourceGroupName和ResourceId参数提供值。 您应该分别为这些参数提供目标资源组的名称和要移动的资源的ID。
示例:
public CustomerDto Customer;
public List<LeadServicesDto> LeadServices;
有关详细信息,请参阅https://azure.microsoft.com/en-in/documentation/articles/resource-group-move-resources/。
由于Move-AzureRmResource cmdlet非常新且经常更新,因此请确保您使用的是最新的PowerShell版本。
答案 2 :(得分:0)
谢谢大家的回复。
最后,我得到了Azure支持团队的回复。根据支持团队的说法,无法跨资源组移动单个数据库,需要移动整个服务器
我已经成功地将服务器转移到另一个resoruce grops。
以下是我使用powershell移动SQL服务器的命令。
$ resource = Get-AzureRmResource -ResourceName {servername} -ResourceGroupName {oldRG}
Move-AzureRmResource -DestinationResourceGroupName {newRG} -ResourceId $ resource.ResourceId