في هذا المنشور، سأشارك الخطوات التفصيلية لترحيل البيانات في قاعدة بيانات MySQL المحلية الخاصة بك إلى المثيلات التي تم إنشاؤها حديثًا على AWS RDS مع MySQL.
لقد عملت في مشروع متكامل في عام 2023 حيث تعاملت يدويًا مع عمليات نشر الإنتاج لقاعدة البيانات الخاصة بي والواجهة الخلفية لـ AWS. في وقت سابق من هذا العام، قمت بإغلاق جميع البنية التحتية لأنني كنت أتراكم الكثير من التكاليف الشهرية مع قاعدة البيانات (لا بفضل الإفراط في التزويد).
الآن، نتقدم سريعًا إلى هذا الشهر وما زال لدي الكثير من أرصدة AWS (امتيازات كوني منشئ المجتمع) والتي من المقرر أن تنتهي صلاحيتها بحلول نهاية العام. لقد حاولت استعادة مشروعي مرة أخرى فقط لأدرك أن الأمر لن يكون سهلاً كما كنت أعتقد.
أولاً، لم أقم بإنشاء لقطة بشكل صحيح يمكنني استخدامها لاستعادة بيانات الإنتاج وظللت أتلقى أخطاء في الوصول. تم تذكيري أيضًا بمدى صعوبة عملية النشر بأكملها، وكيف أنني لم أوثق أيًا من الخطوات التي اتخذتها (كما أنني لم أتذكرها).
لقد كان هذا درسًا مستفادًا، لذلك أقوم هذه المرة بتوثيق العملية برمتها. تماشيًا مع أحد الأقوال في دورة Udemy التي لم أنتهي منها أبدًا:
'عليك أن تعرف كيفية تنفيذ المهمة يدويًا قبل الشروع في تنفيذها تلقائيًا'.
ومن ثم، سأشارك أولاً الخطوات التي اتخذتها لتنفيذ الترحيل يدويًا، وفي المنشور التالي، سأكتب نصوصًا برمجية لتوفير البنية التحتية باستخدام Terraform وأيضًا تفريغ البيانات المحلية في قاعدة البيانات البعيدة بعد النجاح يطلق.
يعد هذا أيضًا جزءًا من مشروعي المستمر الذي تم تعيينه ذاتيًا لمعرفة المزيد حول CI/CD من خلال إنشاء مسار لأتمتة النشر الكامل للمشروع.
هذه المرة، كنت أكثر تعمدًا وعمليًا فيما يتعلق بالتكوين. على الرغم من أنه كان "نشرًا للإنتاج"، إلا أنني مازلت أختار ما يُرجح أنه أرخص تكاليف التشغيل نظرًا لأنه ليس منتجًا حيًا فعليًا (وأثر هذا أيضًا على بعض خيارات الأمان التي اخترت عدم إضافتها).
لقد قمت بتلخيص الخيارات التي اخترتها في معالج "إنشاء قاعدة بيانات" أدناه:
AWS Region: eu-west-2 Database creation method: Standard Create Engine type/edition/version: MySQL/MySQL Community/MySQL 8.0.35 Use case template: Free Tier Credential settings: define these as you'd prefer DB instance class: db.t3.micro Storage: gp2, 20GB, auto-scaling enabled up to 100GB Connectivity: - define these for your specific use-case; I chose not to use an EC2 - Public access: Yes, because I wanted to connect to the database locally via MySQL Workbench Database authentication: Password auth Additional configuration: - I created one database from here; but you can also leave it blank and create one when you get access via Workbench Others: - use default options or modify for your use-case Deletion protection: - enabled (to dissuade myself from deleting easily like the last time)
التكاليف الشهرية المقدرة:
بعد إطلاق المثيل بنجاح، استخدم عميل mysql للاتصال بالمثيل. يفترض هذا أن خادم MySQL الخاص بك قد تم تثبيته وتشغيله.
البدء في استخدام MySQL
عميل MySQL
ستحتاج أيضًا إلى نقطة نهاية المثيل، واسم المستخدم وكلمة المرور اللذين حددتهما في إعدادات بيانات الاعتماد، لتشغيل هذا الأمر:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p
ملاحظة: كان من الممكن إنشاء المثيل الخاص بك باستخدام القواعد الواردة والصادرة الصحيحة لمجموعات أمان VPC المحددة.
ومع ذلك، إذا واجهت أخطاء في الاتصال، فتأكد من تضمين عنوان IP الخاص بك في المصدر المسموح به للقواعد الواردة. لقد واجهت مشكلة مماثلة عندما قمت بإنشاء المثيل في موقع محدد باستخدام عنوان IP الخاص به، وعندما حاولت الاتصال بعنوان IP مختلف في موقع آخر، انتهت مهلة الاتصال.
[اختياري] إنشاء قاعدة البيانات الخاصة بك
إذا تخطيت خطوة التكوين الإضافي أثناء إنشاء المثيل، فيمكنك إنشاء واحد في هذه الخطوة:
CREATE DATABASE sample_db;
للقيام بذلك، تحتاج أولاً إلى استخدام الأمر mysqldump لتصدير المخطط والبيانات في قاعدة البيانات المحلية الخاصة بك إلى ملف تفريغ .sql:
mysqldump -u root -p local_db_name > sample_dump.sql
ملاحظة: إذا واجهت أخطاء أثناء محاولة التصدير، فراجع سؤالي حول Stack Overflow وأيضًا إجابة قد تحل بعض المشكلات المحتملة.
بعد ذلك، استخدم الأمر mysql لاستيراد ملف التفريغ إلى مثيل RDS الخاص بك:
mysql -h sample_endpoint.rds.amazonaws.com -u username_sample -p sample_db4. [اختياري] اتصل بمثيل RDS الخاص بك عبر MySQL Workbench
تأكد من قدرتك على الاتصال بالمثيل دون مشاكل، وتحقق من المخطط والبيانات داخل قاعدة البيانات للتأكد من أنه تم استيرادها أيضًا بشكل صحيح.
غير قادر على الاتصال؟
التالي سيكون:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3