نقل موارد Azure إلى مجموعة موارد جديدة أو اشتراك جديد

توضح هذه المقالة كيفية نقل موارد Azure إلى اشتراك Azure آخر أو مجموعة موارد أخرى ضمن نفس الاشتراك. يُمكنك نقل الموارد من خلال مدخل Microsoft Azure أو PowerShell أو Azure CLI أو REST API.

تم تأمين كل من مجموعة المصدر ومجموعة الهدف أثناء عملية النقل. يتم حظر عمليتي الكتابة والحذف على مجموعات الموارد حتى تكتمل عملية النقل. يعني هذا القفل أنه لا يمكنك إضافة موارد في مجموعات الموارد أو تحديثها أو حذفها. هذا لا يعني أن الموارد مجمدة. على سبيل المثال، إذا قمت بنقل خادم SQL Azure منطقي وقواعد بياناته والموارد الأخرى التابعة له إلى مجموعة موارد جديدة أو اشتراك جديد، فلن تواجه التطبيقات التي تستخدم قواعد البيانات أي توقف. لا يزال بإمكانها القراءة والكتابة إلى قواعد البيانات. يمكن أن يستمر القفل لمدة أقصاها أربع ساعات، ولكن تكتمل معظم عمليات النقل في وقت أقل بكثير.

إذا تطلبت خطوتك إعداد موارد تابعة جديدة، فسوف تواجه انقطاعاً في هذه الخدمات حتى تتم إعادة تكوينها.

سيؤدي نقل المورد إلى نقله فقط إلى مجموعة موارد جديدة أو اشتراك جديد. ولا يؤدي إلى تغيير موقع المورد.

معرف المورد المتغير

عند نقل المورد، يمكنك تغيير معرف المورد الخاص به. التنسيق القياسي لم معرف المورد هو /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. عند نقل مورد إلى مجموعة موارد جديدة أو اشتراك جديد، يمكنك تغيير قيمة واحدة أو أكثر في هذا المسار.

إذا كنت تستخدم معرف المورد في أي مكان، فستحتاج إلى تغيير هذه القيمة. على سبيل المثال، إذا كانت لديك لوحة معلومات مخصصة في المدخل تشير إلى معرف مورد، فستحتاج إلى تحديث هذه القيمة. ابحث عن أي برامج نصية أو قوالب تحتاج إلى تحديث لمعرف المورد الجديد.

قائمة اختيار قبل نقل الموارد

