نسخ احتياطية ساخنة مع Percona XtraBackup على تطبيق WordPress بنقرة واحدة

جدول المحتويات

  • المقدمة
  • المتطلبات الأساسية
  • الخطوة 1: إنشاء مستخدم نظام غير جذري
  • الخطوة 2: تحقق من محرك التخزين
  • الخطوة 3: إنشاء مستخدم قاعدة بيانات للنسخ الاحتياطي
  • الخطوة 4: تثبيت Percona XtraBackup
  • الخطوة 5: إنشاء أدلة تخزين النسخ الاحتياطي
  • الخطوة 6: إنشاء أول نسخة احتياطية كاملة
  • الخطوة 7: إنشاء النسخ الاحتياطية الإضافية التالية
  • الخطوة 8: إعداد ملفات النسخ الاحتياطي لاستعادة قاعدة البيانات
  • الخطوة 9: استعادة قاعدة البيانات
  • خطوات أخرى

المقدمة

Percona XtraBackup هو برنامج مجاني قائم على MySQL يستخدم لعمل نسخ احتياطية ساخنة. كما أنها مفتوحة المصدر. مع Percona XtraBackup ، يمكنك عمل نسخ احتياطية ساخنة لتشغيل قواعد بيانات MySQL أو MariaDB أو Percona Server دون إيقاف خدمة قاعدة البيانات أو جعلها للقراءة فقط. هذه ميزة مهمة للأعمال للعديد من الأعمال التجارية عبر الإنترنت.

بالنسبة لقواعد البيانات التي تستخدم محركات تخزين InnoDB و XtraDB و HailDB ، يمكن لـ Percona XtraBackup إجراء عمليات نسخ احتياطي غير قابلة للحظر. بالنسبة لقواعد البيانات التي تستخدم محركات التخزين MyISAM و Merge و Archive ، يمكن لـ Percona XtraBackup أيضًا إجراء عمليات النسخ الاحتياطي عن طريق الإيقاف المؤقت لفترة قصيرة لعمليات الكتابة في نهاية إجراء النسخ الاحتياطي.

في هذه المقالة ، سأوضح لك كيفية تثبيت واستخدام Percona XtraBackup لإجراء عمليات نسخ احتياطي كاملة ومتزايدة على خادم Vultr استنادًا إلى تطبيق WordPress بنقرة واحدة. سنقوم بعمل نسخة احتياطية كاملة واثنين من النسخ الاحتياطية الإضافية ، ثم نقوم باستعادة قاعدة البيانات إلى حالة كل من النسخ الاحتياطية الثلاثة وفقًا لذلك.

المتطلبات الأساسية

أفترض أنك قمت بنشر مثيل خادم WordPress Vultr بنقرة واحدة من البداية وقمت بتسجيل الدخول كجذر ، باستخدام SSH.

الخطوة 1: إنشاء مستخدم نظام غير جذري

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

1) إنشاء مستخدم جديد. استبدل sysuserباسم المستخدم الخاص بك.

useradd sysuser

2) قم بتعيين كلمة المرور للمستخدم الجديد. استبدل sysuserباسم المستخدم الخاص بك.

passwd sysuser

3) منح أذونات الجذر للمستخدم الجديد الخاص بك.

visudo

ابحث عن الفقرة أدناه.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

أضف صفًا أسفل هذه الفقرة مباشرةً ، واستبدلها sysuserباسم المستخدم الخاص بك.

sysuser     ALL=(ALL)     ALL

احفظ واخرج.

:wq

4) التبديل إلى حساب المستخدم الجديد الخاص بك.

logout

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

الخطوة 2: تحقق من محرك التخزين

بشكل افتراضي ، يتم حفظ تسجيل الدخول الجذر MySQL على VPS في /root/.my.cnf. اعرض كلمة المرور في جهازك مع الأمر التالي.

sudo cat /root/.my.cnf

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

mysql -u root -p

في هيكل MySQL ، قم بتشغيل ما يلي.

SHOW DATABASES;

سيتم عرض جميع قواعد بيانات MySQL على الشاشة. قاعدة البيانات المسماة مثل wp5273512قاعدة بيانات WordPress التي نريد نسخها احتياطيًا. في الأمر التالي ، استبدل بآخر wp5273512خاص بك:

