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

يجمع ملحق 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 PowerShell / Azure CLI
SQL Server إلى مثيل Azure SQL المدار (باستخدام مشاركة الملف) PowerShell / Azure CLI
SQL Server إلى مثيل Azure SQL المدار (باستخدام تخزين Azure) PowerShell / Azure CLI
SQL Server إلى SQL Server على أجهزة Azure الظاهرية (باستخدام مشاركة الملفات) PowerShell / Azure CLI
SQL Server إلى SQL Server على أجهزة Azure الظاهرية (باستخدام Azure Storage) PowerShell / Azure CLI
SQL Server إلى قاعدة بيانات Azure SQL PowerShell / Azure CLI
توصيات SKU (معاينة) PowerShell / Azure CLI
أتمتة الترحيل من طرف إلى طرف PowerShell / Azure CLI
أتمتة الترحيل من طرف إلى طرف لقواعد بيانات متعددة PowerShell / 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 IaaS Agent في وضع الإدارة الكاملة.

  • إذا كان هدفك هو 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 Data Studio مع DMS سترحل تلقائياً مفاتيح Always Encrypted خاصتك إلى مثيل Azure SQL المُدار المستهدف أو SQL Server على Azure Virtual Machine.

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

    أسماء المجال المنافذ الصادرة ‏‏الوصف
    السحابة العامة: {datafactory}.{region}.datafactory.azure.net
    أو *.frontend.clouddatahub.net
    Azure Government: {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="myPassword" 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

إذا تلقيت الخطأ "الاشتراك غير مسجل لاستخدام مساحة الاسم "Microsoft.DataMigration". راجع https://aka.ms/rps-not-found كيفية تسجيل الاشتراكات"، قم بتشغيل الأمر التالي:

Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"