مشاركة عبر


البرنامج التعليمي: ترحيل PostgreSQL إلى قاعدة بيانات Azure ل PostgreSQL عبر الإنترنت باستخدام DMS (كلاسيكي) عبر Azure CLI

هام

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

يمكنك استخدام Azure Database Migration Service (DMS) لترحيل قواعد البيانات من مثيل PostgreSQL المحلي إلى قاعدة بيانات Azure ل PostgreSQL بأقل وقت تعطل. بمعنى آخر، يمكن تحقيق الترحيل بأقل وقت تعطل للتطبيق. في هذا البرنامج التعليمي، تقوم بترحيل DVD Rental نموذج قاعدة البيانات من مثيل محلي ل PostgreSQL 9.6 إلى قاعدة بيانات Azure ل PostgreSQL باستخدام نشاط الترحيل عبر الإنترنت في Azure Database Migration Service.

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

  • ترحيل مخطط النموذج باستخدام الأداة المساعدة pg_dump.
  • ينشئ القالب مثيلاً لـ Azure Database Migration Service.
  • إنشاء مشروع ترحيل في Azure Database Migration Service.
  • تشغيل الترحيل.
  • مراقبة الترحيل.

يتطلب استخدام Azure Database Migration Service للقيام بالترحيل عبر الإنترنت إنشاء مثيل استنادًا إلى Premium pricing tier. نقوم بتشفير القرص لمنع سرقة البيانات في أثناء عملية الترحيل.

هام

للحصول على تجربة ترحيل مثالية، توصي Microsoft بإنشاء مثيل لـ Azure Database Migration Service في نفس منطقة Azure مثل قاعدة البيانات الخاصة بالهدف. يمكن أن يؤدي نقل البيانات عبر الأماكن أو المناطق الجغرافية إلى إبطاء عملية الترحيل وإدخال أخطاء.

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

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

  • قم بتنزيل وتثبيت إصدار مجتمع PostgreSQL 9.4 أو 9.5 أو 9.6 أو 10. يجب أن يكون إصدار PostGreSQL Server المصدر 9.4 أو 9.5 أو 9.6 أو 10 أو 11 أو 12 أو 13. لمزيد من المعلومات، راجع إصدارات قاعدة بيانات PostgreSQL المعتمدة.

    يجب أن تكون قاعدة بيانات Azure الهدف لإصدار PostgreSQL مساوية لإصدار PostgreSQL المحلي أو أحدث منه. على سبيل المثال، يمكن لـ PostgreSQL 9.6 الترحيل إلى Azure Database لـ PostgreSQL 9.6 أو 10 أو 11 فقط، ولكن ليس إلى Azure Database لـ PostgreSQL 9.5.

  • إنشاء مثيل في قاعدة بيانات Azure لخادم PostgreSQL - المرن.

  • قم بإنشاء Microsoft Azure Virtual Network for Azure Database Migration Service باستخدام نموذج نشر Azure Resource Manager، والذي يوفر اتصالًا من موقع إلى موقع بالخوادم المصدر المحلية باستخدام إما ExpressRoute أو VPN. لمزيد من المعلومات حول إنشاء شبكة افتراضية، راجع Virtual Network Documentationوخاصة مقالات التشغيل السريع التي تحتوي على التفاصيل خطوة بخطوة.

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

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

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

  • تأكد من أن قواعد Network Security Group (NSG) لشبكتك الظاهرية لا تحظر المنفذ الصادر 443 من ServiceTag لـ ServiceBus والتخزين وAzureMonitor. لمزيد من التفاصيل عن تصفية نسبة استخدام الشبكة للشبكة الظاهرية الخاصة بمجموعة أمان الشبكة (NSG)، راجع مقالتصفية نسبة استخدام الشبكة باستخدام مجموعات أمان الشبكة.

  • تكوين جدار حماية Windows للوصول إلى مشغل قاعدة البيانات.

  • افتح جدار حماية Windows للسماح لخدمة ترحيل قاعدة بيانات Azure بالوصول إلى خادم PostgreSQL المصدر، والذي يكون منفذ TCP 5432 افتراضيا.

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

  • إنشاء قاعدة جدار حماية على مستوى الملقم من أجل Azure Database لـ PostgreSQL للسماح إلى Azure Database Migration Service بالوصول إلى قواعد البيانات المستهدفة. توفير نطاق الشبكة الفرعية للشبكة الظاهرية المستخدمة لـ Azure Database Migration Service.

  • هناك طريقتا استدعاء CLI:

    • في الزاوية العلوية اليمنى من مدخل Azure، حدد زر «Cloud Shell»:

      لقطة شاشة لزر Cloud Shell في مدخل Microsoft Azure.

    • قم بتثبيت وتشغيل CLI محليًا. يلزم إصدار CLI 2.18 أو أعلى من أداة سطر الأوامر من أجل إدارة موارد Azure المطلوبة لهذا الترحيل.

      لتحميل CLI، اتبع الإرشادات الواردة في المقالة «Install Azure CLI». تسرد المقالة أيضًا الأنظمة الأساسية التي تدعم Azure CLI.

      لـ «set up Windows Subsystem for Linux (WSL)»، اتبع التعليمات في «Windows 10 Installation Guide»

  • تمكين النسخ المتماثل المنطقي على الخادم المصدر، عن طريق تحرير postgresql.config الملف وتعيين المعلمات التالية:

    • wal_level = logical
    • max_replication_slots = [عدد الفتحات]. الإعداد الموصى به هو 5 الفتحات.
    • max_wal_senders = [عدد المهام المتزامنة]. max_wal_senders تعين المعلمة عدد المهام المتزامنة التي يمكن تشغيلها. الإعداد الموصى به هو 10 المهام.

ترحيل مخطط النموذج

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

  1. استخدم pg_dump -s الأمر لإنشاء ملف تفريغ مخطط لقاعدة بيانات.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    على سبيل المثال، لتفريغ قاعدة بيانات dvdrental ملف المخطط:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    

    لمزيد من المعلومات حول استخدام الأداة المساعدة pg_dump، راجع الأمثلة في البرنامج التعليمي pg-dump.

  2. إنشاء قاعدة بيانات فارغة في البيئة المستهدفة، وهي قاعدة بيانات Azure لخادم PostgreSQL - Flexible.

  3. استيراد المخطط إلى قاعدة البيانات المستهدفة الذي قمت بإنشائها عن طريق استعادة ملف المخطط الاحتياطي.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    على سبيل المثال:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

    إشعار

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

توفير مثيل DMS باستخدام Azure CLI

  1. تثبيت ملحق مزامنة DMS:

    • قم بتسجيل الدخول إلى Azure باستخدام الأمر التالي:

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

    • ترحيل PostgreSQL عبر الإنترنت متوفر الآن خلال حزمة CLI العادية (إصدار 2.18.0 وأعلى) دون الحاجة إلى ملحق dms-preview. إذا قمت بتثبيت الملحق في الماضي، يمكنك إزالته باستخدام الخطوات التالية:

      • للتحقق مما إذا كان لديك ملحق dms-preview لتثبيته بالفعل، قم بتشغيل الأمر التالي:

        az extension list -o table
        
      • إذا تم تثبيت dms-previewالملحق، ثم تم إلغاء التثبيت، فقم بتنفيذ الأمر التالي:

        az extension remove --name dms-preview
        
      • للتحقق من إلغاء تثبيت dms-preview الملحق بشكل صحيح، قم بتشغيل الأمر التالي ويجب ألا ترى الملحق dms-preview في القائمة:

        az extension list -o table
        

      هام

      dms-preview قد تظل هناك حاجة إلى الامتداد لمسارات الترحيل الأخرى التي يدعمها Azure DMS. تحقق من وثائق مسار ترحيل معين لتحديد ما إذا كانت الإضافة مطلوبة أم لا. تغطي هذه الوثائق متطلبات الملحق، خاصةً إلى PostgreSQL وAzure Database من أجل PostgreSQL عبر الإنترنت.

    • في أي وقت، عرض كافة الأوامر المدعومة في DMS عن طريق التشغيل:

      az dms -h
      
    • إذا كان لديك العديد من اشتراكات Azure، فقم بتشغيل الأمر التالي لتعيين الاشتراك الذي تريد استخدامه لتوفير مثيل خدمة DMS.

      az account set -s <SubscriptionID>
      
  2. توفير مثيل DMS بواسطة تشغيل الأمر التالي:

    az dms create -l <location> -n <newServiceName> -g <yourResourceGroupName> --sku-name Premium_4vCores --subnet/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VirtualNetwork>/subnets/<SubnetName> –tags tagName1=tagValue1 tagWithNoValue
    

    على سبيل المثال، يقوم الأمر التالي بإنشاء خدمة. استبدل <SubscriptionID>و <ResourceGroupName>و <VirtualNetwork> بقيم صالحة.

    • الموقع: شرق الولايات المتحدة 2
    • الاشتراك: <SubscriptionID>
    • اسم مجموعة الموارد : <ResourceGroupName>
    • اسم خدمة DMS: PostgresCLI
    az dms create -l eastus2 -g <ResourceGroupName> -n PostgresCLI --subnet /subscriptions/<SubscriptionID>/resourceGroups/ERNetwork/providers/Microsoft.Network/virtualNetworks/<VirtualNetwork>/subnets/Subnet-1 --sku-name Premium_4vCores
    

    يستغرق إنشاء مثيل خدمة DMS حوالي 10 دقائق.

  3. لتعريف عنوان IP لعامل DMS بحيث يمكنك إضافته إلى ملف Postgres pg_hba.conf ، قم بتشغيل الأمر التالي:

    az network nic list -g <ResourceGroupName> --query '[].ipConfigurations | [].privateIpAddress'
    

    على سبيل المثال:

    az network nic list -g <resource-group> --query '[].ipConfigurations | [].privateIpAddress'
    

    يجب أن تحصل على نتيجة مشابهة للعنوان التالي:

    [
      "172.16.136.18"
    ]
    
  4. أضف عنوان IP لعامل DMS إلى ملف Postgres pg_hba.conf .

    • يحيط علمًا بعنوان DMS IP بعد الانتهاء من توفيره في DMS.

    • أضف عنوان IP إلى pg_hba.conf الملف على المصدر، على غرار الإدخال التالي:

      host     all            all        172.16.136.18/10    md5
      host     replication    postgres   172.16.136.18/10    md5
      
  5. بعد ذلك، إنشاء مشروع ترحيل PostgreSQL عن طريق تشغيل الأمر التالي:

    az dms project create -l <location> -g <ResourceGroupName> --service-name <yourServiceName> --source-platform PostgreSQL --target-platform AzureDbforPostgreSQL -n <newProjectName>
    

    على سبيل المثال، يقوم الأمر التالي بإنشاء مشروع باستخدام هذه المعلمات:

    • الموقع: غرب وسط الولايات المتحدة
    • اسم مجموعة الموارد : <ResourceGroupName>
    • اسم الخدمة: PostgresCLI
    • اسم المشروع: PGMigration
    • النظام الأساسي المصدر: PostgreSQL
    • النظام الأساسي المستهدف: AzureDbForPostgreSql
    az dms project create -l westcentralus -n PGMigration -g <ResourceGroupName> --service-name PostgresCLI --source-platform PostgreSQL --target-platform AzureDbForPostgreSql
    
  6. إنشاء مهمة ترحيل PostgreSQL باستخدام الخطوات التالية.

    تتضمن هذه الخطوة استخدام «source IP وUserID وpassword و destination IP و UserID وpassword وtask type » للاتصال.

    • لمشاهدة قائمة كاملة من الخيارات، قم بتشغيل الأمر:

      az dms project task create -h
      

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

      تنسيق كائن JSON الاتصال لاتصالات PostgreSQL.

      {
          // if this is missing or null, you will be prompted
          "userName": "user name",
          // if this is missing or null (highly recommended) you will  be prompted
          "password": null,
          "serverName": "server name",
          // if this is missing, it will default to the 'postgres' database
          "databaseName": "database name",
          // if this is missing, it will default to 5432
          "port": 5432
      }
      

      هناك أيضًا «ملف json» كخيار قاعدة بيانات يدرج كائنات json. بالنسبة إلى PostgreSQL، يتم عرض تنسيق عنصر JSON لخيارات قاعدة البيانات كما يلي:

      [
          {
              "name": "source database",
              "target_database_name": "target database",
              "selectedTables": [
                  "schemaName1.tableName1",
                  ...n
              ]
          },
          ...n
      ]
      
    • لإنشاء json اتصال المصدر، قم بفتح المفكرة ونسخ json التالية ولصقه في الملف. حفظ الملف في C:\DMS\source.js بعد تعديله وفقًا لخادم المصدر.

      {
          "userName": "postgres",
          "password": null,
          "serverName": "13.51.14.222",
          "databaseName": "dvdrental",
          "port": 5432
      }
      
    • لإنشاء json الاتصال المستهدف، قم بفتح مفكرة التدوين ونسخ json التالية ولصقه في الملف. حفظ الملف في C:\DMS\target.js بعد تعديله وفقًا لخادمك المستهدف.

      {
          "userName": " dms@builddemotarget",
          "password": null,
          "serverName": " builddemotarget.postgres.database.azure.com",
          "databaseName": "inventory",
          "port": 5432
      }
      
    • إنشاء خيارات قاعدة بيانات ملف json يسرد المخزون وتعيين قواعد البيانات للترحيل:

      • إنشاء قائمة بالجداول التي سيتم ترحيلها أو يمكنك استخدام استعلام SQL لإنشاء القائمة من قاعدة البيانات المصدر. فيما يلي نموذج استعلام لإنشاء قائمة الجداول. إذا كنت تستخدم هذا الاستعلام، فتذكر إزالة الفاصلة الأخيرة في نهاية اسم الجدول الأخير لجعله صفيف JSON صالحا.

        SELECT FORMAT('%s,', REPLACE(FORMAT('%I.%I', schemaname, tablename), '"', '\"')) AS SelectedTables
        FROM pg_tables
        WHERE schemaname NOT IN ('pg_catalog', 'information_schema');
        
      • قم بإنشاء ملف JSON لخيارات قاعدة البيانات، مع إدخال واحد لكل قاعدة بيانات بأسماء قاعدة البيانات المصدر والهدف، وقائمة الجداول المحددة التي سيتم ترحيلها. يمكنك استخدام إخراج استعلام SQL السابق لملء selectedTables الصفيف.

        إشعار

        إذا كانت قائمة الجداول المحددة فارغة، فستتضمن الخدمة كافة جداول الترحيل التي تحتوي على أسماء مخطط وجداول مطابقة.

        [
            {
                "name": "dvdrental",
                "target_database_name": "dvdrental",
                "selectedTables": [
                    "schemaName1.tableName1",
                    "schemaName1.tableName2",
                    ...
                    "schemaNameN.tableNameM"
                ]
            },
            ... n
        ]
        
    • تشغيل الأمر التالي الذي يتم في اتصال المصدر والاتصال المستهدف وملفات json لخيارات قاعدة البيانات.

      az dms project task create -g <ResourceGroupName> --project-name PGMigration --source-connection-json c:\DMS\source.json --database-options-json C:\DMS\option.json --service-name PostgresCLI --target-connection-json c:\DMS\target.json --task-type OnlineMigration -n runnowtask
      

    في هذه المرحلة، قمت بإرسال مهمة ترحيل بنجاح.

  7. لإظهار تقدم المهمة، قم بتشغيل الأوامر التالية.

    • للاطلاع على حالة المهمة العامة باختصار:

      az dms project task show --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask
      
    • للاطلاع على حالة المهمة التفصيلية بما في ذلك معلومات تقدم الترحيل:

      az dms project task show --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask --expand output
      
    • يمكنك أيضا استخدام تنسيق استعلام JMESPath لاستخراج migrationState فقط من الإخراج الموسع:

      az dms project task show --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask --expand output --query 'properties.output[].migrationState'
      

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

      {
          "output": [
              // Database Level
              {
                  "appliedChanges": 0, // Total incremental sync applied after full load
                  "cdcDeleteCounter": 0, // Total delete operation  applied after full load
                  "cdcInsertCounter": 0, // Total insert operation applied after full load
                  "cdcUpdateCounter": 0, // Total update operation applied after full load
                  "databaseName": "inventory",
                  "endedOn": null,
                  "fullLoadCompletedTables": 2, //Number of tables completed full load
                  "fullLoadErroredTables": 0, //Number of tables that contain migration error
                  "fullLoadLoadingTables": 0, //Number of tables that are in loading status
                  "fullLoadQueuedTables": 0, //Number of tables that are in queued status
                  "id": "db|inventory",
                  "incomingChanges": 0, //Number of changes after full load
                  "initializationCompleted": true,
                  "latency": 0,
                  //Status of migration task
                  "migrationState": "READY_TO_COMPLETE", //READY_TO_COMPLETE => the database is ready for cutover
                  "resultType": "DatabaseLevelOutput",
                  "startedOn": "2018-07-05T23:36:02.27839+00:00"
              }, {
                  "databaseCount": 1,
                  "endedOn": null,
                  "id": "dd27aa3a-ed71-4bff-ab34-77db4261101c",
                  "resultType": "MigrationLevelOutput",
                  "sourceServer": "138.91.123.10",
                  "sourceVersion": "PostgreSQL",
                  "startedOn": "2018-07-05T23:36:02.27839+00:00",
                  "state": "PENDING",
                  "targetServer": "builddemotarget.postgres.database.azure.com",
                  "targetVersion": "Azure Database for PostgreSQL"
              },
              // Table 1
              {
                  "cdcDeleteCounter": 0,
                  "cdcInsertCounter": 0,
                  "cdcUpdateCounter": 0,
                  "dataErrorsCount": 0,
                  "databaseName": "inventory",
                  "fullLoadEndedOn": "2018-07-05T23:36:20.740701+00:00", //Full load completed time
                  "fullLoadEstFinishTime": "1970-01-01T00:00:00+00:00",
                  "fullLoadStartedOn": "2018-07-05T23:36:15.864552+00:00", //Full load started time
                  "fullLoadTotalRows": 10, //Number of rows loaded in full load
                  "fullLoadTotalVolumeBytes": 7056, //Volume in Bytes in full load
                  "id": "or|inventory|public|actor",
                  "lastModifiedTime": "2018-07-05T23:36:16.880174+00:00",
                  "resultType": "TableLevelOutput",
                  "state": "COMPLETED", //State of migration for this table
                  "tableName": "public.catalog", //Table name
                  "totalChangesApplied": 0 //Total sync changes that applied after full load
              },
              //Table 2
              {
                  "cdcDeleteCounter": 0,
                  "cdcInsertCounter": 50,
                  "cdcUpdateCounter": 0,
                  "dataErrorsCount": 0,
                  "databaseName": "inventory",
                  "fullLoadEndedOn": "2018-07-05T23:36:23.963138+00:00",
                  "fullLoadEstFinishTime": "1970-01-01T00:00:00+00:00",
                  "fullLoadStartedOn": "2018-07-05T23:36:19.302013+00:00",
                  "fullLoadTotalRows": 112,
                  "fullLoadTotalVolumeBytes": 46592,
                  "id": "or|inventory|public|address",
                  "lastModifiedTime": "2018-07-05T23:36:20.308646+00:00",
                  "resultType": "TableLevelOutput",
                  "state": "COMPLETED",
                  "tableName": "public.orders",
                  "totalChangesApplied": 0
              }
          ],
          // DMS migration task state
          "state": "Running", //Running => service is still listening to any changes that might come in
          "taskType": null
      }
      

