البرنامج التعليمي: ترحيل قاعدة بيانات MongoDB إلى واجهة Azure Cosmos DB API في MongoDB دون الاتصال بالإنترنت

ينطبق على: واجهة برمجة تطبيقات Azure Cosmos DB لـ MongoDB

هام

يُرجى قراءة هذا الدليل بأكمله قبل تنفيذ خطوات الترحيل.

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

Diagram of migration steps.

نظرة عامة حول ترحيل البيانات دون الاتصال بالإنترنت من MongoDB إلى Azure Cosmos DB باستخدام DMS

استخدم خدمة Azure Database Migration Service لتنفيذ ترحيل دون الاتصال بالإنترنت، والترحيل مرة واحدة لقواعد البيانات من مثيل محلي أو سحابي في MongoDB إلى واجهة API في Azure Cosmos DB خاصة بـ MongoDB.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء مثيل لخدمة Azure Database Migration Service.
  • أنشئ مشروع ترحيل باستخدام Azure Database Migration Service.
  • شغّل الترحيل.
  • مراقبة الترحيل.

في هذا البرنامج التعليمي، يمكنك ترحيل مجموعة بيانات في MongoDB التي يتم استضافتها في جهاز ظاهري Azure. باستخدام خدمة ترحيل قاعدة بيانات Azure، يمكنك ترحيل مجموعة البيانات إلى API DB Cosmos Azure خاصة بـ MongoDB. إذا لم يتوافر لديك مصدر قاعدة بيانات MongoDB المعد بالفعل، فراجع ⁧⁩مع تثبيت وتهيئة قاعدة بيانات MongoDB على جهاز افتراضي في Windows ضمن تطبيق Azure⁧⁩.

المتطلبات الأساسية

لإكمال هذا البرنامج التعليمي، تحتاج إلى:

  • ⁩استكمال خطوات ما قبل الترحيل⁧⁩ مثل تقدير معدل النقل، واختيار مفتاح التقسيم.

  • إنشاء ⁧⁩واجهة برمجة تطبيقات قاعدة بيانات Azure Cosmos DB لقاعدة بيانات MongoDB⁧⁩.

    ملاحظة

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

  • أنشئ الشبكة الافتراضية لـ Microsoft Azure لـ Azure Database Migration Service باستخدام Azure Resource Manager. يوفر طراز النشر الاتصال من موقع إلى موقع إلى خوادم المصدر المحلية باستخدام ⁧⁩Azure ExpressRoute⁧⁩ أو ⁧⁩VPN⁧⁩. لمزيٍد من المعلومات حول إنشاء شبكة اتصال ظاهرية، راجع ⁧⁩وثائق Azure Virtual Network⁧⁩، وخاصةً مقالات «التشغيل السريع» التي تحتوي على التفاصيل خطوة بخطوة.

    ملاحظة

    أثناء إعداد الشبكة الظاهرية، في حال كنت تستخدم ExpressRoute مع شبكة الاتصال النظير لـ Microsoft، أضف ⁧⁩نقاط نهاية⁧⁩ الخدمة التالية إلى الشبكة الفرعية التي سيتم توفير الخدمة فيها:

    • نقطة نهاية قاعدة البيانات الهدف (على سبيل المثال، نقطة نهاية SQL، ونقطة نهاية Azure Cosmos DB)
    • نقطة نهاية التخزين
    • نقطة نهاية ناقل الخدمة

    هذا التكوين ضروري؛ لأن Azure Database Migration Service تفتقر إلى الاتصال بالإنترنت.

  • تأكد من أن قواعد مجموعة أمان الشبكة (NSG) لا تمنع الشبكة الظاهرية الخاصة بك منافذ الاتصال التالية: 53 و443 و445 و9354 و10000-20000. ولمزيد من المعلومات، اطلع على ⁧⁩تصفية نقل بيانات الشبكة من خلال مجموعات أمان الشبكة⁧⁩.

  • افتح جدار حماية Windows للسماح لخدمة Azure Database Migration Service بالوصول إلى خادم MongoDB المصدر، والذي يكون منفذ TCP 27017 بشكل افتراضي.

  • عند استخدام جهاز جدار حماية أمام قاعدة (قواعد) البيانات المصدرة، قد تحتاج إلى إضافة قاعدة جدار الحماية للسماح لخدمة ترحيل قاعدة بيانات Azure بالوصول إلى قاعدة البيانات المصدرة للترحيل.

تكوين ميزة إعادة المحاولة من جانب الخادم

