0Pricing
AWS Solutions Architect · درس

Database Migration Service (DMS) وSchema Conversion Tool

رحّل قواعد البيانات المتجانسة وغير المتجانسة باستخدام DMS عبر التحميل الكامل أو CDC، وحوّل لهجات المخططات باستخدام Schema Conversion Tool

Database Migration Service (DMS) وSchema Conversion Tool درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ما هي AWS DMS؟

تعمل AWS Database Migration Service (DMS) على ترحيل قواعد البيانات إلى AWS مع أقل وقت توقف ممكن. وهي تدعم عمليات الترحيل المتجانسة (مثل Oracle إلى Oracle وMySQL إلى MySQL) وعمليات الترحيل غير المتجانسة (مثل Oracle إلى Aurora PostgreSQL وSQL Server إلى MySQL). تستخدم DMS مثيل Replication يقرأ من المصدر، ويحوّل البيانات اختياريًا، ثم يكتبها إلى الهدف. ولا تدفعون إلا مقابل مدة تشغيل مثيل Replication.

مكوّنات DMS: نقاط النهاية ومثيل Replication

تتكوّن DMS من ثلاثة مكوّنات رئيسية. تحدد Source Endpoints اتصال قاعدة بيانات المصدر (عنوان JDBC وبيانات الاعتماد وTLS). وتحدد Target Endpoints قاعدة بيانات الوجهة. أما Replication Instance فهو خادم مُدار قائم على EC2 توفّره DMS داخل VPC الخاصة بكم لتشغيل عبء عمل الترحيل. اختاروا حجم مثيل Replication استنادًا إلى كمية البيانات المطلوب ترحيلها، وما إذا كنتم تريدون استخدام Multi-AZ لمثيل Replication نفسه.

# Create a DMS replication instance
aws dms create-replication-instance \
  --replication-instance-identifier my-dms-instance \
  --replication-instance-class dms.t3.medium \
  --allocated-storage 50 \
  --vpc-security-group-ids sg-abc123 \
  --replication-subnet-group-identifier my-dms-subnet-group \
  --multi-az false \
  --publicly-accessible false

التحميل الكامل مقارنةً بترحيل CDC

تدعم DMS نمطين للترحيل. ينسخ Full Load جميع البيانات الموجودة من المصدر إلى الهدف، وهو مناسب عندما يمكنكم تحمّل التوقف أو عندما يكون المصدر للقراءة فقط أثناء الترحيل. يلتقط Change Data Capture (CDC) التغييرات المستمرة من سجل معاملات المصدر بعد اكتمال التحميل الكامل، ويحافظ على تزامن المصدر والهدف. ويقلل ترحيل Full Load + CDC المشترك وقت التوقف: إذ يرحّل البيانات بينما يظل المصدر قيد التشغيل، ثم ينفذ التحويل عندما يلحق الهدف بالمصدر.

# Create a DMS replication task with Full Load + CDC
aws dms create-replication-task \
  --replication-task-identifier sales-migration \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --replication-instance-arn arn:aws:dms:us-east-1:123:rep:my-dms-instance \
  --migration-type full-load-and-cdc \
  --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "all", "object-locator": {"schema-name": "%", "table-name": "%"}, "rule-action": "include"}]}'

أداة تحويل المخطط (SCT)

إن AWS Schema Conversion Tool (SCT) تطبيق مجاني قابل للتنزيل يحوّل تلقائيًا مخطط قاعدة بيانات المصدر (DDL) إلى تنسيق متوافق مع محرك قاعدة البيانات الهدف. ويتعامل مع تعريفات الجداول وطرق العرض والإجراءات المخزنة والدوال والمشغلات. وفي عمليات الترحيل غير المتجانسة (مثل Oracle إلى PostgreSQL)، تحوّل SCT غالبية العناصر تلقائيًا، وتحدد العناصر التي تتطلب مراجعة يدوية بسبب اختلافات بناء الجملة غير المدعومة.

