الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
النسخ الاحتياطي واستعادة قواعد بيانات MySQL وPostgreSQL باستخدام mysqldump وpg_dump. النسخ الاحتياطي التلقائي مع cron وإجراءات الاستعادة وأفضل الممارسات.
يُعدّ النسخ الاحتياطي لقواعد البيانات من أهم مهام إدارة الخوادم. النسخ الاحتياطية المنتظمة ضرورية للتعافي من أعطال الأجهزة أو الأخطاء البشرية أو الهجمات الإلكترونية. يغطي هذا الدليل إجراءات النسخ الاحتياطي والاستعادة لكل من MySQL وPostgreSQL.
بدون نسخ احتياطية، فقدان البيانات لا رجعة فيه. اتبع قاعدة 3-2-1: 3 نسخ، نوعان مختلفان من الوسائط، موقع واحد خارجي.
# نسخ احتياطي لقاعدة بيانات واحدة
mysqldump -u root -p اسم_قاعدة_البيانات > backup.sql
# مع كلمة المرور (للسكريبتات)
mysqldump -u root -pكلمة_المرور اسم_قاعدة_البيانات > backup.sql
# نسخ احتياطي لجميع قواعد البيانات
mysqldump -u root -p --all-databases > all_databases.sql
# نسخ احتياطي لجداول محددة
mysqldump -u root -p اسم_قاعدة_البيانات جدول1 جدول2 > tables.sql
# نسخ احتياطي مضغوط
mysqldump -u root -p اسم_قاعدة_البيانات | gzip > backup_$(date +%Y%m%d).sql.gz
# نسخ احتياطي متسق لقواعد البيانات الكبيرة
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
اسم_قاعدة_البيانات > full_backup.sql
# الهيكل فقط (بدون بيانات)
mysqldump -u root -p --no-data اسم_قاعدة_البيانات > schema.sql
# البيانات فقط (بدون هيكل)
mysqldump -u root -p --no-create-info اسم_قاعدة_البيانات > data.sql
# نسخ احتياطي من خادم بعيد
mysqldump -h remote_server -u user -p اسم_قاعدة_البيانات > remote_backup.sql
# الاستعادة من ملف SQL
mysql -u root -p اسم_قاعدة_البيانات < backup.sql
# الاستعادة من نسخة احتياطية مضغوطة
gunzip -c backup.sql.gz | mysql -u root -p اسم_قاعدة_البيانات
# إنشاء قاعدة بيانات جديدة والاستعادة
mysql -u root -p -e "CREATE DATABASE new_database;"
mysql -u root -p new_database < backup.sql
# استعادة جميع قواعد البيانات
mysql -u root -p < all_databases.sql
# إنشاء ~/.my.cnf
nano ~/.my.cnf
[client]
user=root
password=كلمة_المرور
host=localhost
# تقييد أذونات الملف
chmod 600 ~/.my.cnf
# الآن يمكن الاستخدام بدون إدخال كلمة المرور
mysqldump اسم_قاعدة_البيانات > backup.sql
# نسخ احتياطي لقاعدة بيانات واحدة
pg_dump -U postgres اسم_قاعدة_البيانات > backup.sql
# تنسيق مخصص مضغوط (موصى به)
pg_dump -U postgres -Fc اسم_قاعدة_البيانات > backup.dump
# تنسيق الدليل (للاستعادة المتوازية)
pg_dump -U postgres -Fd اسم_قاعدة_البيانات -f backup_dir/
# نسخ احتياطي لجميع قواعد البيانات (بما فيها الأدوار)
pg_dumpall -U postgres > all_pg.sql
# نسخ احتياطي مضغوط
pg_dump -U postgres اسم_قاعدة_البيانات | gzip > backup_$(date +%Y%m%d).sql.gz
# الاستعادة من تنسيق SQL
psql -U postgres اسم_قاعدة_البيانات < backup.sql
# استعادة التنسيق المخصص (.dump)
pg_restore -U postgres -d اسم_قاعدة_البيانات backup.dump
# الاستعادة المتوازية (أسرع)
pg_restore -U postgres -d اسم_قاعدة_البيانات -j 4 backup.dump
# إنشاء قاعدة بيانات جديدة والاستعادة
psql -U postgres -c "CREATE DATABASE new_database;"
pg_restore -U postgres -d new_database backup.dump
nano ~/.pgpass
# التنسيق: host:port:database:user:password
localhost:5432:*:postgres:كلمة_المرور
chmod 600 ~/.pgpass
#!/bin/bash
# الإعداد
DB_USER="root"
DB_PASS="كلمة_المرور"
DB_NAME="اسم_قاعدة_البيانات"
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
# إنشاء مجلد النسخ الاحتياطي
mkdir -p $BACKUP_DIR
# أخذ النسخة الاحتياطية
mysqldump -u $DB_USER -p$DB_PASS \
--single-transaction \
--routines \
--triggers \
$DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz
# حذف النسخ الاحتياطية القديمة
find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
echo "اكتمل النسخ الاحتياطي: ${DB_NAME}_${DATE}.sql.gz"
# جعل السكريبت قابلاً للتنفيذ
chmod +x /root/scripts/mysql-backup.sh
# إضافة إلى crontab (كل ليلة الساعة 02:00)
crontab -e
0 2 * * * /root/scripts/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1
# النسخ إلى خادم بعيد باستخدام rsync
rsync -avz /var/backups/mysql/ user@remote-server:/backup/mysql/
# إرسال ملف واحد باستخدام scp
scp /var/backups/mysql/backup.sql.gz user@remote-server:/backup/
# الإرسال إلى التخزين السحابي باستخدام rclone (S3، Google Drive، إلخ)
rclone copy /var/backups/mysql/ remote:bucket-name/mysql/
# التحقق من حجم ملف النسخة الاحتياطية
ls -lh /var/backups/mysql/
# التحقق بالاستعادة إلى قاعدة بيانات اختبار
mysql -u root -p -e "CREATE DATABASE test_restore;"
mysql -u root -p test_restore < backup.sql
mysql -u root -p -e "SHOW TABLES;" test_restore
mysql -u root -p -e "DROP DATABASE test_restore;"
اختبر نسخك الاحتياطية بانتظام. النسخة الاحتياطية التي لا يمكنك استعادتها عديمة الفائدة. قم بإجراء استعادة اختبارية مرة واحدة على الأقل شهرياً.
النسخ الاحتياطي المنتظم لقواعد البيانات هو أهم دفاع ضد فقدان البيانات. من خلال إعداد سكريبتات النسخ الاحتياطي التلقائي لـ MySQL وPostgreSQL وتخزين النسخ الاحتياطية خارجياً، يمكنك الحفاظ على أمان بياناتك على خوادم REXE.
mysqldump هو أداة النسخ الاحتياطي لـ MySQL وMariaDB. pg_dump خاص بـ PostgreSQL. كلاهما ينتج مخرجات SQL، لكن pg_dump يدعم أيضاً تنسيق ثنائي مخصص (-Fc) وتنسيق الدليل (-Fd). التنسيق الثنائي يتيح استعادة أسرع ومعالجة متوازية.
لـ MySQL، استخدم --single-transaction للنسخ الاحتياطي المتسق لجداول InnoDB. لـ PostgreSQL، استخدم -Fc (تنسيق مخصص) وpg_restore -j للاستعادة المتوازية. لقواعد البيانات الكبيرة جداً، فكر في Percona XtraBackup (MySQL) أو pg_basebackup (PostgreSQL).
يعتمد على الأهمية: كل ساعة للتجارة الإلكترونية أو البيانات المالية؛ يومياً للمدونات أو مواقع المحتوى. حدد بناءً على RPO (هدف نقطة الاسترداد). التوصية العامة: نسخ احتياطي كامل يومي + نسخ احتياطي تدريجي كل ساعة.
اتبع قاعدة 3-2-1: 3 نسخ، نوعان مختلفان من الوسائط، موقع واحد خارجي. القرص المحلي + خادم بعيد + تخزين سحابي (S3، Backblaze B2) هو المزيج المثالي.
مع علامة --single-transaction في MySQL، لا تُقفل جداول InnoDB. قد تحتاج جداول MyISAM إلى قفل قصير. يستخدم pg_dump في PostgreSQL MVCC ولا يقفل الجداول. تجنب النسخ الاحتياطي في أوقات الذروة.
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.