هناك بعض الخطوات المهمة التي يجب القيام بها قبل نقل المورد. عن طريق التحقق من هذه الشروط، يمكنك تجنب الأخطاء.

  1. يجب أن تكون اشتراكات المصدر والوجهة نشطة. إذا واجهت مشكلة في تمكين حساب تم تعطيله، فأنشئ طلب دعم Azure. حدد إدارة الاشتراك لنوعِ المشكلة.

  2. يجب أن تكون اشتراكات المصدر والوجهة موجودة داخل نفس مستأجر Microsoft Entra. للتحقق من أن كلا الاشتراكين لهما نفس معرف المستأجر، استخدم Azure PowerShell أو Azure CLI.

    بالنسبة إلى Azure PowerShell، استخدم:

    (Get-AzSubscription -SubscriptionName <your-source-subscription>).TenantId
    (Get-AzSubscription -SubscriptionName <your-destination-subscription>).TenantId
    

    بالنسبة إلى Azure CLI، استخدم:

    az account show --subscription <your-source-subscription> --query tenantId
    az account show --subscription <your-destination-subscription> --query tenantId
    

    إذا لم تكن معرفات المستأجر الخاصة باشتراكات المصدر والوجهة واحدة، فاستخدم الأساليب التالية لتسوية معرفات المستأجر:

  3. إذا كنت تحاول نقل الموارد من أو إلى شريك Cloud Solution Provider (CSP)، فراجع نقل اشتراكات Azure بين المشتركين وموفري خدمات الحوسبة السحابية.

  4. يجب أن تدعم الموارد التي تريد نقلها عملية النقل. للحصول على قائمة بالموارد التي يمكن نقلها، راجع الدعم المقدم لعمليات نقل الموارد.

  5. بعض الخدمات لها قيود أو متطلبات محددة عند نقل الموارد. إذا كنت تقوم بنقل أي من الخدمات التالية، فتحقق من هذا التوجيه قبل النقل.

  6. يجب تسجيل الاشتراك الوجهة لموفر الموارد للمورد الذي يتم نقله. إذا لم يكن الأمر كذلك، فستتلقى خطأ يفيد بأن الاشتراك غير مسجل لنوع مورد. قد ترى هذا الخطأ عند نقل مورد إلى اشتراك جديد مع عدم استخدام هذا الاشتراك مع نوع المورد هذا.

    بالنسبة PowerShell، استخدم الأوامر التالية للحصول على حالة التسجيل:

    Set-AzContext -Subscription <destination-subscription-name-or-id>
    Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
    

    لتسجيل موفر الموارد، استخدم:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

    بالنسبة إلى Azure CLI، استخدم الأوامر التالية للحصول على حالة التسجيل:

    az account set -s <destination-subscription-name-or-id>
    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    لتسجيل موفر الموارد، استخدم:

    az provider register --namespace Microsoft.Batch
    
  7. قبل نقل الموارد، تحقق من حصص الاشتراك للاشتراك الذي تنقل الموارد إليه. إذا كان نقل الموارد يعني أن الاشتراك سيتجاوز حدوده، فستحتاج إلى مراجعة ما إذا كان يمكنك طلب زيادة على الحصة. للحصول على قائمة بالحدود وكيفية طلب الزيادة، راجع حدود الاشتراك والخدمات في Azure والحصص والقيود.

  8. يجب أن يتمتع الحساب الذي ينقل الموارد الأذونات التالية على الأقل:

    • Microsoft.Resources/subscriptions/resourceGroups/moveResources/action على مجموعة موارد المصدر.
    • Microsoft.Resources/subscriptions/resourceGroups/write على مجموعة موارد الوجهة.
  9. إذا قمت بنقل مورد له دور Azure معيّن مباشرة إلى المورد (أو مورد تابع)، فلا يتم نقل تعيين الدور ويصبح معزولاً. بعد النقل، يجب إعادة إنشاء تعيين الدور. أخيراً، تتم إزالة تعيين الدور المعزول تلقائياً، ولكن نوصي بإزالة تعيين الدور قبل النقل.

    للحصول على معلومات عن كيفية إدارة تعيينات الأدوار، راجع إدراج تعيينات دور Azure وتعيين أدوار Azure.

  10. للنقل عبر الاشتراكات، يجب أن يكون المورد وموارده التابعة موجودة في نفس مجموعة الموارد ويجب نقلها معاً. على سبيل المثال، سيتطلب الجهاز الظاهري بأقراص مدارة نقل الجهاز الظاهري والأقراص المدارة معاً، جنباً إلى جنب مع الموارد التابعة الأخرى.

    إذا كنت تنقل مورداً إلى اشتراك جديد، فتحقق لمعرفة ما إذا كان المورد لديه أي موارد تابعة، وما إذا كانت موجودة في نفس مجموعة الموارد. إذا لم تكن الموارد في نفس مجموعة الموارد، فتحقق لمعرفة ما إذا كان يمكن دمج الموارد في نفس مجموعة الموارد. إذا كان الأمر كذلك، فأحضر جميع هذه الموارد إلى نفس مجموعة الموارد باستخدام عملية نقل عبر مجموعات الموارد.

    لمزيد من المعلومات، راجع سيناريو النقل عبر الاشتراكات.

سيناريو النقل عبر الاشتراكات

نقل الموارد من اشتراك إلى آخر عملية من ثلاث خطوات:

Diagram that shows the three-step process of moving resources across subscriptions.

لأغراض التوضيح، لدينا مورد تابع واحد فقط.

  • الخطوة 1: إذا تم توزيع الموارد التابعة عبر مجموعات موارد مختلفة، فأولاً انقلها إلى مجموعة موارد واحدة.
  • الخطوة 2: انقل المورد والموارد التابعة معاً من الاشتراك المصدر إلى الاشتراك الهدف.
  • الخطوة 3: بشكل اختياري، أعد توزيع الموارد التابعة إلى مجموعة موارد مختلفة ضمن الاشتراك الهدف.

استخدام المدخل

لنقل الموارد، حدد مجموعة الموارد التي تحتوي على هذه الموارد.

حدد الموارد التي تريد نقلها. لنقل جميع الموارد، حدد خانة الاختيار في أعلى القائمة. أو حدد الموارد بشكل فردي.