مهمة ترحيل الانتقال

قاعدة البيانات جاهزة للانتقال عند استكمال التحميل بالكامل. اعتمادًا على مدى انشغال الخادم المصدر بالمعاملات الجديدة، قد تكون مهمة DMS لا تزال تقوم بالتغيير بعد اكتمال التحميل الكامل.

لضمان التقاط كافة البيانات، تحقق من صحة عدد الصفوف بين قواعد البيانات المصدر والمستهدفة. على سبيل المثال، يمكنك التحقق من التفاصيل التالية من مخرجات الحالة:

Database Level
"migrationState": "READY_TO_COMPLETE" => Status of migration task. READY_TO_COMPLETE means database is ready for cutover
"incomingChanges": 0 => Check for a period of 5-10 minutes to ensure no new incoming changes need to be applied to the target server

Table Level (for each table)
"fullLoadTotalRows": 10    => The row count matches the initial row count of the table
"cdcDeleteCounter": 0      => Number of deletes after the full load
"cdcInsertCounter": 50     => Number of inserts after the full load
"cdcUpdateCounter": 0      => Number of updates after the full load
  1. تنفيذ مهمة ترحيل قاعدة بيانات الانتقال باستخدام الأمر التالي:

    az dms project task cutover -h
    

    على سبيل المثال، يبدأ الأمر التالي عملية القطع لقاعدة بيانات "المخزون":

    az dms project task cutover --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask  --object-name Inventory
    
  2. لمراقبة التقدم المحرز في الانتقال، قم بتشغيل الأمر التالي:

    az dms project task show --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask
    
  3. عندما تظهر حالة ترحيل قاعدة البيانات «Completed»، قم بإعادة إنشاء التسلسلات (إن أمكن)، ثم قم بتوصيل التطبيقات الخاصة بك بالمثيل المستهدف الجديد من Azure Database لـ PostgreSQL.

تنظيف المهام والمشروع والخدمة

إذا كنت بحاجة إلى إلغاء أو حذف أي مهمة أو مشروع أو خدمة DMS، قم بالإلغاء بالترتيب التالي:

  • «Cancel any running task»
  • «Delete the task»
  • «Delete the project»
  • «Delete DMS service»
  1. لإلغاء مهمة قيد التشغيل، استخدم الأمر التالي:

    az dms project task cancel --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask
    
  2. لحذف مهمة قيد التشغيل، استخدم الأمر التالي:

    az dms project task delete --service-name PostgresCLI --project-name PGMigration --resource-group <ResourceGroupName> --name runnowtask
    
  3. لحذف مشروع، استخدم الأمر التالي:

    az dms project delete -n PGMigration -g <ResourceGroupName> --service-name PostgresCLI
    
  4. لحذف خدمة DMS، استخدم الأمر التالي:

    az dms delete -g <ResourceGroupName> -n PostgresCLI