ما هي مزامنة بيانات SQL لـ Azure؟

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

هام

لا يدعم Azure SQL Data Sync مثيل Azure SQL المُدار في الوقت الحالي.

نظرة عامة

مزامنة البيانات مبنية على مفهوم مجموعة المزامنة. مجموعة المزامنة هي مجموعة قواعد البيانات التي تريد مزامنتها.

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

  • يجب أن تكون Hub Database قاعدة بيانات Azure SQL.
  • يمكن أن تكون قواعد بيانات الأعضاء إما قواعد بيانات في قاعدة بيانات Azure SQL أو في مثيلات SQL Server.
  • تحتوي مزامنة قاعدة البيانات الوصفية على البيانات الوصفية والسجل الخاص بمزامنة البيانات. يجب أن تكون قاعدة بيانات Sync Metadata عبارة عن قاعدة بيانات Azure SQL موجودة في نفس المنطقة مثل Hub Database. يتم إنشاء قاعدة بيانات مزامنة البيانات الوصفية ويملكها العميل. لا يمكنك الحصول إلا على قاعدة بيانات مزامنة واحدة للبيانات الوصفية لكل منطقة واشتراك. مزامنة قاعدة البيانات الوصفية لا يمكن حذفها أو إعادة تسميتها أثناء وجود مجموعات المزامنة أو وكلاء المزامنة. توصي Microsoft بإنشاء قاعدة بيانات جديدة وفارغة لاستخدامها كـ قاعدة بيانات لبيانات تعريف المزامنة. تنشئ مزامنة البيانات جداول في قاعدة البيانات هذه وتعمل على عبء العمل المتكرر.

ملاحظة

إذا كنت تستخدم قاعدة بيانات محلية كقاعدة بيانات عضو، فيجب عليك تثبيت وكيل مزامنة محلي وتهيئته.

Sync data between databases

تحتوي مجموعة المزامنة على الخصائص التالية:

  • يصف مخطط المزامنة البيانات التي تتم مزامنتها.
  • يمكن أن يكون اتجاه المزامنة ثنائي الاتجاه أو يمكن أن يتدفق في اتجاه واحد فقط. بمعنى، يمكن أن يكون اتجاه المزامنة Hub to Member أو Member to Hub أو كليهما.
  • يصف الفاصل الزمني للمزامنة عدد مرات حدوث المزامنة.
  • سياسة حل النزاعات هي سياسة على مستوى المجموعة، والتي يمكن أن تكون فوز المركز أو فوز العضو.

حالات الاستخدام

تعدُّ مزامنة البيانات وسيلة مفيدة في الحالات التي تحتاج فيها البيانات إلى تحديث عبر العديد من قواعد البيانات في قاعدة بيانات Azure SQL أو SQL Server. فيما يلي حالات الاستخدام الرئيسية لمزامنة البيانات:

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

مزامنة البيانات ليست الحل المفضل للسيناريوهات التالية:

السيناريو بعض الحلول الموصى بها
التعافي من الكوارث النسخ الاحتياطية الجغرافية المكررة في Azure
قراءة المقياس استخدم النسخ المتماثلة للقراءة فقط لتحميل أعباء عمل الاستعلام عن الرصيد للقراءة فقط
ETL (OLTP إلى OLAP) مصنع بيانات Azure أو SQL Server Integration Services
الترحيل من SQL Server إلى قاعدة بيانات Azure SQL. ومع ذلك، يمكن استخدام SQL Data Sync بعد اكتمال الترحيل، لضمان استمرار تزامن المصدر والهدف. خدمة ترحيل قاعدة البيانات في Azure

