تا وقتی همه چیز درست کار میکند، بکاپ یک کار اضافه به نظر میرسد؛ اما یک اشتباه، حمله یا خرابی سختافزار کافی است تا ماهها کار از دست برود. در این مقاله توضیح میدهیم بکاپ سرور چیست، چه انواعی دارد، یک بکاپ قابل اعتماد چه هفت ویژگیای دارد و چطور برای سرور، سایت یا هاست خود یک برنامه بکاپ درست طراحی کنید.
فهرست مطالب
بکاپ سرور چیست؟
بکاپ یعنی تهیه نسخهای مستقل از دادهها، دیتابیسها، فایلها و تنظیمات سرور در محلی دیگر، بهطوری که در صورت از دست رفتن نسخه اصلی، بتوان سرویس را به وضعیت سالم برگرداند. کلمه کلیدی «بازیابیپذیر» است: بکاپی که قابل بازیابی نباشد یا در کنار همان داده اصلی نگهداری شود، در لحظه بحران ارزشی ندارد.
بکاپ از شما در برابر چه چیزی محافظت میکند؟
- خطای انسانی: حذف اشتباهی فایل، جدول دیتابیس یا اجرای دستور اشتباه. رایجترین دلیل نیاز به بکاپ.
- باجافزار و نفوذ: رمزگذاری یا حذف دادهها توسط مهاجم.
- خرابی سختافزار: خرابی دیسک، کنترلر یا کل سرور.
- بهروزرسانی ناموفق: آپدیت افزونه، قالب یا نرمافزاری که سایت را از کار میاندازد.
- حوادث دیتاسنتر: مشکلات برق، آتشسوزی یا قطعی طولانی.
RAID و Snapshot فقط بخشی از این خطرها را پوشش میدهند؛ RAID در برابر خرابی دیسک و Snapshot برای بازگشت سریع بعد از تغییرات. هیچکدام جای بکاپ مستقل را نمیگیرند. توضیح کامل در تفاوت Snapshot و Backup.
از چه چیزهایی باید بکاپ گرفت؟
- دیتابیسها: معمولاً باارزشترین و پرتغییرترین داده.
- فایلهای سایت و اپلیکیشن: کد، فایلهای آپلودشده کاربران و رسانهها.
- تنظیمات: پیکربندی وبسرور، فایلهای .env، کرونجابها، تنظیمات فایروال.
- ایمیلها: اگر سرور ایمیل روی همان سرور است.
- کلیدها و گواهیها: کلیدهای رمزنگاری برنامهها، که بدون آنها برخی دادهها قابل استفاده نیستند.
انواع بکاپ
بر اساس روش
| نوع | چه چیزی ذخیره میشود | مزیت | عیب |
|---|---|---|---|
| کامل (Full) | همه دادهها | بازیابی ساده | زمان و فضای زیاد |
| افزایشی (Incremental) | تغییرات از آخرین بکاپ هر نوع | سریع و کمحجم | بازیابی نیازمند زنجیره کامل |
| تفاضلی (Differential) | تغییرات از آخرین بکاپ کامل | بازیابی با دو نسخه | حجم بهتدریج زیاد میشود |
ابزارهای جدید مثل restic و Borg با روش Deduplication، هر نسخه را مثل بکاپ کامل در دسترس قرار میدهند اما فقط بخشهای تغییرکرده را ذخیره میکنند.
بر اساس سطح
- بکاپ فایلمحور: فایلها و دیتابیسها؛ امکان بازیابی انتخابی.
- بکاپ تصویری (Image): کل دیسک یا ماشین مجازی؛ بازیابی سریع کل سرور.
- بکاپ منطقی دیتابیس: خروجی SQL با
mysqldumpیاpg_dump؛ سازگار و قابل انتقال.
۷ ویژگی یک بکاپ قابل اعتماد
- خودکار: بکاپ دستی دیر یا زود فراموش میشود.
- خارج از سرور اصلی: روی سرور، فضای ذخیرهسازی یا دیتاسنتر دیگر.
- چندنسخهای: نگهداری نسخههای روزانه، هفتگی و ماهانه تا بتوانید به قبل از یک مشکل دیرکشفشده برگردید.
- ایمن در برابر حذف: با دسترسی جداگانه، و در حالت ایدهآل غیرقابل تغییر (Immutable)، تا مهاجمی که به سرور نفوذ کرده نتواند بکاپها را هم پاک کند.
- رمزنگاریشده: بکاپ شامل همه دادههای حساس است و نباید بدون رمزنگاری جابهجا یا نگهداری شود.
- سازگار: دیتابیس در لحظه بکاپ در وضعیت سالم ثبت شود؛ با ابزارهای مخصوص دیتابیس، نه کپی فایلهای در حال تغییر.
- تستشده: بازیابی آزمایشی منظم؛ تنها راه اطمینان از سالم بودن بکاپ و آگاهی از زمان واقعی بازیابی.
قانون معروف ۳-۲-۱ خلاصه همین اصول است: سه نسخه از داده، روی دو نوع رسانه، و یک نسخه خارج از محل اصلی.
ابزارهای رایج
- دیتابیس:
mysqldumpوmariadb-dump،pg_dump؛ برای دیتابیسهای بزرگ ابزارهای بکاپ فیزیکی مثل Percona XtraBackup یا pgBackRest. - فایلها: restic، BorgBackup و rsync.
- هاست: ابزارهای بکاپ cPanel و JetBackup.
- ماشین مجازی: ابزارهای بکاپ سطح هایپروایزر.
یک نمونه ساده برای بکاپ روزانه دیتابیس MySQL با cron:
0 3 * * * mysqldump --single-transaction --routines mydb | gzip > /backup/mydb-$(date +\%F).sql.gz
گزینه --single-transaction برای جدولهای InnoDB، بکاپ سازگار بدون قفل کردن جدولها تهیه میکند. فایلها را سپس با ابزاری مثل restic به مقصد خارج از سرور منتقل کنید.
بکاپ در هاست اشتراکی و VPS
- هاست اشتراکی: معمولاً ارائهدهنده بکاپ خودکار دارد. بپرسید چند نسخه و تا چه مدت نگهداری میشود و آیا خودتان میتوانید بازیابی کنید. علاوه بر آن، هر از گاهی از بخش بکاپ کنترلپنل یک نسخه کامل دانلود کنید. راهنما در آموزش cPanel.
- VPS: مسئولیت بکاپ معمولاً با شماست. Snapshot پنل را برای قبل از تغییرات و یک بکاپ مستقل خودکار برای محافظت روزانه استفاده کنید.
چرا Snapshot بهتنهایی کافی نیست را با شش سناریوی واقعی در چرا Snapshot جای Backup را نمیگیرد توضیح دادهایم.
سوالات متداول
بکاپ هر چند وقت یک بار باید گرفته شود؟
به این بستگی دارد که از دست دادن چند ساعت داده برای شما چقدر هزینه دارد. برای بیشتر سایتها روزانه کافی است؛ فروشگاهها و دیتابیسهای پرتراکنش به بکاپ چند بار در روز یا روشهای پیوسته نیاز دارند.
بکاپ را چه مدت نگه داریم؟
یک الگوی رایج: ۷ نسخه روزانه، ۴ نسخه هفتگی و ۶ تا ۱۲ نسخه ماهانه. الزامات قانونی کسبوکار شما ممکن است مدت بیشتری را لازم کند.
فرق بکاپ و Snapshot چیست؟
Snapshot تصویر لحظهای و موقت روی همان زیرساخت است؛ بکاپ کپی مستقل در محل دیگر. Snapshot برای بازگشت سریع، بکاپ برای محافظت واقعی.
آیا بکاپ هاست کافی است؟
بکاپ ارائهدهنده بسیار مفید است، اما بهتر است یک نسخه هم خودتان خارج از هاست نگه دارید تا به یک ارائهدهنده وابسته نباشید.
طراحی و پیادهسازی برنامه بکاپ
اگر میخواهید بکاپ سرورهای شما خودکار، خارج از سایت و تستشده باشد، از خدمات مدیریت و پشتیبانی سرور تراست هاست کمک بگیرید. راهنمای CISA درباره محافظت از دادهها هم منبع مفیدی است.