Screenshot of the Azure portal showing the selection of resources to move.

حدد الزر النقل.

Screenshot of the Azure portal displaying the Move button with three options.

يمنحك هذا الزر ثلاثة خيارات:

حدد ما إذا كنت تقوم بنقل الموارد إلى مجموعة موارد جديدة أو اشتراك جديد.

يتم تعيين مجموعة الموارد المصدر تلقائياً. حدد مجموعة الموارد الوجهة. إذا كنت تنقل إلى اشتراك جديد، فحدد الاشتراك أيضاً. حدد التالي.

Screenshot of the Azure portal where the user specifies the destination resource group for the move operation.

يتحقق المدخل من إمكانية نقل الموارد. يُرجى الانتظار لحين انتهاء التحقق من الصحة.

Screenshot of the Azure portal showing the validation process for the move operation.

عند اكتمال التحقق بنجاح، حدد التالي.

أقر بأنك تحتاج إلى تحديث الأدوات والبرامج النصية لهذه الموارد. لبدء نقل الموارد، حدد نقل.

Screenshot of the Azure portal where the user acknowledges the need to update tools and scripts before starting the move operation.

عند اكتمال النقل، يتم إعلامك بالنتيجة.

Screenshot of the Azure portal displaying a notification with the results of the move operation.

استخدام Azure PowerShell

التحقق

لاختبار سيناريو النقل دون نقل الموارد فعلياً، استخدم الأمر Invoke-AzResourceAction. لا تستخدم هذا الأمر إلا عندما تحتاج إلى تحديد النتائج مسبقاً.

$sourceName = "sourceRG"
$destinationName = "destinationRG"
$resourcesToMove = @("app1", "app2")

$sourceResourceGroup = Get-AzResourceGroup -Name $sourceName
$destinationResourceGroup = Get-AzResourceGroup -Name $destinationName

$resources = Get-AzResource -ResourceGroupName $sourceName | Where-Object { $_.Name -in $resourcesToMove }

Invoke-AzResourceAction -Action validateMoveResources `
   -ResourceId $sourceResourceGroup.ResourceId `
   -Parameters @{
      resources = $resources.ResourceId;  # Wrap in an @() array if providing a single resource ID string.
      targetResourceGroup = $destinationResourceGroup.ResourceId
   }

إذا تم اجتياز التحقق من الصحة، فلن ترى أي إخراج.

إذا فشل التحقق من الصحة، فسترى رسالة خطأ تصف سبب تعذر نقل الموارد.

نقل

لنقل الموارد الموجودة إلى مجموعة موارد أخرى أو اشتراك آخر، استخدم الأمر Move-AzResource. يوضح المثال التالي كيفية نقل موارد متعددة إلى مجموعة موارد جديدة.

$sourceName = "sourceRG"
$destinationName = "destinationRG"
$resourcesToMove = @("app1", "app2")

$resources = Get-AzResource -ResourceGroupName $sourceName | Where-Object { $_.Name -in $resourcesToMove }

Move-AzResource -DestinationResourceGroupName $destinationName -ResourceId $resources.ResourceId

للنقل إلى اشتراك جديد، قم بتضمين قيمة لمعلمة DestinationSubscriptionId.

استخدام Azure CLI

التحقق

لاختبار سيناريو النقل دون نقل الموارد فعلياً، استخدم الأمر az resource invoke-action. لا تستخدم هذا الأمر إلا عندما تحتاج إلى تحديد النتائج مسبقاً. لإجراء هذه العملية، تحتاج إلى:

  • معرّف المورد لمجموعة الموارد المصدر
  • معرّف المورد لمجموعة الموارد الهدف
  • معرّف المورد لكل مورد يراد نقله

في نص الطلب، استخدم \" لإلغاء علامات الاقتباس المزدوجة.

az resource invoke-action --action validateMoveResources \
  --ids "/subscriptions/{subscription-id}/resourceGroups/{source-rg}" \
  --request-body "{  \"resources\": [\"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\", \"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\", \"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\"],\"targetResourceGroup\":\"/subscriptions/{subscription-id}/resourceGroups/{destination-rg}\" }" 

إذا تم اجتياز التحقق من الصحة، فسترى:

{} Finished .. 

إذا فشل التحقق من الصحة، فسترى رسالة خطأ تصف سبب تعذر نقل الموارد.

نقل