كيف تعمل هذه الميزة

  • تتبع تغييرات البيانات: تتعقب Data Sync التغييرات باستخدام مشغلات الإدراج والتحديث والحذف. يتم تسجيل التغييرات في جدول جانبي في قاعدة بيانات المستخدم. لاحظ أن BULK INSERT لا يطلق المشغلات افتراضياً. إذا لم يتم تحديد FIRE_TRIGGERS، فلن يتم تنفيذ أي مشغلات إدراج. أضف خيار FIRE_TRIGGERS حتى تتمكن Data Sync من تتبع تلك الإدخالات.
  • مزامنة البيانات: تم تصميم Data Sync في نموذج المركز والشكل. يتزامن المركز مع كل عضو على حدة. يتم تنزيل التغييرات من الموزع إلى العضو ثم يتم تحميل التغييرات من العضو إلى الموزع.
  • حل التعارضات: توفر مزامنة البيانات خيارين لحل التعارض، فوز المركز أو فوز الأعضاء.
    • إذا حددت فوز المركز، فستحل التغييرات في الموزع دائماً محل التغييرات في العضو.
    • إذا حددت فوز العضو، فستحل التغييرات في العضو محل التغييرات في الموزع. إذا كان هناك أكثر من عضو، فإن القيمة النهائية تعتمد على العضو الذي تتم مزامنته أولاً.

قارن مع النسخ المتماثل للمعاملات

مزامنة البيانات النسخ المتماثل للمعاملات
المزايا - الدعم النشط
- ثنائي الاتجاه بين المحلي وقاعدة البيانات SQL Azure
- زمن وصول أقل
- تناسق المعاملات
- إعادة استخدام الطوبولوجيا الموجودة بعد الترحيل
\- دعم المثيل المدار SQL من Azure
العيوب - لا يوجد اتساق في المعاملات
- تأثير أعلى على الأداء
- لا يمكن النشر من قاعدة بيانات Azure SQL
- تكلفة صيانة عالية

ملاحظة

يختلف الارتباط الخاص لـSQL Data Sync عن Azure Private Link.

تتيح لك ميزة الارتباط الخاص الجديدة اختيار نقطة نهاية خاصة مُدارة بواسطة الخدمة لإنشاء اتصال آمن بين خدمة المزامنة وقواعد بيانات العضو / المركز أثناء عملية مزامنة البيانات. نقطة النهاية الخاصة المُدارة بالخدمة هي عنوان IP خاص داخل شبكة افتراضية وشبكة فرعية محددة. ضمن Data Sync، يتم إنشاء نقطة النهاية الخاصة المدارة للخدمة بواسطة Microsoft ويتم استخدامها حصرياً بواسطة خدمة Data Sync لعملية مزامنة معينة. قبل إعداد الارتباط الخاص، اقرأ المتطلبات العامة للميزة.

Private link for Data Sync

ملاحظة

يجب الموافقة يدوياً على نقطة النهاية الخاصة المُدارة للخدمة في صفحة اتصالات نقطة النهاية الخاصة في بوابة Azure أثناء نشر مجموعة المزامنة أو باستخدام PowerShell.

الشروع في العمل

قم بإعداد مزامنة البيانات في بوابة Azure

قم بإعداد مزامنة البيانات باستخدام PowerShell

قم بإعداد مزامنة البيانات باستخدام REST API

راجع أفضل الممارسات الخاصة بمزامنة البيانات

هل حدث خطأ ما

الاتساق والأداء

الاتساق النهائي "Eventual"

نظراً لأن Data Sync يعتمد على المشغل، فإن اتساق المعاملات ليس مضموناً. تضمن Microsoft إجراء جميع التغييرات في النهاية وأن Data Sync لا يتسبب في فقد البيانات.

تأثير الأداء

يستخدم Data Sync مشغلات الإدراج والتحديث والحذف لتعقب التغييرات. يقوم بإنشاء جداول جانبية في قاعدة بيانات المستخدم لتتبع التغيير. تؤثر أنشطة تعقب التغييرات هذه على أعباء عمل قاعدة البيانات الخاصة بك. قم بتقييم مستوى خدمتك وقم بالترقية إذا لزم الأمر.

قد يؤثر التوفير وإلغاء التوفير أثناء إنشاء مجموعة المزامنة وتحديثها وحذفها أيضاً على أداء قاعدة البيانات.

المتطلبات والقيود

المتطلبات العامة

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

هام