# SCT is a GUI desktop tool, but here is the workflow:
# 1. Connect SCT to source Oracle database
# 2. Connect SCT to target Aurora PostgreSQL database
# 3. Run schema assessment: SCT rates conversion complexity per object
# 4. Convert schema automatically (SCT generates PostgreSQL DDL)
# 5. Apply converted DDL to target (SCT executes or exports SQL script)
# 6. Review and manually fix flagged items (e.g., PL/SQL procedures with Oracle-specific syntax)

الترحيل المتجانس مقارنةً بغير المتجانس

في عمليات الترحيل المتجانسة (المحرك نفسه، مثل MySQL المحلي إلى RDS for MySQL)، لا تكون SCT مطلوبة عادةً — إذ يكون المخطط متوافقًا مباشرةً. ويمكن لـ DMS تشغيل Full Load + CDC على الفور. أما في عمليات الترحيل غير المتجانسة (محركات مختلفة)، فيجب أن تحوّل SCT المخطط أولًا، وتتولى DMS ترحيل البيانات، وقد تحتاجون إلى إعادة كتابة الإجراءات المخزنة والمشغلات يدويًا إذا لم يكن لها مكافئ في المحرك الهدف.

# Example heterogeneous migration workflow:
# On-premises Oracle -> Amazon Aurora PostgreSQL
#
# Step 1: SCT converts Oracle DDL to PostgreSQL DDL
# Step 2: Apply PostgreSQL DDL to Aurora target
# Step 3: DMS Full Load + CDC copies Oracle table data to Aurora
# Step 4: Validate row counts and checksums
# Step 5: Cut over application connections to Aurora endpoint
# Step 6: Terminate DMS task and replication instance

قواعد بيانات المصدر والهدف المدعومة

تدعم DMS نطاقًا واسعًا من المصادر: Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, SAP ASE, MongoDB, IBM Db2, and S3. وتشمل الأهداف المدعومة جميع ما سبق، بالإضافة إلى Amazon Redshift, DynamoDB, Kinesis Data Streams, and Kafka. وهذا يجعل DMS مفيدة ليس فقط لعمليات ترحيل قواعد البيانات العلائقية، بل أيضًا لبث أحداث التغيير العلائقية إلى بحيرة بيانات أو بنية تعتمد على الأحداث باستخدام CDC إلى Kinesis.

قواعد تعيين الجداول في DMS

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

# Table mapping: include only the 'orders' table, rename schema
{
  'rules': [
    {
      'rule-type': 'selection',
      'rule-id': '1',
      'rule-name': 'select-orders',
      'object-locator': {'schema-name': 'prod_db', 'table-name': 'orders'},
      'rule-action': 'include'
    },
    {
      'rule-type': 'transformation',
      'rule-id': '2',
      'rule-name': 'rename-schema',
      'rule-action': 'convert-uppercase',
      'rule-target': 'schema',
      'object-locator': {'schema-name': 'prod_db'}
    }
  ]
}

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

تنشر DMS المقاييس إلى CloudWatch: FullLoadThroughputRowsSource (عدد الصفوف المحمّلة في الثانية)، وCDCLatencySource (التأخر بين سجل معاملات المصدر وقراءة DMS له)، وCDCLatencyTarget (التأخر بين قراءة DMS للبيانات وكتابتها إلى الهدف). راقبوا CDCLatencyTarget عن كثب أثناء مرحلة المزامنة — فعندما ينخفض إلى ما يقارب الصفر، يكون الهدف قد لحق بالمصدر وتصبحون مستعدين للتحويل.

# Monitor CDC latency via CloudWatch CLI
aws cloudwatch get-metric-statistics \
  --namespace AWS/DMS \
  --metric-name CDCLatencyTarget \
  --dimensions Name=ReplicationInstanceIdentifier,Value=my-dms-instance \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 60 \
  --statistics Average

DMS Serverless

