مشاركة عبر


ترحيل قواعد البيانات على نطاق واسع باستخدام الأتمتة

يجمع ملحق Azure SQL Migration ل Azure Data Studio بين تقييم مبسط وتوصية وتجربة ترحيل توفر الإمكانات التالية:

  • يمكن لآلية التقييم المحسنة تقييم مثيلات SQL Server، وتحديد قواعد البيانات الجاهزة للترحيل إلى أهداف Azure SQL المختلفة.

  • محرك توصية SKU يجمع بيانات الأداء من مثيل SQL Server المصدر محليا، وإنشاء توصيات SKU بالحجم الصحيح استنادا إلى هدف Azure SQL.

  • خدمة Azure موثوق بها مدعومة من خدمة ترحيل قاعدة بيانات Azure التي تنسق أنشطة حركة البيانات لتقديم تجربة ترحيل سلسة.

  • القدرة على التشغيل عبر الإنترنت (للترحيلات التي تتطلب الحد الأدنى من وقت التعطل) أو دون اتصال (للترحيلات التي يستمر فيها وقت التعطل من خلال الترحيل) أوضاع الترحيل لتناسب متطلبات عملك.

  • المرونة لإنشاء وقت تشغيل تكامل مستضاف ذاتيا وتكوينه لتوفير الحساب الخاص بك للوصول إلى SQL Server المصدر والنسخ الاحتياطية في البيئة المحلية الخاصة بك.

باستخدام أدوات الأتمتة مثل PowerShell - Azure DataMigration Service Module أو Azure CLI، يمكنك تطبيق قدرات ملحق ترحيل Azure SQL مع خدمة ترحيل قاعدة بيانات Azure لترحيل قاعدة بيانات واحدة أو أكثر على نطاق واسع (بما في ذلك قواعد البيانات عبر مثيلات SQL Server متعددة).

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

سيناريو الترحيل لغة البرمجة النصية
تقييم SQL Server باور شل / Azure CLI
SQL Server إلى مثيل Azure SQL المدار (باستخدام مشاركة الملف) باور شل / Azure CLI
SQL Server إلى مثيل Azure SQL المدار (باستخدام تخزين Azure) باور شل / Azure CLI
SQL Server إلى SQL Server على أجهزة Azure الظاهرية (باستخدام مشاركة الملفات) باور شل / Azure CLI
SQL Server إلى SQL Server على أجهزة Azure الظاهرية (باستخدام Azure Storage) باور شل / Azure CLI
SQL Server إلى قاعدة بيانات Azure SQL باور شل / Azure CLI
توصيات SKU باور شل / Azure CLI
أتمتة الترحيل من طرف إلى طرف باور شل / Azure CLI
أتمتة الترحيل من طرف إلى طرف لقواعد بيانات متعددة باور شل / Azure CLI

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

المتطلبات الأساسية الشائعة عبر جميع سيناريوهات الترحيل المدعومة باستخدام Azure PowerShell أو Azure CLI هي:

  • لديك حساب Azure تم تعيينه لأحد الأدوار المضمنة المدرجة على النحو التالي:

    • المساهم في مثيل Azure SQL المدار الهدف، وSQL Server على أجهزة Azure الظاهرية أو قاعدة بيانات Azure SQL، وحساب التخزين لتحميل ملفات النسخ الاحتياطي لقاعدة البيانات الخاصة بك من مشاركة شبكة SMB (لا ينطبق على قاعدة بيانات Azure SQL).

    • دور القارئ لمجموعات موارد Azure التي تحتوي على مثيل Azure SQL المدار الهدف أو SQL Server على أجهزة Azure الظاهرية أو قاعدة بيانات Azure SQL.

    • دور المالك أو المساهم لاشتراك Azure.

    حساب Azure مطلوب فقط عند تشغيل خطوات الترحيل وليس مطلوبا للتقييم أو عملية خطوات توصية Azure.

  • إنشاء مثيل Azure SQL المدار الهدف أو SQL Server على جهاز Azure الظاهري أو قاعدة بيانات Azure SQL

    إذا كان هدفك هو قاعدة بيانات Azure SQL، يجب عليك ترحيل مخطط قاعدة البيانات من المصدر إلى الهدف باستخدام ملحق SQL Server dacpac أو ملحق مشاريع قاعدة بيانات SQL ل Azure Data Studio.

    إذا كان لديك جهاز Azure ظاهري موجود، فيجب تسجيله مع ملحق عامل SQL Server IaaS في وضع الإدارة الكاملة.

  • إذا كان هدفك هو Azure SQL Managed Instance أو SQL Server على جهاز Azure الظاهري، فتأكد من أن عمليات تسجيل الدخول المستخدمة لتوصيل SQL Server المصدر هي أعضاء في دور خادم مسؤول النظام أو لديهم CONTROL SERVER إذن.

  • إذا كان هدفك هو قاعدة بيانات Azure SQL، فتأكد من أن تسجيل الدخول المستخدم لتوصيل SQL Server المصدر عضو، وأن db_datareader وتسجيل الدخول لخادم SQL الهدف هو db_owner.

  • استخدم أحد خيارات التخزين التالية لقاعدة البيانات الكاملة وملفات النسخة الاحتياطية لسجل المعاملات:

    • مشاركة شبكة الاتصال SMB

    • مشاركة ملف حساب تخزين Azure أو حاوية كائن ثنائي كبير الحجم

      • في حالة توفير ملفات النسخة الاحتياطية لقاعدة البيانات الخاصة بك في مشاركة شبكة SMB إنشاء حساب تخزين Azure يسمح خدمة DMS لتحميل ملفات النسخة الاحتياطية قاعدة البيانات. تأكد من إنشاء حساب Azure Storage في المنطقة نفسها التي يتم فيها إنشاء مثيل Azure Database Migration Service.

      • تأكد من استخدام حاوية كائن ثنائي كبير الحجم لحساب تخزين Azure حصريا لتخزين ملفات النسخ الاحتياطي فقط. تتداخل أي أنواع ملفات أخرى (.txt، .png، .jpg، وما إلى ذلك) مع عملية الاستعادة ، مما يؤدي إلى الفشل.

      • لا تبدأ خدمة ترحيل قاعدة بيانات Azure أي نسخ احتياطية، وبدلا من ذلك تستخدم النسخ الاحتياطية الموجودة، والتي قد تكون لديك بالفعل كجزء من خطة التعافي من الكوارث، للترحيل.

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

      • استخدام النسخ الاحتياطية المضغوطة لتقليل احتمال مواجهة مشكلات محتملة مرتبطة بترحيل النسخ الاحتياطية الكبيرة.

  • تأكد من أن حساب الخدمة الذي يشغل مثيل SQL Server لديه أذونات القراءة والكتابة على مشاركة شبكة SMB التي تحتوي على ملفات النسخة الاحتياطية لقاعدة البيانات.

  • يجب ترحيل شهادة مثيل SQL Server المصدر من قاعدة بيانات محمية بتشفير البيانات الشفاف (TDE) إلى مثيل Azure SQL المدار الهدف أو SQL Server على جهاز Azure الظاهري قبل ترحيل البيانات. لمزيد من المعلومات حول ترحيل قواعد البيانات التي تدعم TDE، راجع البرنامج التعليمي: ترحيل قواعد البيانات الممكنة ل TDE (معاينة) إلى Azure SQL في Azure Data Studio.

    تلميح

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

  • إذا كانت النسخ الاحتياطية لقاعدة بياناتك في مشاركة ملف شبكة اتصال، بادر بتوفير جهاز لتثبيت وقت تشغيل التكامل المستضاف ذاتياً للوصول إلى النسخ الاحتياطية لقاعدة البيانات وترحيلها. توفر وحدات Azure PowerShell أو Azure CLI مفاتيح المصادقة لتسجيل وقت تشغيل التكامل المستضاف ذاتيا. استعداداً للترحيل، تأكد من أن الجهاز الذي تخطط لتثبيت وقت تشغيل التكامل المستضاف ذاتياً به قواعد جدار الحماية الصادر وأسماء المجال التالية ممكّنة:

    أسماء المجال المنافذ الصادرة ‏‏الوصف
    السحابة العامة: {datafactory}.{region}.datafactory.azure.net
    أو *.frontend.clouddatahub.net
    حكومة Azure: {datafactory}.{region}.datafactory.azure.us
    الصين: {datafactory}.{region}.datafactory.azure.cn
    443 مطلوب بحلول وقت تشغيل التكامل المستضاف ذاتياً للاتصال بخدمة Data Migration service.
    لمصنع البيانات الجديد الذي جرى إنشاؤه في السحابة العامة، حدد موقع FQDN من مفتاح وقت تشغيل التكامل المستضاف ذاتياً، والذي يكون بتنسيق {datafactory}.{region}.datafactory.azure.net. بالنسبة لـ Data factory القديم، إذا كنت لا ترى FQDN في مفتاح التكامل المستضاف ذاتياً، فاستخدم *.frontend.clouddatahub.net بدلاً من ذلك.
    download.microsoft.com 443 مطلوبة من قبل وقت تشغيل التكامل المستضاف ذاتياً لتنزيل التحديثات. في حال إيقاف التحديث التلقائي، يمكنك تخطي ضبط هذا المجال.
    *.core.windows.net 443 يجري استخدامه بواسطة وقت تشغيل التكامل المستضاف ذاتياً والذي يتصل بحساب تخزين Azure لتحميل النسخ الاحتياطية لقاعدة البيانات من مشاركة شبكتك

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

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

  • يجب تمكين المنفذ الصادر 445 للوصول إلى مشاركة ملف الشبكة.

  • إذا كنت تستخدم Azure Database Migration Service للمرة الأولى، فتأكد من تسجيل موفر موارد Microsoft.DataMigration في اشتراكك. يمكنك اتباع الخطوات لتسجيل موفر الموارد

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

