منتديات شبكة شعاع الدعوية للتعليم عن بعد

منتديات شبكة شعاع الدعوية للتعليم عن بعد (https://hwazen.com/vb/index.php)
-   تطوير المنتديات (https://hwazen.com/vb/f287.html)
-   -   كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu (https://hwazen.com/vb/t22191.html)

عطر الجنة 12-29-2021 01:33 AM

كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu
 

MySQL هي عبارة عن أداة إدارة قواعد بيانات شهيرة تستخدم لغة استعلامات SQL للوصول إلى البيانات والتعامل معها، يمكن استخدامها بسهولة لإدارة البيانات ضمن المواقع أو تطبيقات الويب.

عمليات النسخ الاحتياطي مهمة جدًا لأي نوع من البيانات، وهذا مرتبط بشدّة عندما نتحدث عن قواعد البيانات. يمكن نسخ قواعد بيانات MySQL احتياطيا بواسطة عدة طرق سنشرحها .

سنستخدم خادوم Ubuntu 12.04 مع MySQL 5.5 في شرحنا هذا. تأتي معظم توزيعات لينكس بإصداراتٍ حديثة من MySQL ويجب ألّا تواجه صعوبةً في تطبيق نفس المهام بطريقةٍ مشابهة على تلك التوزيعات.

نسخ قاعدة بيانات MySQL باستخدام mysqldump

واحدة من أكثر الطرق شيوعا لعمل النسخ الاحتياطي لقاعدة بيانات MySQL هي استخدام أمرٍ يدعى "mysqldump".



النسخ الاحتياطي
الشكل الأساسي للأمر هو:
كود بلغة HTML:


mysqldump -u username -p database_to_backup > backup_name.sql



الاستعادة


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


كود بلغة HTML:

mysql -u username -p




أنشئ قاعدة بيانات جديدة الآن - والتي ستحوي جميع البيانات الموجودة في نسخة قاعدة البيانات التي قمت بنسخها مسبقًا - ومن ثمَّ، قم بالخروج:


كود بلغة HTML:

CREATE DATABASE database_name; exit


الآن، يمكننا إعادة توجيه ملفّ النسخة إلى قاعدة البيانات الجديدة التي قمنا بإنشائها مسبقًا عبر استخدام الأمر:



كود بلغة HTML:

mysql -u username -p database_name < backup_name.sql




يجب أن يتم استعادة بياناتك الآن إلى قاعدة البيانات الجديدة التي أنشئتها.



نسخ جدول MySQL احتياطيا إلى ملف نصي

يمكنك تصدير البيانات من جدول ما مباشرة إلى ملف نصي عبر استخدام جملة SELECT مع MySQL.

الشكل الأساسي للعملية هو:





كود بلغة HTML:

SELECT * INTO OUTFILE 'table_backup_file' FROM name_of_table;





ستقوم هذه العملية بحفظ بيانات الجدول إلى الملف النصي المطلوب. وسيفشل في حال كان هناك اسم ملف آخر موجود بنفس المسار الذي قررت حفظ الملف إليه.

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

نسخ معلومات MySQL احتياطيا باستخدام automysqlbackup

هناك برنامج أداة يدعى"automysqlbackup"

متوفّر في مستودعات توزيعة أوبونتو الرسمية.

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





كود بلغة HTML:

sudo apt-get install automysqlbackup




وقم بتشغيله عبر الأمر:







كود بلغة HTML:

sudo automysqlbackup







ستجد ملف الإعدادات الرئيسي لـautomysqlbackup في المسار "etc/default/automysqlbackup/". افتحه بصلاحيات الجذر:


كود بلغة HTML:

sudo nano /etc/default/automysqlbackup


يمكنك أن ترى أن هذا الملف يقوم افتراضيا بتعيين العديد من المتغيرات باستخدام ملف MySQL الموجود في المسار "etc/mysql/debian.cnf/".




وهو يقوم بقراءة اسم المستخدم وكلمة المرور وقواعد البيانات التي يجب نسخها احتياطيًا من هذا الملفّ.



المسار الافتراضي للنُسَخ الاحتياطية هو “/var/lib/automysqlbackup”.



ابحث عن هذا المسار لترى بنية النُسَخ الاحتياطية:


كود بلغة HTML:

ls /var/lib/automysqlbackup daily monthly weekly



تقوم Ubuntu بتثبيت سكربت cron مع هذا البرنامج لتشغيله كل يوم. سيقوم تلقائيًا بتنظيم الملفات إلى مسارها الصحيح.




كيفية النسخ الاحتياطي عند استخدام النسخ المتماثل


من الممكن استخدام النسخ المتماثل (Replication) في MySQL لعمل نسخة احتياطية عن البيانات مع الطرق المذكورة أعلاه كذلك.
النسخ المتماثل هو عملية تمرير البيانات من خادومٍ إلى آخر (من رئيسي إلى فرعي) أو تمرير التغييرات من خادومٍ رئيسي إلى خادومٍ رئيسيٍ آخر.
صحيح أن النسخ المتماثل يسمح بتمرير البيانات وحفظها، إلا أنه يعاني عندما تحاول حفظ البيانات من نقطة معينة من الزمان. هذا بسبب أن عملية النسخ المتماثل تحصل بشكل مستمر لتنسخ التغييرات الجديدة التي يتم إجراؤها على النظام.
لتفادي هذه المشكلة يمكننا:

تعطيل النسخ المتماثل مؤقتًا.
جعل آلة النسخ الاحتياطي قابلة للقراءة فقط مؤقتًا.


تعطيل النسخ المتماثل مؤقتا
يمكنك تعطيل النسخ المتماثل للخادوم الفرعي مؤقتًا عبر تنفيذ:



كود بلغة HTML:

mysqladmin -u user_name -p stop-slave

خيار آخر يمكنك استخدامه ولا يقوم بتعطيل عملية النسخ المتماثل بالكامل، بل يضعها بوضع الإيقاف المؤقت، هو تطبيق:
كود بلغة HTML:

mysql -u user_name -p -e 'STOP SLAVE SQL_THREAD;

بعد إيقاف عملية النسخ المتماثل مؤقتًا، يمكنك القيام بعملية النسخ الاحتياطي باستخدام أحد الطرق المذكورة مسبقًا. يسمح لك هذا بإبقاء قاعدة البيانات الرئيسية نشطة بينما يتم نسخ قاعدة البيانات الفرعية.


عندما يكتمل هذا، قم بإعادة تفعيل النسخ المتماثل عبر:



كود بلغة HTML:

mysqladmin -u user_name -p start-slave




جعل آلة النسخ الاحتياطي قابلة للقراءة فقط مؤقتا



يمكنك أيضًا أن تحافظ على البيانات على الخادوم عبر جعلها قابلة للقراءة فقط.
يمكنك تنفيذ هذه الخطوات سواء كان على الخادوم الرئيسي (Master) أو الفرعي (Slave).
أولا، قم بالولوج إلى MySQL بالصلاحيات اللازمة للقيام بذلك
:
كود بلغة HTML:

mysql -u root -p

الآن، يمكننا كتابة جميع التغييرات المحفوظة إلى القرص وجعل النظام قابلًا للقراءة فقط (read-only) عبر كتابة:

كود بلغة HTML:

FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;


الآن، قم بعمل النسخ الاحتياطي باستخدام mysqludump.
بمجرّد اكتمال عملية النسخ الاحتياطي، قم بإعادة النظام إلى وضعه الأصلي عبر كتابة

كود بلغة HTML:

SET GLOBAL read_only = OFF; UNLOCK TABLES;


ملاحظة عن الطرق التي لم تعد مستحسنة

mysqlhotcopy

تتضمن MySQL سكربتا مكتوبا بلغة Perl لنسخ قواعد البيانات احتياطيا بسرعة ويدعى "mysqlhotcopy". يمكن أن يتم استخدام هذه الأداة للقيام بنسخ قاعدة البيانات بسرعة على الآلة المحلّية، ولكنها تمتلك بعض التقييدات التي تجعلنا نتجنبها.


السبب الأهم الذي جعلنا لا نستخدمها هو أنها فقط تعمل مع البيانات التي تم تخزينها باستخدام محركات التخزين "MyISAM" و"Stroage" فقط .


معظم المستخدمين لا يقومون بتغيير المحرك الافتراضي للتخزين، وبدءً من الإصدار 5.5 من MySQL فإن المحرك الافتراضي هو "InnoDB".



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


مشكلة أخرى مع هذا السكربت هو أنه يمكن تشغيله فقط على الآلة التي يتم تخزين قاعدة البيانات عليها. يمنعك هذا من القيام بعمليات النسخ الاحتياطي باستخدام آلة بعيدة (remote machine)،



والذي يمكنه أن يكون مشكلة حقيقية في بعض الأحيان.



نسخ ملفات الجداول

طريقة أخرى تقتَرح بعض الأحيان هي القيام بنسخ الجداول التي تقوم MySQL بوضع البيانات فيها ببساطة ونقلها إلى مكان آخر.


تعاني هذه الطريقة من نفس مشكلة "mysqlhotcopy".


قد يكون منطقيًا استخدام هذه الطريقة مع المحرّكات التي تقوم بتخزين بياناتها على شكل ملفات، إلا أن InnoDB (وهو المحرك الافتراضي الجديد لـMySQL) لا يمكن نسخ قواعد البيانات الخاصة به بهذه الطريقة.


!!!الخاتمة!!!


هناك العديد من الطرق لإجراء عمليات النسخ الاحتياطي لقواعد بيانات MySQL، جميعها يمتلك نقاط قوة وضعف، ولكن بعضها أسهل للمستخدم وأفضل للتطبيق من غيرها.
ستعتمد طريقة عملية النسخ الاحتياطي التي ستستخدمها بشكل رئيسي على احتياجاتك ومواردك، بالإضافة إلى بيئة العمل الخاصة بك. مهما كانت الطريقة التي تعتمد عليها، كن متأكدا من التحقق من النُسَخ الاحتياطية الخاصّة بك وحاول استرجاعها للتأكد من الأمر، لتكون متأكدا من أنها لا تحوي أي مشاكل.

بريق الافق 12-29-2021 03:20 AM

Re: كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu
 


..
==--__--== ..
وفقك الله وسدد خطاك
لك
شكري وتقديري والاحترام
.. دمت بخير وراحة بال ..



lpm35


الأربعاء 25 جمادى الأولى 1443
==--__--==

عطر الجنة 12-29-2021 11:59 PM

رد: كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu
 
شكرا لك,,
ياأنيق الحرف
وجميل الحضور

يسعد أوقاتك بكل خير

إسمهان الجادوي 01-01-2022 05:49 PM

رد: كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu
 
يوووو هذه القاعدة لها حكايات معي زمن الدراسة
موضوع مهم و مفيد خاصة لي
سلمت يداك يارب عزيزتي
جزاك الله خيرا و بارك الله فيك

عطر الجنة 01-04-2022 05:59 PM

رد: كيف تقوم بالنسخ الاحتياطي لقواعد بيانات MySQL على Ubuntu
 


من الجميل أن أحدهم يذكر الآخر
بموقف أو معلومة علم
وتذكر شذى الماضي

بـ الذكريات الجميييلة

والأجمل هو حضورك وتعقيبك الباهي برشااا

لا حرمنا الله طلتك في شعاع

تحياتي المحبة


الساعة الآن 12:44 PM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.1 TranZ By Almuhajir
new notificatio by 9adq_ala7sas
HêĽм √ 3.1 BY: ! ωαнαм ! © 2010
يرحل الجميع ويبقي شعاع بيت العلم والحب(ملك الكلمة)