无法将Azure SQL数据库从一个资源组移动到另一个资源组

时间:2015-12-17 05:17:48

标签: azure azure-sql-database azure-powershell azure-resource-manager

我们试图将数据库从一个资源组移动到另一个资源组。不幸的是,我们在尝试移动数据库时收到以下错误消息:

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

您能告诉我们如何将数据库移动到另一个资源组吗?

3 个答案:

答案 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