لنقل الموارد الموجودة إلى مجموعة موارد أخرى أو اشتراك آخر، استخدم الأمر az resource move. في معلمة --ids، أدخل قائمة مفصولة بمسافة لمعرفات المورد المطلوب نقله.

يوضح المثال التالي كيفية نقل موارد متعددة إلى مجموعة موارد جديدة. يعمل عند استخدام Azure CLI في محطة Bash الطرفية.

webapp=$(az resource show -g OldRG -n ExampleSite --resource-type "Microsoft.Web/sites" --query id --output tsv)
plan=$(az resource show -g OldRG -n ExamplePlan --resource-type "Microsoft.Web/serverfarms" --query id --output tsv)
az resource move --destination-group newgroup --ids $webapp $plan

يوضح المثال التالي كيفية تشغيل نفس الأوامر في وحدة تحكم PowerShell .

$webapp=$(az resource show -g OldRG -n ExampleSite --resource-type "Microsoft.Web/sites" --query id --output tsv)
$plan=$(az resource show -g OldRG -n ExamplePlan --resource-type "Microsoft.Web/serverfarms" --query id --output tsv)
az resource move --destination-group newgroup --ids $webapp $plan

للانتقال إلى اشتراك جديد، قم بتوفير المعامل --destination-subscription-id.

استخدام Python

التحقق

لاختبار سيناريو النقل دون نقل الموارد فعليا، استخدم أسلوب ResourceManagementClient.resources.begin_validate_move_resources . استخدم هذا الأسلوب فقط عندما تحتاج إلى تحديد النتائج مسبقا.

import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient

credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

resource_client = ResourceManagementClient(credential, subscription_id)

source_name = "sourceRG"
destination_name = "destinationRG"
resources_to_move = ["app1", "app2"]

destination_resource_group = resource_client.resource_groups.get(destination_name)

resources = [
    resource for resource in resource_client.resources.list_by_resource_group(source_name)
    if resource.name in resources_to_move
]

resource_ids = [resource.id for resource in resources]

validate_move_resources_result = resource_client.resources.begin_validate_move_resources(
    source_name,
    {
        "resources": resource_ids,
        "target_resource_group": destination_resource_group.id
    }
).result()

print("Validate move resources result: {}".format(validate_move_resources_result))

إذا تم اجتياز التحقق من الصحة، فلن ترى أي إخراج.

إذا فشل التحقق من الصحة، فسترى رسالة خطأ تصف سبب تعذر نقل الموارد.

نقل

لنقل الموارد الموجودة إلى مجموعة موارد أخرى أو اشتراك آخر، استخدم أسلوب ResourceManagementClient.resources.begin_move_resources . يوضح المثال التالي كيفية نقل موارد متعددة إلى مجموعة موارد جديدة.

import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient

credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

resource_client = ResourceManagementClient(credential, subscription_id)

source_name = "sourceRG"
destination_name = "destinationRG"
resources_to_move = ["app1", "app2"]

destination_resource_group = resource_client.resource_groups.get(destination_name)

resources = [
    resource for resource in resource_client.resources.list_by_resource_group(source_name)
    if resource.name in resources_to_move
]

resource_ids = [resource.id for resource in resources]

resource_client.resources.begin_move_resources(
    source_name,
    {
        "resources": resource_ids,
        "target_resource_group": destination_resource_group.id
    }
)

استخدام واجهة برمجة تطبيقات REST

التحقق

تسمح لك عملية التحقق من النقل اختبار سيناريو النقل دون نقل الموارد فعلياً. استخدم هذه العملية للتحقق من نجاح النقل. يتم استدعاء التحقق من الصحة تلقائياً عند إرسال طلب نقل. لا تستخدم هذه العملية إلا عندما تحتاج إلى تحديد النتائج مسبقاً. لإجراء هذه العملية، تحتاج إلى:

  • اسم لمجموعة الموارد المصدر
  • معرّف المورد لمجموعة الموارد الهدف
  • معرّف المورد لكل مورد يراد نقله
  • الرمز المميز للوصول لحسابك

أرسل الطلب التالي:

POST https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<source-group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <access-token>
Content-type: application/json

مع نص الطلب:

{
 "resources": ["<resource-id-1>", "<resource-id-2>"],
 "targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}

إذا تم تنسيق الطلب بشكل صحيح، ترجع العملية:

Response Code: 202
cache-control: no-cache
pragma: no-cache
expires: -1
location: https://management.azure.com/subscriptions/<subscription-id>/operationresults/<operation-id>?api-version=2018-02-01
retry-after: 15
...

رمز الحالة 202 يشير إلى قبول طلب التحقق من الصحة، ولكنه لم يحدد بعد ما إذا كانت عملية النقل ستنجح. تحتوي قيمة location على URL الذي تستخدمه للتحقق من حالة العملية قيد التشغيل لفترة طويلة.

للتحقق من الحالة، أرسل الطلب التالي:

GET <location-url>
Authorization: Bearer <access-token>

أثناء استمرار تشغيل العملية، تستمر في تلقي رمز الحالة 202. انتظر عدد الثواني المشار إليها في قيمة retry-after قبل إعادة المحاولة. إذا تم التحقق من صحة عملية النقل بنجاح، تتلقى رمز الحالة 204. إذا فشل التحقق من صحة النقل، تتلقى رسالة خطأ، مثل:

{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}

نقل

لنقل الموارد الموجودة إلى مجموعة موارد أخرى أو اشتراك آخر، استخدم العملية نقل الموارد.

POST https://management.azure.com/subscriptions/{source-subscription-id}/resourcegroups/{source-resource-group-name}/moveResources?api-version={api-version}

في نص الطلب، يمكنك تحديد مجموعة الموارد الهدف والموارد التي تريد نقلها.

{
 "resources": ["<resource-id-1>", "<resource-id-2>"],
 "targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}

الأسئلة الشائعة

سؤال: عملية نقل الموارد الخاصة بي، والتي تستغرق عادة بضع دقائق، بدأت منذ ساعة تقريباً. هل هناك مشكلة؟

نقل الموارد عملية معقدة لها مراحل مختلفة. قد تتضمن أكثر من مجرد موفر الموارد للمورد الذي تحاول نقله. وبسبب التبعيات بين موفري الموارد، يسمح Azure Resource Manager بـ 4 ساعات لاكتمال العملية. تمنح هذه الفترة الزمنية موفري الموارد فرصة للتعافي من المشكلات العابرة. إذا كان طلب النقل ضمن فترة الأربع ساعات، تستمر العملية في محاولة إكمالها وقد تنجح. يتم تأمين مجموعات الموارد المصدر والوجهة أثناء هذه الفترة لتجنب مشكلات التناسق.

سؤال: لماذا يتم تأمين مجموعة الموارد الخاصة بي لمدة أربع ساعات أثناء نقل المورد؟

يسمح لإكمال طلب النقل أربع ساعات بحد أقصى. لمنع التعديلات على الموارد التي يتم نقلها، يتم تأمين كل من مجموعات الموارد المصدر والوجهة أثناء نقل المورد.

هناك مرحلتان في طلب نقل. في المرحلة الأولى، يتم نقل المورد. في المرحلة الثانية، يتم إرسال إعلامات إلى موفري الموارد الآخرين الذين يعتمدون على المورد الذي يتم نقله. يمكن تأمين مجموعة موارد لمدة أربع ساعات كاملة عندما يفشل موفر مورد في أي مرحلة. أثناء الفترة المسموح بها، يعيد Resource Manager الخطوة الفاشلة.

إذا تعذر نقل مورد خلال أربع ساعات، فإن Resource Manager يفتح كلتا مجموعتي الموارد. الموارد التي تم نقلها بنجاح موجودة في مجموعة الموارد الوجهة. يتم ترك الموارد التي فشلت في نقل مجموعة الموارد المصدر.

سؤال: ما هي الآثار المترتبة على تأمين مجموعات الموارد المصدر والوجهة أثناء نقل المورد؟

يمنعك التأمين من حذف أي من مجموعة الموارد أو إنشاء مورد جديد في مجموعة الموارد أو حذف أي من الموارد المتضمنة في هذه الخطوة.

تظهر الصورة التالية رسالة خطأ من مدخل Microsoft Azure عندما يحاول المستخدم حذف مجموعة موارد جزء من عملية نقل مستمرة.

Screenshot of the Azure portal showing an error message when trying to delete a resource group involved in an ongoing move operation.

سؤال: ماذا يعني رمز الخطأ "MissingMoveDependentResources"؟

عند نقل مورد، يجب أن تكون موارده التابعة موجودة في مجموعة الموارد الوجهة أو الاشتراك، أو أن يتم تضمينها في طلب النقل. يمكنك الحصول على رمز الخطأ MissingMoveDependentResources عندما لا يفي مورد تابع بهذا المطلب. تحتوي رسالة الخطأ على تفاصيل عن المورد التابع الذي يجب تضمينه في طلب النقل.

على سبيل المثال، قد يتطلب نقل جهاز ظاهري نقل سبعة أنواع موارد مع ثلاثة موفري موارد مختلفين. موفرو الموارد وأنواعها هي:

  • Microsoft.Compute

    • virtualMachines
    • الأقراص
  • Microsoft.Network

    • واجهات الشبكة
    • عناوين IP عامة
    • networkSecurityGroups
    • الشبكات الافتراضية
  • Microsoft.Storage

    • storageAccounts

مثال شائع آخر يتضمن نقل شبكة اتصال ظاهرية. قد تضطر إلى نقل العديد من الموارد الأخرى المقترنة بشبكة الاتصال الظاهرية. قد يتطلب طلب النقل نقل عناوين IP عامة وجداول توجيه وبوابات شبكة ظاهرية ومجموعات أمان شبكة وغيرها. بشكل عام، يجب أن تكون بوابة الشبكة الظاهرية دائما في نفس مجموعة الموارد مثل شبكتها الظاهرية، لا يمكن نقلها بشكل منفصل.

سؤال: ماذا يعني رمز الخطأ "RequestDisallowedByPolicy"؟

يتحقق Resource Manager من طلب النقل قبل محاولة النقل. يتضمن التحقق من الصحة هذا التحقق من النُهُج المحددة على الموارد المتضمنة في النقل. على سبيل المثال، إذا كنت تحاول نقل مخزن مفاتيح ولكن لدى مؤسستك نهج لرفض إنشاء مخزن مفاتيح في مجموعة الموارد الهدف، يفشل التحقق من الصحة ويتم حظر هذا النقل. رمز الخطأ الذي تم إرجاعه هو RequestDisallowedByPolicy.

لمزيد من المعلومات عن النُهُج راجع ما هو نهج Azure؟.

سؤال: لماذا لا يمكنني نقل بعض الموارد في Azure؟

لا تدعم كل الموارد في Azure النقل في الوقت الحالي. للحصول على قائمة بالموارد التي تدعم النقل، راجع دعم عملية النقل للموارد.

سؤال: كم عدد الموارد التي يمكنني نقلها في عملية واحدة؟

عند الإمكان، قسم عمليات النقل الكبيرة إلى عمليات نقل منفصلة. ترجع Resource Manager خطأ على الفور عندما يكون هناك أكثر من 800 مورد في عملية واحدة. ولكن قد يفشل نقل أي من 800 مورد أيضاً بسبب انتهاء المهلة.

سؤال: ما معنى الخطأ الذي يفيد أن المورد ليس في حالة نجاح؟

عندما تحصل على رسالة خطأ تشير إلى أنه لا يمكن نقل مورد لأنه ليس في حالة نجاح، فقد يكون بالفعل مورداً تابعاً يحظر النقل. عادة ما يكون رمز الخطأ MoveCannotProceedWithResourcesNotInSucceedState.

إذا كانت مجموعة الموارد المصدر أو الهدف تحتوي على شبكة ظاهرية، يتم التحقق من حالات جميع الموارد التابعة للشبكة الظاهرية أثناء النقل. يتضمن التحقق هذه الموارد التي تعتمد على شبكة الاتصال الظاهرية بشكل مباشر أو غير مباشر. إذا كان أي من هذه الموارد في حالة فشل، يتم حظر هذا النقل. على سبيل المثال، إذا فشل جهاز ظاهري يستخدم الشبكة الظاهرية، يتم حظر النقل. يتم حظر هذا النقل حتى عندما لا يكون الجهاز الظاهري أحد الموارد التي يتم نقلها وليس في إحدى مجموعات الموارد المحددة للنقل.

عند ظهور هذا الخطأ، لديك خياران. إما نقل الموارد الخاصة بك إلى مجموعة موارد ليس لديها شبكة ظاهرية، أو الاتصال بالدعم.

الخطوات التالية

للحصول على قائمة بالموارد التي يمكن نقلها، راجع الدعم المقدم لعمليات نقل الموارد.