يمكنك الاستفادة من قدرات إدارة الموارد في حال الترحيل من MongoDB إلى Azure Cosmos DB. مع وجود هذه القدرات، يمكنك الاستفادة الكاملة من وحدات الطلب المقدمة (RU/s) من معدل النقل. يمكن أن ترفض قاعدة بيانات Azure Cosmos DB أي طلب من Data Migration Service أثناء الترحيل إذا تجاوز هذا الطلب وحدات طلب RU/s الحاوية المقدمة. وبالتالي ينبغي إعادة محاولة هذا الطلب.

يمكن لخدمة ترحيل قاعدة البيانات تنفيذ إجراء عمليات إعادة المحاولة. من الأهمية بمكان معرفة أن التلقي المضمن في مركز الشبكة بين خدمة Data Migration Service وAzure Cosmos DB يؤثر على وقت الاستجابة الإجمالي لهذا الطلب. يمكن أن يؤدي تحسين وقت الاستجابة للطلبات المقيدة إلى تقصير إجمالي الوقت اللازم للترحيل.

تسمح ميزة Server Side Retry في قاعدة بيانات Azure Cosmos DB للخدمة باعتراض التعليمات البرمجية الخاطئة التي تعطل الطلب، ثم تعيد المحاولة من خلال وقت جولة أقل بكثير مما يحسن أوقات الرد على الطلب تحسنًا ملحوظًا.

لاستخدام إعادة محاولة جانب الخادم، في مدخل ⁧⁩Azure Cosmos DB، حدد ⁧⁩⁧>⁩⁧⁩إعادة محاولة جانب خادم⁧⁩الميزات.

Screenshot that shows where to find the Server Side Retry feature.

إذا تم تعطيل الميزة، فحدد ⁧⁩تمكين⁧⁩.

Screenshot that shows how to enable Server Side Retry.

تسجيل موفر الموارد

قم بتسجيل موفر موارد Microsoft.DataMigration قبل إنشاء المثيل الأول لخدمة ترحيل قاعدة البيانات.

  1. سجّل الدخول إلى مدخل Azure. ابحث عن الاشتراكات وحددها.

    Show portal subscriptions

  2. حدد الاشتراك الذي تريد إنشاء مثيل لـ Azure Database Migration Service فيه، ثم حدد موفرو الموارد.

    Show resource providers

  3. ابحث عن الترحيل، ثم حدد تسجيل لـ Microsoft.DataMigration.

    Register resource provider

إنشاء مثيل

  1. في بوابة Azure، ⁧⁩حددCreate a resource،⁧⁩ وابحث عنAzure Database Migration Service⁧⁩ ثم حدد Azure Database Migration Service ⁧⁩من القائمة المنسدلة.

    Screenshot that shows Azure Marketplace.

  2. في شاشة Azure Database Migration Service، حدد Create.

    Screenshot that shows how to create an instance of Azure Database Migration Service.

  3. في ⁧⁩Create Migration Service⁧⁩ حدد اسم الخدمة والاشتراك، ومجموعة موارد جديدة أو قائمة.

  4. حدد الموقع الذي تريد إنشاء مثيل لـAzure Database Migration Service فيه.

  5. حدد شبكة ظاهرية موجودة أو قم بإنشاء شبكة جديدة.

    توفر الشبكة الظاهرية خدمة Azure Database Migration Service مزودة بالوصول إلى مثيل MongoDB المصدر وحساب Azure Cosmos DB الهدف.

    لمزيدٍ من المعلومات حول كيفية إنشاء شبكة ظاهرية في مدخل Azure، راجع ⁧⁩إنشاء شبكة ظاهرية باستخدام مدخل Azure⁧⁩.

  6. تحديد فئة التسعير.

    لمزيد من المعلومات حول التكاليف و مستويات التسعير، راجع ⁧⁩صفحة التسعير⁧⁩.

    Screenshot that shows configuration settings for the instance of Azure Database Migration Service.

  7. حدد ⁧⁩Create⁧⁩ لإنشاء الخدمة.

إنشاء مشروع ترحيل