سيؤدي تغيير قيمة المفتاح الأساسي الحالي إلى السلوك الخاطئ التالي:

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

  • من أجل استخدام الارتباط الخاص لمزامنة البيانات، يجب استضافة قاعدتي بيانات العضو والمركز في Azure (نفس المناطق أو مناطق مختلفة)، في نفس نوع السحابة (على سبيل المثال في السحابة العامة أو كليهما في السحابة الحكومية). بالإضافة إلى ذلك، لاستخدام الارتباط الخاص، يجب تسجيل موفري موارد Microsoft.Network للاشتراكات التي تستضيف المركز وخوادم الأعضاء. أخيراً، يجب عليك الموافقة يدوياً على الارتباط الخاص لمزامنة البيانات أثناء تكوين المزامنة، ضمن قسم "اتصالات نقطة النهاية الخاصة" في بوابة Azure أو من خلال PowerShell. لمزيد من التفاصيل حول كيفية الموافقة على الارتباط الخاص، راجع إعداد SQL Data Sync. بمجرد الموافقة على نقطة النهاية الخاصة المُدارة بالخدمة، ستحدث جميع الاتصالات بين خدمة المزامنة وقواعد بيانات العضو / المركز عبر الارتباط الخاص. يمكن تحديث مجموعات المزامنة الحالية لتمكين هذه الميزة.

قيود عامة

  • لا يمكن أن يحتوي الجدول على عمود هوية لا يمثل المفتاح الأساسي.
  • لا يمكن أن يحتوي المفتاح الأساسي على أنواع البيانات التالية: sql_variant, binary, varbinary, image, xml.
  • كن حذراً عند استخدام أنواع البيانات التالية كمفتاح أساسي، لأن الدقة المعتمدة هي فقط للثاني: الوقت والتاريخ والوقت 2 وتاريخ وقت الانتهاء.
  • لا يمكن أن تحتوي أسماء الكائنات (قواعد البيانات والجداول والأعمدة) على فترة الأحرف القابلة للطباعة (.) أو القوس المربع الأيسر ([) أو القوس المربع الأيمن (]).
  • لا يمكن أن يحتوي اسم الجدول على أحرف قابلة للطباعة: ! "# $٪ '() * + - مسافة
  • مصادقة Azure Active Directory غير مدعومة.
  • إذا كانت هناك جداول بنفس الاسم ولكن مخطط مختلف (على سبيل المثال، dbo.customers وsales.customers) يمكن إضافة جدول واحد فقط إلى المزامنة.
  • الأعمدة ذات أنواع البيانات المعرفة من قبل المستخدم غير مدعومة
  • نقل الخوادم بين اشتراكات مختلفة غير مدعوم.
  • إذا كان هناك مفتاحان أساسيان مختلفان فقط في الحالة (مثل Foo وfoo)، فلن تدعم Data Sync هذا السيناريو.
  • اقتطاع الجداول ليس عملية تدعمها مزامنة البيانات (لن يتم تعقب التغييرات).
  • استخدام قاعدة بيانات Hyperscale كقاعدة بيانات Hub أو Sync Metadata غير مدعوم. ومع ذلك؛ يمكن أن تكون قاعدة بيانات Hyperscale قاعدة بيانات عضو في طوبولوجيا Data Sync.
  • الجداول المحسّنة للذاكرة غير مدعومة.

أنواع البيانات غير المدعومة

  • FileStream
  • SQL/CLR UDT
  • XMLSchemaCollection (يدعم XML)
  • المؤشر، إصدار الصف، الطابع الزمني، التسلسل الهرمي

أنواع الأعمدة غير المدعومة

لا يمكن لمزامنة البيانات مزامنة أعمدة القراءة فقط أو التي ينشئها النظام. على سبيل المثال:

  • الأعمدة المحسوبة.
  • أعمدة من إنشاء النظام للجداول الزمنية.

القيود على أبعاد الخدمة وقاعدة البيانات

الأبعاد الحد الحل البديل
الحد الأقصى لعدد مجموعات المزامنة التي يمكن أن تنتمي إليها أي قاعدة بيانات. 5
الحد الأقصى لعدد نقاط النهاية في مجموعة مزامنة واحدة 30
الحد الأقصى لعدد نقاط النهاية المحلية في مجموعة مزامنة واحدة. 5 إنشاء مجموعات مزامنة متعددة
أسماء قواعد البيانات والجدول والمخطط والأعمدة 50 حرفاً لكل اسم
الجداول في مجموعة متزامنة 500 إنشاء مجموعات مزامنة متعددة
أعمدة في جدول في مجموعة متزامنة 1000
حجم صف البيانات في الجدول 24 ميغا بايت

ملاحظة

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

متطلبات الشبكة

ملاحظة

إذا كنت تستخدم Sync private link، فلن تنطبق متطلبات الشبكة الماثلة.

عند إنشاء مجموعة المزامنة، تحتاج خدمة مزامنة البيانات إلى الاتصال بقاعدة بيانات المركز. في الوقت الذي تقوم فيه بإنشاء مجموعة المزامنة، يجب أن يحتوي خادم Azure SQL على التكوين التالي في إعدادات Firewalls and virtual networksالخاصة به:

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

ملاحظة

إذا قمت بتغيير إعدادات مخطط مجموعة المزامنة، فستحتاج إلى السماح لخدمة Data Sync بالوصول إلى الخادم مرة أخرى حتى يمكن إعادة توفير قاعدة بيانات المركز.

موقع بيانات المنطقة

إذا قمت بمزامنة البيانات داخل نفس المنطقة، فلن يقوم SQL Data Sync بتخزين / معالجة بيانات العملاء خارج تلك المنطقة التي يتم فيها نشر مثيل الخدمة. إذا قمت بمزامنة البيانات عبر مناطق مختلفة، فسيقوم SQL Data Sync بنسخ بيانات العميل إلى المناطق المقترنة.

الأسئلة المتداولة حول SQL Data Sync

كم تبلغ تكلفة خدمة SQL Data Sync

لا توجد رسوم على خدمة SQL Data Sync نفسها. ومع ذلك، ما زلت تجمع رسوم نقل البيانات لحركة البيانات داخل وخارج مثيل قاعدة بيانات SQL. لمزيد من المعلومات، راجع رسوم نقل البيانات.

ما المناطق التي تدعم مزامنة البيانات

يتوفر SQL Data Sync في جميع المناطق.

هو مطلوب حساب قاعدة بيانات SQL

نعم. يجب أن يكون لديك حساب قاعدة بيانات SQL لاستضافة قاعدة بيانات المركز.

هل يمكنني استخدام Data Sync للمزامنة بين قواعد بيانات SQL Server فقط

لا مباشرة. ومع ذلك، يمكنك المزامنة بين قواعد بيانات SQL Server بشكل غير مباشر عن طريق إنشاء قاعدة بيانات Hub في Azure، ثم إضافة قواعد البيانات المحلية إلى مجموعة المزامنة.

هل يمكنني تكوين مزامنة البيانات للمزامنة بين قواعد البيانات في Azure SQL Database التي تنتمي إلى اشتراكات مختلفة

نعم. يمكنك تكوين المزامنة بين قواعد البيانات التي تنتمي إلى مجموعات الموارد المملوكة من قبل اشتراكات مختلفة، حتى إذا كانت الاشتراكات تنتمي إلى مستأجرين مختلفين.

  • إذا كانت الاشتراكات تنتمي إلى نفس المستأجر ولديك إذن لجميع الاشتراكات، يمكنك تكوين مجموعة المزامنة في مدخل Microsoft Azure.
  • خلاف ذلك، يجب عليك استخدام PowerShell لإضافة أعضاء المزامنة.

هل يمكنني إعداد Data Sync للمزامنة بين قواعد البيانات في قاعدة بيانات SQL التي تنتمي إلى مجموعة سحابية مختلفة (مثل Azure Public Cloud وAzure China 21Vianet)؟

نعم. يمكنك إعداد المزامنة بين قواعد البيانات التي تنتمي إلى مجموعة سحابية مختلفة. يجب عليك استخدام PowerShell لإضافة أعضاء المزامنة الذين ينتمون إلى اشتراكات مختلفة.

هل يمكنني استخدام Data Sync لنقل البيانات من قاعدة بيانات الإنتاج إلى قاعدة بيانات فارغة، ثم مزامنتها

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

هل يجب أن أستخدم SQL Data Sync لعمل نسخة احتياطية من قواعد البيانات واستعادتها

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

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

يمكن مزامنة البيانات والجداول والأعمدة المشفرة

  • إذا كانت قاعدة البيانات تستخدم ميزة التشفير دائماً، فيمكنك فقط مزامنة الجداول والأعمدة غير المشفرة. لا يمكنك مزامنة الأعمدة المشفرة، لأن Data Sync لا يمكنها فك تشفير البيانات.
  • إذا كان العمود يستخدم التشفير على مستوى العمود (CLE)، فيمكنك مزامنة العمود، طالما أن حجم الصف أقل من الحد الأقصى للحجم وهو 24 ميغا بايت. يتعامل Data Sync مع العمود المشفر بواسطة المفتاح (CLE) على أنه بيانات ثنائية عادية. لفك تشفير البيانات الموجودة على أعضاء المزامنة الآخرين، يجب أن يكون لديك نفس الشهادة.

يتم دعم التجميع في SQL Data Sync

نعم. يدعم SQL Data Sync التجميع في السيناريوهات التالية:

  • إذا لم تكن جداول مخطط المزامنة المحددة موجودة بالفعل في قاعدة بيانات المركز أو قواعد بيانات الأعضاء، فعند نشر مجموعة المزامنة، تقوم الخدمة تلقائياً بإنشاء الجداول والأعمدة المقابلة مع إعدادات النسخ المحددة في قواعد بيانات الوجهة الفارغة.
  • إذا كانت الجداول المراد مزامنتها موجودة بالفعل في كل من قواعد بيانات المركز والأعضاء، فإن SQL Data Sync تتطلب أن يكون لأعمدة المفاتيح الأساسية نفس الترتيب بين قواعد بيانات المركز والأعضاء لنشر مجموعة المزامنة بنجاح. لا توجد قيود على ترتيب الأعمدة بخلاف أعمدة المفاتيح الأساسية.

يتم دعم الاتحاد في SQL Data Sync

يمكن استخدام قاعدة بيانات جذر الاتحاد في خدمة مزامنة بيانات SQL دون أي قيود. لا يمكنك إضافة نقطة نهاية قاعدة البيانات الموحدة إلى الإصدار الحالي من SQL Data Sync.

هل يمكنني استخدام Data Sync لمزامنة البيانات المصدرة من Dynamics 365 باستخدام ميزة جلب قاعدة البيانات الخاصة بك (BYOD)؟

يتيح Dynamics 365 إحضار ميزة قاعدة البيانات الخاصة بك للمسؤولين تصدير كيانات البيانات من التطبيق إلى قاعدة بيانات Microsoft Azure SQL الخاصة بهم. يمكن استخدام مزامنة البيانات لمزامنة هذه البيانات مع قواعد البيانات الأخرى إذا تم تصدير البيانات باستخدام الدفع المتزايد (الدفع الكامل غير مدعوم) وتمكين المشغلات في قاعدة البيانات الهدف على نعم.

كيف أقوم بإنشاء Data Sync في مجموعة تجاوز الفشل لدعم الإصلاح بعد كارثة؟

  • للتأكد من أن عمليات مزامنة البيانات في منطقة تجاوز الفشل متكافئة مع المنطقة الأساسية، بعد تجاوز الفشل، يجب عليك إعادة إنشاء مجموعة المزامنة يدوياً في منطقة تجاوز الفشل باستخدام نفس إعدادات المنطقة الأساسية.

الخطوات التالية

تحديث مخطط قاعدة البيانات المتزامنة

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

المراقبة واستكشاف الأخطاء وإصلاحها

هل SQL Data Sync يعمل بالشكل المتوقع؟ لمراقبة النشاط واستكشاف المشكلات وإصلاحها، راجع المقالات التالية:

تعرف على المزيد حول قاعدة بيانات Azure SQL

لمزيد من المعلومات حول قاعدة بيانات Azure SQL، راجع المقالات التالية: