تكنولوجيا - كيفية عمل نسخة احتياطية من قاعدة بيانات mysql الى قاعدة بيانات mysql اخرى
جدول المحتويات:
- بناء جملة الأمر Mysqldump
- النسخ الاحتياطي لقاعدة بيانات MySQL واحدة
- النسخ الاحتياطي قواعد بيانات MySQL متعددة
- النسخ الاحتياطي لجميع قواعد بيانات MySQL
- النسخ الاحتياطي لجميع قواعد بيانات MySQL لفصل الملفات
- إنشاء قاعدة بيانات MySQL مضغوطة
- إنشاء نسخة احتياطية مع الطابع الزمني
- استعادة تفريغ الخلية
- استعادة قاعدة بيانات MySQL واحدة من تفريغ MySQL كامل
- تصدير واستيراد قاعدة بيانات MySQL في أمر واحد
- أتمتة النسخ الاحتياطي مع كرون
- استنتاج
يشرح هذا البرنامج التعليمي كيفية النسخ الاحتياطي واستعادة قواعد بيانات MySQL أو MariaDB من سطر الأوامر باستخدام الأداة المساعدة mysqldump.
ملفات النسخ الاحتياطي التي تم إنشاؤها بواسطة الأداة المساعدة mysqldump هي في الأساس مجموعة من عبارات SQL التي يمكن استخدامها لإعادة إنشاء قاعدة البيانات الأصلية. يمكن لأمر mysqldump أيضًا إنشاء ملفات بتنسيق CSV و XML.
يمكنك أيضًا استخدام الأداة المساعدة mysqldump لنقل قاعدة بيانات MySQL إلى خادم MySQL آخر.
بناء جملة الأمر Mysqldump
قبل الدخول في كيفية استخدام الأمر mysqldump ، لنبدأ بمراجعة بناء الجملة الأساسي.
تأخذ تعبيرات الأداة المساعدة mysqldump النموذج التالي:
mysqldump > file.sql
-
options
- خياراتfile.sql
mysqldump.file.sql
- تفريغ (النسخ الاحتياطي)
لاستخدام الأمر mysqldump ، يجب أن يكون خادم MySQL متاحًا وقيد التشغيل.
النسخ الاحتياطي لقاعدة بيانات MySQL واحدة
حالة الاستخدام الأكثر شيوعًا لأداة mysqldump هي النسخ الاحتياطي لقاعدة بيانات واحدة.
على سبيل المثال ، لإنشاء نسخة احتياطية من قاعدة البيانات المسماة
database_name
باستخدام
root
المستخدم وحفظه في ملف باسم
database_name.sql
فستقوم بتشغيل الأمر التالي:
mysqldump -u root -p database_name > database_name.sql
سيُطلب منك إدخال كلمة مرور الجذر. بعد المصادقة الناجحة ، ستبدأ عملية التفريغ. اعتمادًا على حجم قاعدة البيانات ، قد تستغرق العملية بعض الوقت.
mysqldump database_name > database_name.sql
النسخ الاحتياطي قواعد بيانات MySQL متعددة
لإجراء نسخ احتياطي لقواعد بيانات MySQL متعددة بأمر واحد ، يلزمك استخدام خيار قاعدة البيانات - متبوعًا بقائمة قواعد البيانات التي تريد
--database
احتياطيًا. يجب فصل كل اسم قاعدة بيانات بمسافة.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
سيقوم الأمر أعلاه بإنشاء ملف تفريغ يحتوي على قاعدتي البيانات.
النسخ الاحتياطي لجميع قواعد بيانات MySQL
استخدم خيار
--all-databases
لعمل نسخة احتياطية من جميع قواعد بيانات MySQL:
mysqldump -u root -p --all-databases > all_databases.sql
كما هو الحال في المثال السابق ، سيقوم الأمر أعلاه بإنشاء ملف تفريغ واحد يحتوي على جميع قواعد البيانات.
النسخ الاحتياطي لجميع قواعد بيانات MySQL لفصل الملفات
لا توفر الأداة المساعدة
mysqldump
خيارًا لإجراء نسخ احتياطي لكافة قواعد البيانات لفصل الملفات ، لكننا نحقق ذلك بسهولة باستخدام bash
FOR
:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
سيقوم الأمر أعلاه بإنشاء ملف تفريغ منفصل لكل قاعدة بيانات باستخدام اسم قاعدة البيانات باسم الملف.
إنشاء قاعدة بيانات MySQL مضغوطة
إذا كان حجم قاعدة البيانات كبيرًا جدًا ، فمن الجيد ضغط المخرجات. للقيام بذلك ، قم ببساطة بإخراج الإخراج إلى أداة
gzip
وإعادة توجيهه إلى ملف كما هو موضح أدناه:
mysqldump database_name | gzip > database_name.sql.gz
إنشاء نسخة احتياطية مع الطابع الزمني
mysqldump database_name > database_name-$(date +%Y%m%d).sql
سيقوم الأمر أعلاه بإنشاء ملف بالتنسيق التالي
database_name-20180617.sql
استعادة تفريغ الخلية
يمكنك استعادة ملف تفريغ MySQL باستخدام أداة
mysql
. بناء جملة الأمر العام كما يلي:
mysqld database_name < file.sql
في معظم الحالات ، ستحتاج إلى إنشاء قاعدة بيانات للاستيراد إليها. إذا كانت قاعدة البيانات موجودة بالفعل ، فأنت تحتاج أولاً إلى حذفها.
في المثال التالي ، سيقوم الأمر الأول بإنشاء قاعدة بيانات باسم
database_name
ثم سيقوم باستيراد ملف تفريغ
database_name.sql
فيه:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
استعادة قاعدة بيانات MySQL واحدة من تفريغ MySQL كامل
mysql --one-database database_name < all_databases.sql
تصدير واستيراد قاعدة بيانات MySQL في أمر واحد
بدلاً من إنشاء ملف تفريغ من قاعدة بيانات واحدة ثم استيراد النسخة الاحتياطية إلى قاعدة بيانات MySQL أخرى ، يمكنك استخدام الخطوط التالية:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
سيقوم الأمر أعلاه بتوجيه الإخراج إلى عميل mysql على المضيف البعيد ، وسيتم استيراده إلى قاعدة بيانات باسم
remote_database_name
. قبل تشغيل الأمر ، تأكد من وجود قاعدة البيانات بالفعل على الخادم البعيد.
أتمتة النسخ الاحتياطي مع كرون
إن أتمتة عملية نسخ احتياطي لقواعد البيانات بسيطة مثل إنشاء وظيفة cron ما الذي سيتم تشغيل الأمر mysqldump عليه في الوقت المحدد.
لإعداد نسخ احتياطية تلقائية لقاعدة بيانات MySQL باستخدام cronjob ، اتبع الخطوات التالية:
-
قم بإنشاء ملف باسم
.my.cnf
في دليل المستخدم الرئيسي الخاص بك:sudo nano ~/.my.cnf
انسخ والصق النص التالي في ملف.my.cnf.
user = dbuser password = dbpasswd
لا تنسَ استبدال
dbuser
وdbpasswd
قاعدة البيانات وكلمة مرور المستخدم.قم بتقييد أذونات ملف بيانات الاعتماد بحيث يمكن للمستخدم الخاص بك فقط الوصول إليه:
chmod 600 ~/.my.cnf
قم بإنشاء دليل لتخزين النسخ الاحتياطية:
mkdir ~/db_backups
افتح ملف المستخدم crontab:
crontab -e
أضف وظيفة cron التالية التي ستنشئ نسخة احتياطية من اسم قاعدة البيانات
mydb
كل يوم في الثالثة صباحًا:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
لا تنسَ استبدال
username
المستخدم باسم المستخدم الفعلي.
يمكنك أيضًا إنشاء cronjob آخر لحذف أي نسخ احتياطية يزيد عمرها عن 30 يومًا:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
بالطبع ، تحتاج إلى ضبط الأمر وفقًا لموقع النسخ الاحتياطي وأسماء الملفات. لمعرفة المزيد حول الأمر find ، تحقق من كيفية العثور على الملفات في Linux باستخدام دليل Command Line.
استنتاج
يغطي هذا البرنامج التعليمي الأساسيات فقط ، ولكن يجب أن يكون بداية جيدة لأي شخص يريد أن يتعلم كيفية إنشاء واستعادة قواعد بيانات MySQL من سطر الأوامر باستخدام الأداة المساعدة mysqldump.
يمكنك أيضًا التحقق من البرنامج التعليمي حول كيفية إعادة تعيين كلمة مرور جذر MySQL في حال نسيانها.
مسابق مارببكيفية عمل نسخة احتياطية من إعدادات بريد Windows Live
Windows Live Mail Free هي أداة مساعدة سهلة لإجراء نسخ احتياطي واستعادة مخزن البريد الإلكتروني والإعدادات من بريد Windows Live. يوضح هذا البرنامج التعليمي كيفية عمل نسخة احتياطية.
كيفية عمل نسخة احتياطية من بيانات whatsapp إلى أي منصة سحابة
يمكنك النسخ الاحتياطي لبيانات WhatsApp الخاصة بك إلى Google Drive. ولكن ماذا لو كنت تريد ذلك على الخدمات السحابية الأخرى؟ إليك كيف يمكنك تحقيق ذلك.
كيفية عمل نسخة احتياطية لجميع بيانات حسابات google باستخدام google takeout
تعرف على كيفية عمل نسخة احتياطية لجميع بيانات حسابات Google باستخدام Google Takeout.