كيفية استخدام mysqldump: دليل النسخ الاحتياطي والاستعادة لقاعدة MySQL مع أمثلة

1. المقدمة

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

ستأخذك هذه المقالة عبر أساسيات أمر mysqldump، وكيفية استخدام الخيارات المتقدمة، وتعليمات خطوة بخطوة لاستعادة قاعدة البيانات من نسخة احتياطية.

2. الصياغة الأساسية لأمر mysqldump

يُستخدم أمر mysqldump لتفريغ (تصدير) بيانات وبُنى MySQL. لنبدأ بمراجعة الصياغة الأساسية.

mysqldump -u [username] -p [database_name] > [output_file.sql]

شرح المعاملات

  • -u [username] : يحدد اسم مستخدم MySQL للاتصال به.
  • -p : يطلب كلمة مرور MySQL (إذا تُركت، سيُطلب منك إدخالها تفاعليًا).
  • [database_name] : اسم قاعدة البيانات التي تريد نسخها احتياطيًا.
  • > [output_file.sql] : المسار واسم ملف التفريغ الذي سيتم إنشاؤه.

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

أمر مثال

mysqldump -u root -p my_database > my_database_backup.sql

هذا الأمر ينسخ قاعدة البيانات المسماة my_database إلى ملف يُدعى my_database_backup.sql.

3. الخيارات الشائعة واستخدامها

3.1 –all-databases

خيار --all-databases يتيح لك نسخ جميع قواعد البيانات على خادم MySQL مرة واحدة، مما يجعله مفيدًا لإدارة عدة قواعد بيانات معًا.

mysqldump -u root -p --all-databases > all_databases_backup.sql

3.2 –no-data

مع خيار --no-data، يتم تفريغ بنية قاعدة البيانات (الهيكل) فقط دون البيانات الفعلية. هذا مفيد عندما تريد فقط نسخ تعريفات الجداول.

mysqldump -u root -p --no-data my_database > my_database_schema.sql

3.3 –add-drop-table

خيار --add-drop-table يضيف عبارات DROP TABLE إلى ملف التفريغ. هذا يمنع تكرار الجداول أثناء الاستعادة ويسهل استبدال الجداول الموجودة.

mysqldump -u root -p --add-drop-table my_database > my_database_backup.sql

3.4 –lock-tables

خيار --lock-tables يقفل الجداول أثناء إجراء النسخ الاحتياطي لمنع التغييرات خلال عملية التفريغ. هذا مفيد بشكل خاص عند التعامل مع قواعد بيانات إنتاجية حية.

mysqldump -u root -p --lock-tables my_database > locked_backup.sql

4. الخيارات المتقدمة

4.1 التفريغ الشرطي باستخدام –where

خيار --where يتيح لك تفريغ البيانات بناءً على شروط محددة. على سبيل المثال، يمكنك نسخ السجلات التي تم إنشاؤها بعد تاريخ معين فقط.

mysqldump -u root -p my_database --where="created_at >= '2023-01-01'" > filtered_data_backup.sql

في هذا المثال، يتم نسخ السجلات التي يكون حقل created_at فيها في أو بعد 1 يناير 2023 فقط.

4.2 خيار –xml

خيار --xml يصدر البيانات بصيغة XML. استخدمه عندما تحتاج إلى توفير بيانات قاعدة البيانات لتطبيقات أو أنظمة تتطلب XML.

mysqldump -u root -p --xml my_database > database_backup.xml

5. استعادة البيانات باستخدام mysqldump

لاستعادة قاعدة بيانات من نسخة احتياطية تم إنشاؤها باستخدام mysqldump، استخدم أمر mysql:

mysql -u [username] -p [database_name] < [backup_file.sql]

5.1 مثال على الاستعادة

الأمر التالي يستعيد قاعدة البيانات my_database من ملف my_database_backup.sql:

mysql -u root -p my_database < my_database_backup.sql

ملاحظات هامة

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

6. نصائح استراتيجية النسخ الاحتياطي

6.1 أتمتة النسخ الاحتياطي المنتظم

نظرًا لتغيّر محتوى قاعدة البيانات بشكل متكرر، من المهم أتمتة النسخ الاحتياطي. يمكنك استخدام وظائف cron لجدولة نسخ احتياطية يومية.

0 2 * * * mysqldump -u root -p my_database > /path/to/backup/my_database_$(date +%F).sql

في هذا المثال، يتم تشغيل النسخة الاحتياطية كل يوم في الساعة 2 صباحًا، مع تضمين التاريخ الحالي في اسم الملف.

6.2 النسخ الاحتياطية المتزايدة

بدلاً من نسخ قاعدة البيانات بالكامل في كل مرة، يمكن للنسخ الاحتياطية المتزايدة حفظ التغييرات فقط. باستخدام خيار --where لتصدير البيانات التي تم تعديلها مؤخرًا، يمكنك جعل العملية أكثر كفاءة.

7. الخاتمة

أداة mysqldump هي طريقة بسيطة لكنها قوية لعمل نسخ احتياطية من قواعد بيانات MySQL. من خلال فهم كل من الاستخدام الأساسي والخيارات المتقدمة، يمكنك بناء استراتيجية نسخ احتياطي قوية تعزز موثوقية النظام وحماية البيانات. أتمتة النسخ الاحتياطية المنتظمة واستخدام استراتيجيات متزايدة هي المفتاح لإدارة قاعدة بيانات فعّالة.

استخدم هذا الدليل لتحسين عملية النسخ الاحتياطي باستخدام mysqldump وتعزيز مهاراتك في إدارة قواعد البيانات.