بعد إنشاء الخدمة، حدد موقعها داخل مدخل Azure، ثم افتحها. ثم قم بإنشاء مشروع ترحيل جديد.

  1. في مدخل Azure، ⁧⁩حدد All services⁧⁩، وابحث عنAzure Database Migration Service ⁧⁩، ثم حدد Azure Database Migration Service ⁧⁩.

    Screenshot that shows how to locate all instances of Azure Database Migration Service.

  2. في شاشة ⁧⁩Azure Database Migration Services⁧⁩، ابحث عن اسم مثيل خدمة Azure Database Migration Service الذي أنشأته، وحدد المثيل.

  3. حدد ⁧⁩+ New Migration Project⁧⁩.

  4. في ⁧⁩مشروع ترحيل جديد⁧⁩، حدد اسمًا للمشروع، وفي مربع النص نوع الخادم ⁧⁩المصدر،⁧⁩ حدد ⁧⁩MongoDB⁧⁩. في مربع النص ⁧⁩نوع الملقم الهدف،⁧⁩ حدد ⁧⁩CosmosDB (MongoDB API)⁧⁩، ثم ⁧⁩اختر نوع النشاط⁧⁩، وحدد ترحيل البيانات ⁧⁩دون اتصال بالإنترنت⁧⁩.

    Screenshot that shows project options.

  5. حدد ⁧⁩"Create and run activity"⁧⁩ لإنشاء المشروع، وتشغيل نشاط الترحيل.

قم بتحديد تفاصيل المصدر.

  1. في شاشة ⁧⁩Source details⁧⁩، حدد تفاصيل الاتصال لخادم MongoDB المصدر.

    هام

    خدمة Azure Database Migration Service لا تدعم Azure Cosmos DB كمصدر.

    ثمة ثلاثة أوضاع للاتصال بأحد المصادر:

    • وضع ⁧⁩Standard mode⁧⁩حيث يقبل اسم مجال مؤهل بالكامل، أو عنوان IP ورقم المنفذ، وبيانات اعتماد الاتصال.

    • وضع ⁧⁩Connection string mode⁧⁩ حيث يقبل سلسلة اتصال MongoDB كما هو موضح في ⁧⁩تنسيق عنوان سلسلة الاتصال⁧⁩.

    • وضع ⁧⁩Data from Azure storage⁧⁩ حيث يقبل عنوان SAS URL لحاوية blob. حدد ⁧⁩Blob contains BSON dumps⁧⁩ إذا كانت حاوية blob تحتوي على BSON dumps التي تقدمها ⁧⁩أداة bsondump⁧⁩ في MongoDB. لا تحدد هذا الخيار إذا كانت الحاوية تحتوي على ملفات JSON.

      إذا قمت بتحديد هذا الخيار، فتأكد من ظهور سلسلة اتصال حساب التخزين بتنسيق:

      https://blobnameurl/container?SASKEY
      

      يمكنك العثور على هذه النقطة حاوية SAS سلسلة الاتصال في مستكشف Azure Storage. إنشاء SAS للحاوية المعنية يوفر لك URL بالتنسيق المطلوب.

      أيضًا، استنادًا إلى نوع تفريغ المعلومات في Azure Storage، ضع ما يلي في الاعتبار:

      • أما تفريغ BSON، يجب أن تكون البيانات داخل حاوية blob بتنسيق bsondump. ضع ملفات البيانات في مجلدات سميت بعد قواعد البيانات التي تحتوي على تنسيق ⁧⁩collection.bson⁧⁩. حدد اسمًا لملفات بيانات التعريف (إن وجدت) باستخدام التنسيق ⁧⁩collection.metadata.json⁧⁩.

      • بالنسبة إلى تفريغ JSON dumps، يجب وضع الملفات الموجودة في حاوية blob في المجلدات المسماة بعد قواعد البيانات. ضمن كل مجلد لقاعدة بيانات، يجب وضع ملفات البيانات في مجلد فرعي يسمى ⁧⁩data⁧⁩، ويسمى باستخدام تنسيق ⁧⁩collection.json⁧⁩. ضع ملفات بيانات التعريف في مجلد فرعي يسمى ⁧⁩ metadata⁧⁩، ويسمى باستخدام التنسيق ⁧⁩ collection.json⁧⁩. يجب أن تكون ملفات بيانات التعريف بنفس التنسيق الذي تنتجه أداة MongoDB bsondump.

    هام

    لا ننصح باستخدام شهادة موقعة ذاتيًا على خادم MongoDB. إذا كان من الضروري استخدام إحداها، يُرجى الاتصال بالخادم باستخدام وضع connection string mode، والتأكد من سلسلة اتصالك تحتوي على علامتي اقتباس («»).

    &sslVerifyCertificate=false
    

    يمكنك أيضًا استخدام عنوان IP للحالات التي لا يكون فيها تحليل اسم DNS ممكنًا.

    Screenshot that shows specifying source details.

  2. حدد ⁧⁩حفظ⁧⁩.