توفّر DMS Serverless سعة النسخ المتماثل وتوسّعها تلقائيًا استنادًا إلى عبء عمل الترحيل، مما يلغي الحاجة إلى اختيار حجم مثيل Replication وإدارته. تحددون الحد الأدنى والأقصى لوحدات سعة DMS (DCUs)، وتوسّع DMS نطاق السعة تلقائيًا ضمن هذه الحدود. ويُعد ذلك مثاليًا لعمليات الترحيل ذات الحمل المتغير، أو عندما تريدون تجنب خطر اختيار حجم أصغر من اللازم لمثيل Replication أثناء ذروة حمل الترحيل.

# Create a DMS Serverless replication
aws dms create-replication \
  --replication-config-identifier my-serverless-migration \
  --replication-type full-load-and-cdc \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --compute-config '{
    "MinCapacityUnits": 2,
    "MaxCapacityUnits": 64,
    "MultiAZ": false,
    "ReplicationSubnetGroupId": "my-subnet-group",
    "VpcSecurityGroupIds": ["sg-abc123"]
  }'

التحقق من اكتمال الترحيل

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

# Enable validation in DMS task settings (JSON)
{
  'TargetMetadata': {'SupportLobs': true, 'FullLobMode': false},
  'ValidationSettings': {
    'EnableValidation': true,
    'ValidationMode': 'ROW_LEVEL',
    'ValidationOnly': false,
    'FailureMaxCount': 10000
  }
}

السيناريوهات الشائعة لـ DMS في الاختبارات

في اختبار SAA-C03، تظهر DMS في السيناريوهات التي تتطلب ترحيل قاعدة بيانات مع أقل وقت توقف ممكن. وتشمل المؤشرات الرئيسية: 'ترحيل قاعدة بيانات مع نسخ متماثل مستمر' → DMS Full Load + CDC. 'تغيير محرك قاعدة البيانات' → SCT أولًا، ثم DMS. 'نسخ التغييرات في وقت شبه حقيقي إلى بحيرة بيانات' → استخدام DMS CDC إلى Kinesis أو S3. 'دمج عدة قواعد بيانات مصدر في هدف واحد' → استخدام مهام DMS متعددة مع نقطة نهاية هدف واحدة. تُستخدم DMS تحديدًا لترحيل قواعد البيانات — ولترحيل الخوادم استخدموا MGN، ولنقل البيانات بالجملة استخدموا DataSync أو Snowball.

تحقق سريع

اختبروا مدى فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلّمتم في هذا الدرس أن DMS تدعم عمليات ترحيل قواعد البيانات المتجانسة وغير المتجانسة باستخدام نمطي Full Load وCDC، وأن SCT تؤتمت تحويل المخطط لعمليات الترحيل التي تتضمن تغيير المحرك، وتحدد العناصر التي تتطلب مراجعة يدوية، وأن DMS Serverless توسّع سعة النسخ المتماثل تلقائيًا، مما يلغي قرارات تحديد حجم المثيل. سنستكشف بعد ذلك Amazon EventBridge للتوجيه المعتمد على الأحداث وبنية ناقل الأحداث.

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

هل درس «Database Migration Service (DMS) وSchema Conversion Tool» مجاني؟

نعم — نص درس «Database Migration Service (DMS) وSchema Conversion Tool» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ماذا ستتعلم في «Database Migration Service (DMS) وSchema Conversion Tool»؟

رحّل قواعد البيانات المتجانسة وغير المتجانسة باستخدام DMS عبر التحميل الكامل أو CDC، وحوّل لهجات المخططات باستخدام Schema Conversion Tool تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟

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

كم من الوقت يستغرق درس «Database Migration Service (DMS) وSchema Conversion Tool»؟

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

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

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

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

  1. عناصر استراتيجية الترحيل السبعة
  2. AWS Migration Hub وApplication Discovery Service
  3. Application Migration Service (MGN)
  4. Database Migration Service (DMS) وSchema Conversion Tool
← العودة إلى AWS Solutions Architect