USE wp5273512;

تحقق من محرك التخزين لكل جدول:

SHOW TABLE STATUS\G

ستجد أن جميع الجداول في قاعدة بيانات WordPress MySQL الخاصة بك تستخدم محرك تخزين InnoDB وهو مثالي لإجراء نسخ احتياطي ساخن مع Percona XtraBackup.

بالنسبة لأي قواعد بيانات MySQL أخرى تستخدم محرك تخزين MyISAM ، لا يزال بإمكاننا نسخها احتياطيًا باستخدام Percona XtraBackup عن طريق إيقاف الكتابة مؤقتًا لفترة وجيزة.

الخطوة 3: إنشاء مستخدم قاعدة بيانات للنسخ الاحتياطي

لا تزال في غلاف MySQL ، استخدم الأوامر التالية لإنشاء مستخدم قاعدة بيانات مخصص للنسخ الاحتياطي. تذكر استبدال اسم المستخدم وكلمة xbuserالمرور لقاعدة البيانات xbpasswdباسمك:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

تعتبر الامتيازات الممنوحة أعلاه ضرورية لوظائف Percona XtraBackup الكاملة. يمكنك إزالة بعضها للحصول على وظائف أقل وأمان أفضل. لمزيد من التفاصيل ، راجع موقع الويب الرسمي Percona XtraBackup .

الخطوة 4: تثبيت Percona XtraBackup

يمكنك تثبيت Percona XtraBackup من مستودع Percona RPM بسهولة تامة:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

الخطوة 5: إنشاء أدلة تخزين النسخ الاحتياطي

أولاً ، تحتاج إلى إضافة مستخدم sysuserإلى mysqlالمجموعة. استبدل sysuserباسم المستخدم الخاص بك.

sudo gpasswd -a sysuser mysql

إنشاء دليل لتخزين النسخ الاحتياطية الكاملة.

sudo mkdir -p /dbbackup/full/

قم بإنشاء دليل آخر لتخزين النسخ الاحتياطية الإضافية.

sudo mkdir -p /dbbackup/inc/

قم بتغيير مالك هذه الأدلة إلى المستخدم sysuserوالمجموعة sysuser.

sudo chown -R sysuser:sysuser /dbbackup

سجّل الخروج لتفعيل هذه التغييرات.

logout

ثم قم بتسجيل الدخول sysuserمرة أخرى.

الخطوة 6: إنشاء أول نسخة احتياطية كاملة

يتكون XtraBackup بشكل أساسي من برنامج XtraBackup والبرنامج innobackupexالنصي perl. عادة ، يمكنك استخدام innobackupexالبرنامج النصي بيرل لأداء إجراءات التشغيل المختلفة للراحة.

أدخل الأمر التالي لإنشاء أول نسخة احتياطية كاملة. تذكر استبدال اسم xbuserمستخدم قاعدة البيانات وكلمة مرور مستخدم قاعدة البيانات xbpasswdودليل النسخ الاحتياطي الكامل /dbbackup/full/باسمك.

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

مع تنفيذ هذا الأمر بشكل صحيح ، سترى رسالة التأكيد "innobackupex: مكتمل موافق!" في السطر الأخير من الإخراج.

سيتم تخزين جميع الملفات التي تم إنشاؤها حديثًا لهذه النسخة الاحتياطية الكاملة في دليل مختوم بالوقت تحت /dbbackup/full/. على سبيل المثال ، /dbbackup/full/2015-05-22_05-45-54.

الخطوة 7: إنشاء النسخ الاحتياطية الإضافية التالية

أدخل الأمر التالي لإنشاء النسخة الاحتياطية التزايدية الأولى. استبدل المتغيرات في الأمر وفقًا لذلك.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

مرة أخرى ، سترى "innobackupex: مكتمل حسنًا!" في نهاية الإخراج عند تنفيذ الأمر بنجاح. سيتم تخزين ملفات النسخ الاحتياطي في دليل ختم الوقت تحت /dbbackup/inc/.

أدخل الأمر التالي لإنشاء النسخة الاحتياطية التزايدية الثانية. استبدل المتغيرات في الأمر وفقًا لذلك.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

