راهنمای بکاپ و اسنپشات VPS
یک سرور ممکن است به دلیل بهروزرسانی نادرست، اشتباه انسانی، بدافزار یا مشکل سختافزاری از کار بیفتد. یک برنامه خوب، اسنپشات، بکاپ و بازیابی آزمایششده را با هم ترکیب میکند. در Cloud Servers در هوشی مین از ONIE، اسنپشات و بکاپ پشتیبانی میشود و میتوانید برای نگهداری دادهها، Block Storage اضافه کنید.
اسنپشات در مقابل بکاپ
| اسنپشات | بکاپ | |
|---|---|---|
| این چیست؟ | وضعیت ذخیرهشده دیسک در یک لحظه مشخص | یک کپی جداگانه از سرور یا دادههای آن |
| بهترین کاربرد | بازگشت سریع قبل از ارتقا یا تغییر تنظیمات | بازیابی پس از از دست رفتن، آسیب دیدن یا حذف داده |
| نگهداری میشود | نزدیک به سرور اصلی | روی فضای ذخیرهسازی جداگانه |
| سرعت | گرفتن و بازیابی سریع | کندتر و وابسته به حجم داده |
هر دو را استفاده کنید: قبل از تغییرات پرریسک یک اسنپشات بگیرید و برای بقیه موارد، بکاپ زمانبندیشده داشته باشید.
قانون ۳-۲-۱
از دادههای مهم ۳ نسخه نگه دارید، روی ۲ نوع ذخیرهسازی متفاوت، و ۱ نسخه را در جای دیگری قرار دهید. اسنپشات روی همان سرور بهتنهایی کافی نیست.
پشتیبانگیری از فایلها
rsync فقط تغییرات را کپی میکند:
rsync -aH --delete /var/www/ backup@backup-host:/srv/backups/www/restic بکاپهای رمزگذاریشده و بدون تکرار را به چند مقصد ارسال میکند:
sudo apt install -y restic
restic -r sftp:backup@backup-host:/srv/restic init
restic -r sftp:backup@backup-host:/srv/restic backup /var/www /etc
restic -r sftp:backup@backup-host:/srv/restic forget --keep-daily 7 --keep-weekly 4 --pruneپشتیبانگیری از پایگاه داده
به جای کپی کردن فایلهای زنده پایگاه داده، با استفاده از dump از آن نسخه بگیرید:
mysqldump --single-transaction --routines -u root wordpress | gzip > /var/backups/wordpress-$(date +%F).sql.gzبرای PostgreSQL از pg_dump استفاده کنید.
خودکارسازی
بکاپها را با cron یا systemd timer اجرا کنید و یک سیاست نگهداری داشته باشید تا نسخههای قدیمی حذف شوند:
sudo crontab -e
# every day at 02:30
30 2 * * * /usr/local/bin/backup.shآزمایش بازیابی
بکاپی که هرگز بازیابی نشده، فقط یک حدس است. ماهی یک بار، روی یک سرور جایگزین بازیابی کنید و بررسی کنید که سایت و دادهها کار میکنند. مراحل را یادداشت کنید تا هر عضو تیم بتواند آن را انجام دهد.
قبل از تغییرات بزرگ
یک اسنپشات بگیرید، تغییر را اعمال کنید، آن را آزمایش کنید و وقتی مطمئن شدید، اسنپشات را حذف کنید. این روش با راهاندازی امن SSH هماهنگ است و همین عادت هنگام ارتقای سایت WordPress نیز کمک میکند.
پرسشهای متداول
هر چند وقت باید بکاپ بگیرم؟
برای سایتها و پایگاههای دادهای که زیاد تغییر میکنند، روزانه رایج است. اگر از دست دادن یک روز داده آسیب جدی بزند، دفعات بیشتری بکاپ بگیرید.
آیا اسنپشاتها هزینه دارند؟
اسنپشاتها و بکاپها بر اساس فضایی که استفاده میکنند هزینه دارند. نرخهای فعلی را در صفحه قیمتگذاری سرویس ببینید.
بکاپها را کجا نگهداری کنم؟
فقط روی همان سرور نگه ندارید. از مکان یا ارائهدهنده دیگری استفاده کنید تا با یک خرابی، همه نسخهها از بین نروند.