تحديد تفاصيل الهدف

  1. على شاشة ⁧⁩تفاصيل هدف الترحيل،⁧⁩ حدد تفاصيل الاتصال لحساب Azure Cosmos DB المستهدف. هذا الحساب هو Azure Cosmos DB API الذي تم توفيره مسبقًا لحساب MongoDB الذي تقوم بترحيل بيانات MongoDB إليه.

    Screenshot that shows specifying target details.

  2. حدد ⁧⁩حفظ⁧⁩.

التعيين إلى قواعد البيانات الهدف

  1. في شاشة ⁧⁩Map to target databases⁧⁩، حدد قاعدة البيانات المصدر والهدف لإجراء الترحيل.

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

    إذا ظهرت ⁧⁩Create⁧⁩ بجوار اسم قاعدة البيانات، فهذا يشير إلى أن خدمة Azure Database Migration Service لم تعثر على قاعدة البيانات الهدف، وستنشئ الخدمة قاعدة البيانات لك.

    عند هذه النقطة في الترحيل، يمكنك ⁧⁩معدل نقل التوفير⁧⁩. في Azure Cosmos DB، يمكنك توفير معدل النقل إما على مستوى قاعدة البيانات، أو بشكل فردي لكل مجموعة. يُقاس معدل النقل ⁧⁩بوحدات الطلب⁧⁩. تعرّف على المزيد حول ⁧⁩تسعير Azure Cosmos DB⁧⁩.

    Screenshot that shows mapping to target databases.

  2. حدد ⁧⁩حفظ⁧⁩.

  3. في شاشة ⁧⁩Collection setting⁧⁩، قم بتوسيع قائمة المجموعات، ثم قم بمراجعة قائمة المجموعات التي ستُرحَل.

    تحدد خدمة Azure Database Migration Service تلقائيًا جميع المجموعات الموجودة على مثيل MongoDB المصدر، والتي لا توجد على حساب Azure Cosmos DB الهدف. إذا كنت ترغب في إعادة ترحيل المجموعات التي تتضمن بيانات بالفعل، تحتاج إلى تحديد المجموعات في هذا الجزء.

    يمكنك تحديد عدد وحدات RU التي تريد أن تستخدمها المجموعات. تقترح خدمة Azure Database Migration Service إعدادات افتراضية ذكية استنادًا إلى حجم المجموعة.

    ملاحظة

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

    يمكنك أيضًا تحديد مفتاح قطعة للاستفادة من ⁧⁩التقسيم في Azure Cosmos DB⁧⁩ للحصول على قابلية التوسع المثلى. راجع ⁧⁩أفضل الممارسات لتحديد مفتاح قطعة/ قسم⁧⁩.

    Screenshot that shows selecting collections tables.

  4. حدد ⁧⁩حفظ⁧⁩.

  5. في شاشة ⁧⁩Migration summary⁧⁩، في مربع النص ⁧⁩Activity name⁧⁩، حدد اسمًا لنشاط الترحيل.

    Screenshot that shows the nigration summary.

تشغيل الترحيل

حدد ⁧⁩Run migration⁧⁩. تظهر نافذة نشاط الترحيل، وحالة النشاط ⁧⁩Not started⁧⁩.

Screenshot that shows the activity status.

مراقبة الترحيل

في شاشة نشاط الترحيل، حدد ⁧⁩Refresh⁧⁩ لتحديث العرض حتى تظهر حالة الترحيل ك⁧⁩مكتمل⁧⁩.

ملاحظة

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

Screnshot that shows the activity status completed.

التحقق من البيانات في Azure Cosmos DB

بعد انتهاء الترحيل، يمكنك التحقق من حساب Azure Cosmos DB للتحقق من ترحيل كل المجموعات بنجاح.

Screenshot that shows where to check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

تحسين ما بعد الترحيل

بعد ترحيلك للبيانات المخزنة في قاعدة بيانات MongoDB إلى واجهة Azure Cosmos DB API لدى MongoDB، يمكنك الآن الاتصال بقاعدة بيانات Azure Cosmos DB وإدارة البيانات. يمكنك أيضًا تطبيق خطوات تحسين أخرى بعد الترحيل. قد تتضمن تحسين نهج الفهرسة، أو تحديث مستوى التناسق الافتراضي، أو تكوين التوزيع العمومي لحساب Azure Cosmos DB. للمزيد من المعلومات، راجع ⁧⁩التطوير ما بعد الترحيل.⁧

الموارد الإضافية

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

راجع دليل الترحيل للاطلاع على السيناريوهات الأخرى المتوفرة في ⁧⁩دليل ترحيل بيانات Azure ⁧⁩.