عند النجاح ، سترى "innobackupex: مكتمل حسنًا!" الرسالة مرة أخرى. تحقق من /dbbackup/inc/المجلد مرة أخرى لرؤية ملفات النسخ الاحتياطي.

الخطوة 8: إعداد ملفات النسخ الاحتياطي لاستعادة قاعدة البيانات

يجب تحضير كافة ملفات النسخ الاحتياطي لقاعدة البيانات قبل استخدامها لاستعادة قاعدة البيانات.

ملاحظة : قبل تنفيذ إجراءات التحضير والاستعادة ، من الأفضل الاحتفاظ بنسخة من دليل النسخ الاحتياطي بالكامل (مثل /dbbackup/) في مكان آخر في حالة حدوث أي تلف في النسخ الاحتياطي للملفات عن طريق الخطأ.

يوجد في كل دليل نسخ احتياطي ملف مسمى xtrabackup_checkpointsيحتوي على نوع النسخ الاحتياطي وأرقام تسلسل سجل البداية والنهاية ( from_lsnو to_lsn). يمكنك استخدام هذه الأرقام لتوضيح استراتيجية استعادة قاعدة البيانات الخاصة بك. انظر إلى الأمثلة أدناه.

في xtrabackup_checkpointsملف النسخة الاحتياطية الكاملة الأولى ، لدي:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

في xtrabackup_checkpointsملف النسخة الاحتياطية الإضافية الأولى ، لدي:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

في xtrabackup_checkpointsملف النسخة الاحتياطية الإضافية الثانية ، لدي:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

باختصار ، يجب معالجة كل نسخة احتياطية بترتيب متزايد من lsn. إذا كان تسلسل lsn غير مكتمل أو مضطرب ، فقد تفقد البيانات.

ملاحظة : تتضمن الأوامر التالية ثلاثة أدلة ، استبدلها بأدلة خاصة بك.

لاستعادة قاعدة البيانات إلى حالة أول نسخة احتياطية كاملة ، تحتاج إلى إعداد ملفات النسخ الاحتياطي باستخدام الأمر التالي:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

لاستعادة قاعدة البيانات إلى حالة أول نسخة احتياطية تدريجية ، تحتاج إلى إعداد ملفات النسخ الاحتياطي باستخدام الأوامر التالية:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

لاستعادة قاعدة البيانات إلى حالة النسخة الاحتياطية التزايدية الثانية ، تحتاج إلى إعداد ملفات النسخ الاحتياطي باستخدام الأوامر التالية:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

ملاحظات :

بالنسبة للنسخ الاحتياطية الإضافية ، يجب عليك استخدام --redo-onlyالخيار على جميع النسخ الاحتياطية الإضافية ما عدا آخر نسخ احتياطي. ومع ذلك ، فإن استخدام هذا الخيار في النسخة الاحتياطية التزايدية الأخيرة لا يزال غير ضار لاتساق البيانات الخاصة بك - سوف يتسبب فقط في بعض التأخير بسبب التراجع في قاعدة البيانات.

الأمر الأخير لكل سيناريو تزايدي اختياري ولكنه موصى به ، لأنه سيسرع عملية الاستعادة.

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

الخطوة 9: استعادة قاعدة البيانات

قبل أن تتمكن من استعادة قاعدة البيانات الخاصة بك ، تحتاج إلى إيقاف خدمة قاعدة البيانات.

sudo service mysqld stop

تحتاج أيضًا إلى إفراغ دليل قاعدة البيانات. يمكنك نقل ملفات قاعدة البيانات الحالية إلى مكان آخر للاحتياط.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

استعادة قاعدة البيانات الخاصة بك مع ملفات "النسخ الاحتياطي الكامل" المعدة.

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

نظرًا لأن إجراء الاستعادة سوف يعدل مالك دليل قاعدة البيانات ، فأنت بحاجة إلى تغييره مرة أخرى mysql:mysqlلتشغيله.

sudo chown -R mysql:mysql /var/lib/mysql

أعد تشغيل خدمة قاعدة البيانات.

sudo service mysqld start

هذا هو. في هذه المرحلة ، يمكنك زيارة موقع WordPress الخاص بك للتحقق من نجاح عملية الاستعادة.



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد