كيف يتم نقل قاعدة بيانات GCP بسلاسة ؟ الانتقال بدون توقف باستخدام خدمة قاعدة بيانات Migration (DMS)
في مجال الحوسبة السحابية ، هناك شيء واحد يمكن أن يجعل جميع المهندسين المعماريين والصيانة (SRE) يعملون ساعات إضافية بين عشية وضحاها ، وهو الخوف ، وهو
ترحيل قاعدة البيانات
.
عندما يسمع الكثير من الناس "نقل المكتبة" ، فإن الصورة التي تتبادر إلى الذهن هي: اختيار فترة ذروة منخفضة للأعمال في الساعة 30 أو 3 صباحًا ، وتعليق إعلان الصفحة الرئيسية "في صيانة النظام" ، ثم تصدير SQL على عجل ، نقل الملفات ، استيراد مكتبات جديدة ، تعديل التكوين... تشبه العملية برمتها المشي على حبل مشدود على ارتفاع عالٍ ، فبمجرد أن تتعثر أي رابط في المنتصف أو لا تكون البيانات متقابلة ، سيتم إطالة وقت تعليق العمل إلى ما لا نهاية.
ولكن في الواقع ، لم يعد مصنعو السحابة الحاليين شائعين منذ فترة طويلة في طريقة الانتقال الصعبة "قتل ألف عدو ، خسارة ثمانمائة". اليوم سنتحدث عن قطعة أثرية تقدمها Google Cloud (GCP) --
قاعدة بيانات Migration Service (DMS)
.
بصفتي شخصًا يتدحرج في الوحل في بيئة الإنتاج ، أستخدم اللغة الأكثر قابلية للفهم اليوم ، بغض النظر عن المصطلحات التي تجعل الناس يشعرون بالنعاس في الوثائق الرسمية ، وأعلمك كيفية استخدام DMS لتحقيق "وقت التوقف الصفري".
1. المفهوم الأساسي: ما هو "الانتقال بدون توقف" لـ DMS ؟
قبل القيام بذلك ، سنأخذ دقيقة لفهم منطقها الأساسي. السبب الأساسي وراء قدرة DMS على تحقيق "توقف صفري" هو أنه لا يرمي البيانات في وقت واحد ، ولكنه ينقسم إلى مرحلتين:
شراء حساب سحابة جوجل
التهيئة الكاملة (نسخ بيانات المخزون): سيقوم DMS أولاً بنسخ جميع البيانات التاريخية الموجودة في قاعدة بيانات المصدر إلى المكتبة المستهدفة لـ GCP (مثل Cloud SQL). في هذه العملية ، تعمل أعمالك عبر الإنترنت كالمعتاد ، ولا تتأثر القراءة والكتابة العادية على الإطلاق.
التزامن التدريجي (بيانات المطاردة في الوقت الفعلي): عند نقل البيانات التاريخية ، سيقوم DMS بقراءة سجلات مكتبة المصدر (مثل MySQL's Binlog أو PostgreSQL's WAL) لجمع بيانات الأعمال التي تم إنشاؤها حديثًا أثناء النقل الكامل. "مزامنة" باستمرار إلى المكتبة الجديدة. في هذا الوقت ، تتم مزامنة بيانات المكتبات الجديدة والقديمة بالكامل تقريبًا في الوقت الفعلي.
نظرًا لأن بيانات المكتبة القديمة والجديدة متسقة ، يمكنك تغيير سلسلة اتصال قاعدة بيانات التطبيق إلى عنوان المكتبة الجديدة خلال النهار وفي أكثر أوقات العمل.
وقت انقطاع العمل هو فقط عشرات الثواني ، أو حتى بضع ثوانٍ ، لإعادة تشغيل التطبيق وتبديل التكوين.
2. "ثلاثة فحوصات أمنية" قبل الانتقال (الاستعدادات)
إن استخدام DMS للتحرك يشبه الطيران بالطائرة ، فالفحص الأمني جاهز ، والإبحار نصف ناجح. تحدد النقاط الثلاث التالية بشكل مباشر ما إذا كان الترحيل سيفشل:
1. سجل فتح مكتبة المصدر (الخطوة الأكثر أهمية)
يجب أن يكون DMS قادرًا على قراءة السجلات في الوقت الفعلي لمكتبة المصدر الخاصة بك من أجل إجراء مزامنة تدريجية.
إذا كانت مكتبة المصدر هي MySQL: يجب عليك التأكد من تشغيل binlog ، ويجب تعيين binlog_format إلى ROW ، binlog
_ Row_image تعيين FULL.
إذا كانت مكتبة المصدر هي PostgreSQL: تحتاج إلى تعيين مستوى wal_ligical وتكوين فتحة النسخ المتماثل.
2. فكر في كيفية الاتصال بالإنترنت (خطة الاتصال)
يجب أن تكون مكتبة المصدر و GCP قادرة على التحدث بأمان. يوفر DMS عدة طرق للاتصال ، مرتبة حسب مستوى الأمان والتوصية:
VPC peering (اتصال VPC من نظير إلى نظير): إذا كانت مكتبة المصدر الخاصة بك موجودة بالفعل في VPC آخر في GCP أو في غرفة الكمبيوتر المتصلة عبر خط Interconnect ، فهذا هو الخيار الأول ، سريع وآمن.
نفق Reverse SSH (نفق SSH العكسي): المخطط المدني الأكثر استخدامًا. افتح جهازًا ظاهريًا صغيرًا كآلة انطلاق في شبكة مكتبة المصدر ، واسمح لـ GCP بالدخول عبر نفق مشفر.
قائمة IP المسموح بها (IP العام): الأبسط ولكن الأقل الموصى بها. كشف عنوان IP الخاص بالشبكة العامة للمكتبة المصدر مباشرة إلى نطاق IP الخاص بـ DMS. إذا كان الاختبار فقط يمكن القيام بذلك ، يجب استخدام بيئة الإنتاج بحذر.
3. إنشاء حساب ترحيل
شراء حساب جوجل كلاود
لا تستخدم مباشرة
جذر
أو
مدير النظام
هذا الحساب الأسمى يعمل ويهاجر. إنشاء مؤقت على وجه التحديد في مكتبة المصدر
Dms_user
، فقط إعطائها أذونات القراءة والنسخ اللازمة (مثل MySQL
REPLICATION CLIENT
،
REPLICATION SLAVE
،
حدد
الخ). بعد النقل ، تم حذف الحساب مباشرة ، وهو آمن وأنيق.
3. القتال الفعلي: أربع خطوات لتكوين DMS
بعد الانتهاء من الاستعدادات ، ننتقل مباشرة إلى وحدة التحكم GCP ، والبحث
قاعدة بيانات Migration
.
الخطوة الأولى: إنشاء "Migration Job"
بعد النقر على إنشاء ، تحتاج إلى ملء المعلومات الأساسية للوظيفة:
نوع قاعدة بيانات المصدر: مثل MySQL أو AWS RDS أو قواعد بيانات سحابة أخرى.
نوع قاعدة البيانات المستهدفة: عادةً ما يتم استضافة Cloud SQL أو AlloyDB بواسطة GCP.
نوع الترحيل: لا تتردد في اختيار "المزامنة المستمرة". فقط من خلال اختيار هذا هو صفر توقف ونقل ؛ إذا اخترت "وقت واحد" ، فستنتهي البيانات بعد النقل ، ولا يتم تضمين المزامنة الإضافية اللاحقة.
الخطوة الثانية: تكوين اتصال المصدر (Connection Profile)
هنا لملء "معلومات الفحص الأمني" التي أعددناها للتو:
أدخل عنوان IP والمنفذ ورقم حساب dms_user وكلمة المرور الخاصة بمكتبة المصدر.
اختر طريقة اتصال الشبكة التي حددتها (مثل تكوين القس)
نفق إرس SSH).
اضغط على "اختبار الاتصال" للتأكد من أن شريط التقدم يتحول إلى اللون الأخضر. إذا تم الإبلاغ عن خطأ ، فعادة ما يكون جدار الحماية أو فريق الأمان لم يفرج عنه ، فاعود للتحقق من الشبكة.
الخطوة الثالثة: تكوين مكتبة الهدف (Cloud SQL)
إذا لم يتم إنشاء الهدف Cloud SQL بعد ، فإن DMS يتيح لك "إنشاء جديد بنقرة واحدة" مباشرة في الواجهة.
يمكنك اختيار نفس التكوين مثل مكتبة المصدر (وحدة المعالجة المركزية ، الذاكرة ، مساحة التخزين).
نصيحة قوية: بالمناسبة ، ضع علامة على إمكانية الوصول العالية (HA) والنسخ الاحتياطي التلقائي للمكتبة المستهدفة في خطوة واحدة.
الخطوة الرابعة: بدء التحقق والتشغيل (Start Job)
قبل النقر على التشغيل ، سيكون لدى DMS ميزة "فحص مسبق" قوية للغاية. سيساعدك تلقائيًا على التحقق: تنسيق سجل مكتبة المصدر ، أليس كذلك ؟ هل الأذونات كافية ؟ الإصدار وغير متوافق ؟
إذا كان هناك خطأ أحمر ، فاذهب إلى المصدر لتغيير التكوين وفقًا للمطالبات ؛ إذا كان كل الخطاف الأخضر ، فانقر مباشرة
”البداية (Start)“
.
4. Cutover: كيفية إطلاق "الطلقة الأخيرة" بشكل مثالي
عندما يتم تشغيل المهمة ، سترى أن الحالة تصبح
Full dump in progress
(مشتق بالكامل) ، ثم يصبح
CDC in progress
(التزامن التدريجي).
عندما تدخل الدولة
CDC in progress
و
"تأخير التزامن (Lag)" يقترب من 0
في ذلك الوقت ، فهذا يعني أن بيانات المكتبة الجديدة والمكتبة القديمة متزامنة تمامًا. في هذا الوقت ، يمكننا إعداد "قطع" حقيقي.
هنا هو جوهر تحديد نجاح أو فشل صفر توقف ، يرجى اتباع الخطوات التالية بدقة:
1. الأعمال "للقراءة فقط"
من أجل منع البيانات الجديدة من الكتابة الخاطئة في غضون ثوانٍ قليلة من تبديل الاتصال ، قم أولاً بتعيين العمل على "وضع القراءة فقط" على طبقة التطبيق أو قاعدة البيانات المصدر.
2. انتظر حتى تتعادل الموجة الأخيرة من بيانات DMS
راقب واجهة DMS للتأكد من أن التأخير (Lag) يصبح 0 تمامًا. هذا يعني أن آخر البيانات التي تم إنشاؤها بواسطة المصدر قبل القراءة فقط قد تم استلامها بثبات في المستودع الجديد لـ GCP.
3. اضغط على "Promote" على DMS
انقر على وحدة التحكم GCP
”Promote“
الأزرار. هذا الإجراء سوف يفعل شيئين:
افصل العلاقة المتزامنة بين المكتبة الجديدة والمكتبة القديمة.
شراء حساب جوجل كلاود
قم بترقية Cloud SQL المستهدفة من "جهاز استقبال للقراءة فقط" إلى "مكتبة إنتاج قابلة للقراءة والكتابة بشكل مستقل تمامًا".
4. تعديل تكوين التطبيق والاتصال بالإنترنت بالكامل
قم بتكوين اتصال قاعدة بيانات تطبيقك ، وقم بتغيير عنوان IP الخاص بـ Cloud SQL الجديد ، وإلغاء وضع القراءة فقط للتطبيق ، وإعادة تشغيل الخدمة.
تحقق من العمل لمعرفة ما إذا كان الطلب في مكتب الاستقبال وتسجيل الدخول في الخلفية أمرًا طبيعيًا. إذا كان كل شيء على ما يرام ، تهانينا ، هذه الخطوة الكبيرة في قاعدة البيانات المثيرة ، في الاستخدام
تم الانتهاء بنجاح دون إدراك المنزل على الإطلاق!
5. المبتدئ يتجنب الحفرة ويتحدث عن التجربة
على الرغم من أن DMS يعمل بشكل جيد ، كشخص قادم ، هناك العديد من الحفر الكبيرة غير المرئية التي يجب أن تنبهك:
تفتقر الساعة الكبيرة إلى المفتاح الأساسي (المفتاح الأساسي): إذا كان لديك بعض الساعات الكبيرة جدًا في مستودع المصدر الخاص بك ، ولا يوجد مفتاح أساسي فيه ، فإن أداء DMS سيكون ضعيفًا للغاية عند إجراء التزامن الإضافي (CDC) ، وقد يتسبب في حدوث تزامن عالق. قبل الترحيل ، تأكد من السماح للمطورين بملء المفتاح الأساسي للجدول بدون مفتاح أساسي.
لا تقم بالمحافظة على عرض النطاق الترددي للشبكة: تستهلك المرحلة المتحركة الكاملة عرض النطاق الترددي للشبكة. إذا كانت مكتبة المصدر الخاصة بك في غرفة الكمبيوتر المحلية ، أو كان عرض النطاق الترددي للخط المخصص أو الشبكة العامة صغيرًا جدًا ، فلن تنتقل فقط لبضعة أيام وليال ، ولكن قد تضغط أيضًا على عرض النطاق الترددي التجاري العادي لغرفة الكمبيوتر الخاصة بك. تذكر بدء حركة كاملة في فترة الذروة المنخفضة للأعمال ، أو تعيين قيود حركة المرور في DMS.
لاحظ مشكلة المنطقة الزمنية (Timezone): Cloud SQL هي المنطقة الزمنية UTC افتراضيًا. إذا كانت مكتبة المصدر الخاصة بك تستخدم آسيا/شنغهاي (المنطقة الثامنة الشرقية) ، فقد يكون الوقت الذي يتم فيه اكتشاف التطبيق بعد الترحيل أقل من 8 ساعات. تذكر أنه عند إنشاء مكتبة الهدف ، اضبط معلمة المنطقة الزمنية (default_timezone) تمامًا مثل مكتبة المصدر.
📝الخلاصة
خدمة قاعدة بيانات Migration (DMS) الخاصة بـ GCP هي في الأساس واحدة
أداة ترحيل مجانية بدون خادم (Serverless)
(تحتاج فقط إلى دفع رسوم الأجهزة والشبكة للمكتبة المستهدفة أثناء عملية الترحيل ، ولا يتقاضى DMS نفسه رسومًا على البرامج).
إنه يحول "النقل اليدوي للحوم البشرية" ، الذي كان ذات يوم عاليًا وعاليًا ، إلى فأرة موحدة ومرئية.
تلخص الجملة الأخيرة:
توقف عن استخدام التفكير القديم في صيانة التوقف لرمي بيئة الإنتاج. استخدم DMS للمزامنة المتزايدة المستمرة ، واستوعب المبادرة بين يديك ، وشرب القهوة أثناء النهار ، يمكنك نقل المكتبة. هذا هو الموقف الأنيق الذي يجب أن يتمتع به السحابة الأصلية الحديثة!