أتمتة عمليات ترحيل قاعدة البيانات

باستخدام Azure PowerShell Az.DataMigration أو Azure CLI az datamigration، يمكنك ترحيل قواعد البيانات عن طريق أتمتة إنشاء خدمة ترحيل قاعدة بيانات Azure وتكوين عمليات ترحيل قاعدة البيانات للترحيل عبر الإنترنت وتنفيذ عملية قطع. هناك العديد من الأوامر والوظائف التي تم توثيقها في نماذج Azure.

أمثلة على أتمتة ترحيل قاعدة بيانات SQL Server باستخدام Azure CLI:

الخطوة 1: قم بإنشاء خدمة ترحيل قاعدة بيانات Azure، والتي ستقوم بتنسيق أنشطة ترحيل قاعدة البيانات الخاصة بك.

#STEP 1: Create Database Migration Service
az datamigration sql-service create --resource-group "myRG" --sql-migration-service-name "myMigrationService" --location "EastUS2"

الخطوة 2: تكوين وبدء ترحيل قاعدة البيانات عبر الإنترنت من SQL Server المحلي (مع النسخ الاحتياطية في تخزين Azure) إلى Azure SQL Managed Instance.

#STEP 2: Start Migration
az datamigration sql-managed-instance create `
--source-location '{\"AzureBlob\":{\"storageAccountResourceId\":\"/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Storage/storageAccounts/dbbackupssqlbits\",\"accountKey\":\"myAccountKey\",\"blobContainerName\":\"dbbackups\"}}' `
--migration-service "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.DataMigration/SqlMigrationServices/myMigrationService" `
--scope "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Sql/managedInstances/mySQLMI" `
--source-database-name "AdventureWorks2008" `
--source-sql-connection authentication="SqlAuthentication" data-source="mySQLServer" password="<password>" user-name="sqluser" `
--target-db-name "AdventureWorks2008" `
--resource-group myRG `
--managed-instance-name mySQLMI

الخطوة 3: إجراء نقل ترحيل بمجرد استعادة جميع النسخ الاحتياطية إلى Azure SQL Managed Instance.

#STEP 3: Get migration ID and perform Cutover
$migOpId = az datamigration sql-managed-instance show --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --expand=MigrationStatusDetails --query "properties.migrationOperationId"
az datamigration sql-managed-instance cutover --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --migration-operation-id $migOpId

إذا تلقيت الخطأ The subscription is not registered to use namespace 'Microsoft.DataMigration'. See https://aka.ms/rps-not-found for how to register subscriptions.، فقم بتشغيل الأمر التالي:

Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"