0Pricing
Azure Fundamentals · درس

أفضل ممارسات ترحيل قواعد البيانات

استخدم Azure Database Migration Service لترحيل قاعدة بيانات SQL Server إلى Azure SQL مع أقل وقت تعطل ممكن، وعالج مشكلات المخطط والتوافق الشائعة

أفضل ممارسات ترحيل قواعد البيانات درس مجاني في Azure Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Azure Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.

لماذا يختلف ترحيل قواعد البيانات

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

Azure Database Migration Service

Azure Database Migration Service (DMS) هي خدمة مُدارة بالكامل تنسّق عمليات الترحيل عبر الإنترنت (بوقت توقف شبه معدوم) وعمليات الترحيل دون اتصال (المعتمدة على وقت التوقف) من محركات قواعد البيانات المحلية الشائعة إلى خدمات قواعد البيانات المُدارة في Azure. تدعم DMS مصادر تشمل SQL Server وMySQL وPostgreSQL وMongoDB وOracle، وأهدافًا تشمل Azure SQL Database وAzure SQL Managed Instance وAzure Database for MySQL وAzure Cosmos DB. تتكامل الخدمة مع Data Migration Assistant (DMA) لإجراء فحوصات التوافق قبل الترحيل.

# Create a DMS instance
az dms create \
  --service-name myDMS \
  --resource-group myRG \
  --location eastus \
  --sku-name Premium_4vCores \
  --vnet myVnet \
  --subnet mySubnet

التقييم قبل الترحيل باستخدام DMA

قبل ترحيل SQL Server، شغّلوا Data Migration Assistant (DMA) على قاعدة البيانات المصدر. يحدّد DMA ما يلي: مشكلات التوافق (الميزات المستخدمة في قاعدة البيانات وغير المدعومة من هدف Azure SQL)، والتغييرات المتقطعة، والميزات المهملة، وتوصيات الأداء. وينشئ تقرير HTML مفصلًا يرتّب المشكلات حسب مستوى الخطورة، حتى يتمكن فريقكم من إصلاحها قبل بدء فترة الترحيل.

# Run DMA assessment from CLI (Windows only)
# DmaCmd.exe /AssessmentName='SQL2022toAzureSQL' \
#   /AssessmentSourcePlatform='SqlOnPrem' \
#   /AssessmentTargetPlatform='AzureSqlDatabase' \
#   /AssessmentDatabases='Server=myServer;Initial Catalog=AdventureWorks;Integrated Security=true'

الترحيل عبر الإنترنت مقابل الترحيل دون اتصال

يضع الترحيل دون اتصال قاعدة البيانات المصدر في وضع عدم الاتصال طوال مدة الترحيل — وهو مقبول لقواعد البيانات الصغيرة أو الأنظمة غير الحرجة التي تتوفر لها فترة صيانة مناسبة. يستخدم الترحيل عبر الإنترنت التقاط بيانات التغيير (CDC) أو شحن سجل المعاملات لنسخ التغييرات باستمرار أثناء تحميل قاعدة البيانات الجديدة، مما يقلل وقت التوقف إلى خطوة التحويل النهائية فقط. ويُوصى بالترحيل عبر الإنترنت لقواعد البيانات التي يزيد حجمها على 1 غيغابايت أو التي تتطلب اتفاقيات مستوى خدمة (SLAs) وقت توقف أقل من ساعة واحدة.

تكوين مشروع ترحيل DMS

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

# Create a DMS project for SQL Server to Azure SQL Database
az dms project create \
  --service-name myDMS \
  --resource-group myRG \
  --name SQL2AzureSQL \
  --source-platform SQL \
  --target-platform SQLDB \
  --location eastus

ترحيل المخطط أولًا

احرصوا دائمًا على ترحيل المخطط قبل البيانات. استخدموا DMA أو SQL Server Management Studio (SSMS) لإنشاء البرامج النصية ونشر الجداول، وطرق العرض، والإجراءات المخزنة، والدوال، والفهارس إلى Azure SQL Database الهدف. تحققوا من وجود جميع كائنات المخطط وتجميعها دون أخطاء قبل السماح لـ DMS ببدء نقل البيانات. قد تؤدي أخطاء المخطط التي تُكتشف في منتصف الترحيل إلى إفساد عملية الترحيل وإجباركم على البدء من الصفر.

# Generate schema scripts using sqlpackage
sqlpackage /Action:Script \
  /SourceServerName:myOnPremServer \
  /SourceDatabaseName:AdventureWorks \
  /TargetServerName:mysqlserver.database.windows.net \
  /TargetDatabaseName:AdventureWorksAzure \
  /OutputPath:/tmp/schema.sql

تحميل البيانات الأولي

ينفّذ DMS تحميلًا كاملًا للبيانات من خلال قراءة جدول قاعدة البيانات المصدر تلو الآخر وكتابة الصفوف إلى الهدف Azure SQL باستخدام الإدراج المجمع. أثناء التحميل الكامل، يتعامل الخدمة مع الجداول الكبيرة بتقسيمها إلى دفعات. تُعطّل الفهارس على الهدف أثناء التحميل لتعظيم معدل النقل، ثم يُعاد إنشاؤها بعد ذلك. بالنسبة إلى قواعد البيانات الكبيرة جدًا (على مستوى التيرابايت)، يُنصح باستخدام Azure Data Factory أو تصديرات bacpac لتحميل البيانات مسبقًا وتقليل وقت تشغيل DMS.

التقاط تغييرات البيانات للمزامنة عبر الإنترنت

بالنسبة إلى عمليات الترحيل عبر الإنترنت، يمكّن DMS ميزة SQL Server Change Data Capture (CDC) على المصدر لالتقاط عمليات INSERT وUPDATE وDELETE التي تحدث أثناء تقدم التحميل الكامل. بعد اكتمال التحميل الكامل، يعيد DMS تطبيق هذه التغييرات الملتقطة على الهدف، ما يؤدي تدريجيًا إلى سد الفجوة. عندما ينخفض زمن التأخر إلى ما يقارب الصفر، تصبح قاعدة البيانات جاهزة للتحويل النهائي. تتطلب CDC تشغيل SQL Server Agent وأن تكون قاعدة البيانات المصدر في وضع full recovery.

-- Enable CDC on source database
EXEC sys.sp_cdc_enable_db;

-- Enable CDC on specific table
EXEC sys.sp_cdc_enable_table
  @source_schema = N'dbo',
  @source_name = N'Orders',
  @role_name = NULL;

التحويل النهائي والتحقق

عندما يكون تأخر CDC في حده الأدنى، ابدأ عملية التحويل النهائي من مدخل DMS. يتوقف DMS عن قبول أحداث CDC الجديدة، ويطبّق أي تغييرات متبقية، ويضع علامة على اكتمال الترحيل. عند هذه النقطة، أعد توجيه سلاسل اتصال التطبيق إلى نقطة نهاية Azure SQL. نفّذ استعلامات التحقق من البيانات التي تقارن أعداد الصفوف وقيم تجميع checksum بين المصدر والهدف للجداول المهمة. أبقِ قاعدة البيانات المصدر في وضع القراءة فقط لمدة 24–48 ساعة بعد التحويل النهائي تحسبًا للحاجة إلى التراجع.

-- Validate row counts post-cutover
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;

ضبط الأداء بعد الترحيل

بعد الترحيل، قد يختلف أداء Azure SQL Database عن SQL Server المحلي بسبب اختلاف ذاكرة التخزين المؤقت لخطط الاستعلامات والإحصاءات والأجهزة. شغّل Database Experimentation Assistant (DEA) لإعادة تشغيل آثار أحمال العمل على هدف Azure ومقارنة خطط التنفيذ. فعّل Automatic Tuning في Azure SQL للسماح للخدمة بإنشاء الفهارس أو حذفها تلقائيًا وفرض خطط استعلامات خالية من التراجعات، مما يحسّن الأداء بمرور الوقت من دون تدخل يدوي.

-- Enable Automatic Tuning on Azure SQL Database
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
  FORCE_LAST_GOOD_PLAN = ON,
  CREATE_INDEX = ON,
  DROP_INDEX = OFF
);

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

يرحّل DMS أيضًا المحركات مفتوحة المصدر: من MySQL إلى Azure Database for MySQL باستخدام نمط mysqldump + binlog replication، ومن PostgreSQL إلى Azure Database for PostgreSQL باستخدام خانات النسخ المنطقي. بالنسبة إلى عمليات الترحيل من MongoDB إلى Cosmos DB، استخدم واجهة Cosmos DB for MongoDB ومسار mongodump / mongorestore الأصلي، أو موصل MongoDB في Azure Data Factory لإجراء CDC التزايدي. اختبر الترحيل دائمًا على نسخة غير إنتاجية قبل تنفيذه على البيانات الحية.

# Offline MySQL migration using mysqldump
mysqldump -h source-server -u admin -p \
  --single-transaction --routines --triggers \
  myDatabase > /tmp/myDatabase.sql

# Restore to Azure Database for MySQL
mysql -h myserver.mysql.database.azure.com \
  -u adminUser@myserver -p myDatabase < /tmp/myDatabase.sql

اختبار سريع

اختبر مدى فهمك لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.

مراجعة الدرس

تعلّمت في هذا الدرس أن Azure Database Migration Service ينسّق عمليات ترحيل قواعد البيانات عبر الإنترنت وخارجها، وأن التقييم قبل الترحيل باستخدام DMA يكشف مشكلات التوافق قبل نافذة الترحيل، وأن التقاط تغييرات البيانات يتيح إجراء التحويل النهائي لقواعد بيانات الإنتاج مع توقف يقترب من الصفر. في الجزء التالي، سننتقل إلى تحسين تكاليف Azure.

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

هل درس «أفضل ممارسات ترحيل قواعد البيانات» مجاني؟

نعم — نص درس «أفضل ممارسات ترحيل قواعد البيانات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Azure Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Azure Fundamentals 4 دروس في المجموع.

ماذا ستتعلم في «أفضل ممارسات ترحيل قواعد البيانات»؟

استخدم Azure Database Migration Service لترحيل قاعدة بيانات SQL Server إلى Azure SQL مع أقل وقت تعطل ممكن، وعالج مشكلات المخطط والتوافق الشائعة تتمرن على Azure Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Azure Fundamentals؟

لا تُشترط خبرة سابقة. Azure Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أفضل ممارسات ترحيل قواعد البيانات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Azure Fundamentals هذا؟

نعم. كل درس في Azure Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إطار الترحيل ذي الاستراتيجيات الست
  2. Azure Migrate: الاكتشاف والتقييم
  3. إعادة الاستضافة باستخدام Azure Migrate (النقل كما هو)
  4. أفضل ممارسات ترحيل قواعد البيانات
← العودة إلى Azure Fundamentals