نسخه پشتیبان زمانی ارزشمند است که در لحظه بحران واقعاً قابل بازیابی باشد. فایل ZIP قدیمی روی همان هاست، بکاپی که دیتابیس را ندارد یا نسخهای که هرگز آزمایش نشده، امنیت اطلاعات را تضمین نمیکند. بکاپ گیری وردپرس باید بر اساس میزان تغییر سایت، اهمیت دادهها و زمان قابلقبول توقف طراحی شود؛ نه فقط با نصب یک افزونه و فعالکردن گزینه روزانه.
در این راهنما یاد میگیرید چه چیزهایی باید پشتیبانگیری شوند، بکاپ کامل و افزایشی چه تفاوتی دارند، نسخهها کجا نگهداری شوند و چگونه بدون خطر، بازیابی را آزمایش کنید.
بکاپ وردپرس دقیقاً شامل چه بخشهایی است؟
یک سایت وردپرسی از دو جزء اصلی تشکیل میشود: فایلها و دیتابیس. فایلها شامل هسته وردپرس، قالبها، افزونهها، تصاویر و فایلهای آپلودشده هستند. دیتابیس نوشتهها، برگهها، کاربران، سفارشها، تنظیمات، منوها و بسیاری از دادههای افزونهها را نگهداری میکند. داشتن فقط یکی از این دو معمولاً برای بازسازی کامل سایت کافی نیست.
- دیتابیس: جداول اصلی وردپرس و جداول افزونههایی مانند ووکامرس، فرمساز یا عضویت
- پوشه wp-content: قالب، افزونه، رسانه، زبانها و فایلهای اختصاصی
- فایلهای پیکربندی: مانند
wp-config.phpو قوانین وبسرور - فایلهای خارج از وردپرس: اسکریپتها، Verificationها یا پوشههای وابسته در صورت وجود
هسته وردپرس را میتوان دوباره از منبع رسمی دریافت کرد، اما نگهداری آن در بکاپ کامل، بازسازی سریعتر را ممکن میکند. در مقابل، رسانههای اختصاصی و دیتابیس قابل جایگزینی عمومی نیستند و اولویت بالاتری دارند.
تفاوت بکاپ کامل، افزایشی و تفاضلی
| نوع بکاپ | چه چیزی ذخیره میشود؟ | مزیت | محدودیت |
|---|---|---|---|
| کامل | همه فایلها و دیتابیس | بازیابی ساده و مستقل | حجم و زمان اجرای بیشتر |
| افزایشی | تغییرات پس از آخرین بکاپ از هر نوع | سریع و کمحجم | برای بازیابی به زنجیره نسخهها نیاز دارد |
| تفاضلی | تغییرات پس از آخرین بکاپ کامل | بازیابی سادهتر از افزایشی | حجم آن تا بکاپ کامل بعدی افزایش مییابد |
| لحظهای | رویدادهای حساس یا تغییرات نزدیک به زمان واقعی | کاهش ازدسترفتن سفارش و داده | هزینه و پیچیدگی بیشتر |
برای یک سایت شرکتی کمتغییر، بکاپ کامل هفتگی همراه با دیتابیس روزانه ممکن است کافی باشد. فروشگاه پرتراکنش به نسخه دیتابیس ساعتی یا لحظهای نیاز دارد، زیرا فاصله یک روز میتواند به معنی ازدسترفتن سفارش، موجودی و اطلاعات مشتری باشد.
دو معیار مهم: RPO و RTO
RPO حداکثر میزان دادهای است که میتوانید از دست بدهید. اگر از دسترفتن سفارشهای یک ساعت قابل قبول نیست، بکاپ روزانه با نیاز شما هماهنگ نیست. RTO مدت زمانی است که سایت میتواند تا بازیابی کامل از دسترس خارج بماند. این دو عدد، زمانبندی، نوع بکاپ و محل نگهداری را تعیین میکنند.
مثال: یک فروشگاه با RPO برابر ۱۵ دقیقه و RTO برابر یک ساعت، به ثبت تغییرات پرتکرار، زیرساخت بازیابی سریع و تمرین قبلی نیاز دارد. یک سایت معرفی خدمات شاید RPO یک روز و RTO چهار ساعت را بپذیرد.
قانون ۳-۲-۱ برای نگهداری امن نسخهها
قاعده ۳-۲-۱ میگوید سه کپی از داده داشته باشید، آنها را روی دو نوع فضای متفاوت نگهداری کنید و حداقل یک نسخه خارج از سرور اصلی باشد. برای وردپرس میتواند چنین باشد:
- نسخه فعال سایت روی هاست
- بکاپ خودکار در فضای ابری مستقل یا Object Storage
- نسخه دورهای رمزگذاریشده در فضای دوم یا حافظه محلی امن
بکاپی که فقط داخل همان اکانت هاست ذخیره شده، در خرابی دیسک، تعلیق حساب، حذف اشتباه یا نفوذ گسترده ممکن است همراه سایت از بین برود. راهنمای انتخاب هاست وردپرس نشان میدهد سیاست نسخه پشتیبان میزبان نیز باید پیش از خرید بررسی شود.
زمانبندی مناسب بکاپ برای انواع سایت
تعداد نسخهها باید با نرخ تغییر داده هماهنگ باشد. اجرای بیشازحد بکاپ کامل نیز میتواند CPU، فضای دیسک و I/O را مصرف کند و سرعت سایت را در زمان پرترافیک کاهش دهد. یک الگوی عملی:
- وبلاگ کمتغییر: دیتابیس روزانه، فایلها هفتگی و بکاپ کامل هفتگی
- سایت شرکتی فعال: دیتابیس روزانه، فایلها روزانه یا پس از تغییر، نسخه کامل هفتگی
- فروشگاه ووکامرس: سفارش و دیتابیس هر ۱۵ دقیقه تا یک ساعت، فایلها روزانه و کامل هفتگی
- سایت عضویت یا آموزش: دیتابیس ساعتی، فایلها روزانه و ثبت جداگانه فایلهای کاربران
- پیش از تغییر مهم: نسخه کامل دستی قبل از آپدیت، مهاجرت، تغییر قالب یا ویرایش دیتابیس
زمان اجرا را به ساعت کمترافیک منتقل کنید و پس از پایان، فایل موقت بکاپ را از فضای عمومی هاست پاک کنید. در سایتهای ووکامرسی، راهکار باید تراکنشهای جدید حین تهیه نسخه را درست مدیریت کند؛ مقاله افزایش سرعت ووکامرس نیز درباره اثر پردازشهای پسزمینه بر عملکرد فروشگاه توضیح میدهد.
بکاپ با افزونه، هاست یا روش دستی؟
افزونه بکاپ وردپرس
افزونه برای زمانبندی، ارسال مستقیم به فضای ابری و بازیابی ساده مناسب است. پیش از انتخاب، محدودیت حجم، سازگاری با هاست، پشتیبانی از بکاپ افزایشی، رمزگذاری، نگهداری نسخهها و امکان Restore انتخابی را بررسی کنید. افزونه نباید فایل بزرگ نهایی را برای مدت طولانی روی هاست باقی بگذارد.
نسخه پشتیبان هاست
بکاپ میزبان لایه مهمی است، اما تنها لایه نباشد. باید بدانید چند نسخه نگهداری میشود، بکاپ روی همان سرور است یا خارج از آن، بازیابی چقدر زمان میبرد و آیا دانلود مستقل نسخه ممکن است. بعضی سرویسها بکاپ را صرفاً برای بازیابی داخلی نگه میدارند و تضمین دائمی نمیکنند.
بکاپ دستی
خروجی دیتابیس همراه با آرشیو فایلها برای تغییر حساس یا انتقال سایت مفید است. مزیت آن کنترل مستقیم است؛ اما فراموشی، خطای انسانی و نبود زمانبندی نقطه ضعف محسوب میشود. روش دستی باید مکمل فرایند خودکار باشد، نه جایگزین آن.
بکاپ قبل از بهروزرسانی؛ چه زمانی ضروری است؟
پیش از بهروزرسانی هسته، افزونه سنگین، قالب یا PHP یک نسخه قابل بازیابی بسازید. در سایت حساس، ابتدا تغییر را روی Staging آزمایش کنید. نسخه پیش از تغییر باید برچسب و زمان مشخص داشته باشد تا با بکاپهای عادی اشتباه نشود.
اگر فقط یک افزونه کوچک بهروزرسانی میشود، بکاپ دیتابیس و فایل همان افزونه ممکن است کافی باشد؛ ولی وقتی ساختار دیتابیس تغییر میکند، نسخه کامل امنتر است. بازگشت فایل افزونه بدون بازگرداندن دیتابیس همیشه سازگار نیست.
امنیت نسخههای پشتیبان
بکاپ شامل رمزهای هششده، اطلاعات کاربران، سفارشها، تنظیمات و گاهی کلیدهای دسترسی است؛ بنابراین افشای آن میتواند از هک مستقیم سایت خطرناکتر باشد. این اصول را رعایت کنید:
- نسخهها را در پوشه عمومی و قابل حدس سایت نگه ندارید.
- انتقال را با ارتباط رمزگذاریشده انجام دهید.
- فضای مقصد را با احراز هویت دومرحلهای و حساب جداگانه محافظت کنید.
- در صورت امکان فایلها را قبل از انتقال رمزگذاری کنید.
- دسترسی حذف نسخه را از حسابی که فقط بکاپ ارسال میکند جدا کنید.
- گزارش موفقیت و شکست عملیات را به ایمیل یا سامانه مانیتورینگ بفرستید.
اگر مهاجم بتواند هم سایت و هم نسخهها را حذف یا آلوده کند، برنامه بازیابی شکست میخورد. مقاله پاکسازی بدافزار وردپرس توضیح میدهد چرا نسخه آلوده نباید بدون تحلیل روی سایت بازگردانده شود.
سیاست نگهداری یا Retention چگونه تعیین میشود؟
نگهداری بینهایت همه نسخهها هزینه و ریسک افشای داده را افزایش میدهد. در مقابل، حذف سریع ممکن است تنها نسخه سالم پیش از آلودگی پنهان را از بین ببرد. یک الگوی ساده میتواند شامل ۷ نسخه روزانه، ۴ نسخه هفتگی و ۶ نسخه ماهانه باشد. سایتهای مالی یا دارای الزام قراردادی باید سیاست را با نیاز حقوقی و عملیاتی خود هماهنگ کنند.
نسخههای پایان ماه، قبل از تغییر بزرگ و پس از تحویل پروژه را با برچسب جدا نگهداری کنید. تاریخ، نوع، اندازه، مقصد و نتیجه اعتبارسنجی هر بکاپ باید در گزارش ثبت شود.
چگونه سلامت بکاپ را بدون بازیابی کامل بسنجیم؟
- فایل آرشیو باز میشود و خطای CRC ندارد.
- خروجی دیتابیس قابل خواندن و شامل جدولهای اصلی و افزونههاست.
- اندازه نسخه با روند معمول اختلاف غیرمنطقی ندارد.
- فایلهای رسانه، قالب و افزونه داخل آرشیو حضور دارند.
- هش فایل پس از انتقال با مبدا مطابقت دارد.
- اعلان موفقیت واقعی است و فقط شروع Job را گزارش نمیکند.
این بررسیها مفیدند، اما جای Restore آزمایشی را نمیگیرند. تنها معیار قطعی، بالا آمدن سایت و کارکرد صحیح آن پس از بازیابی است.
روش اصولی تست بازیابی وردپرس
- محیط جدا بسازید: یک Staging یا زیردامنه محافظتشده با نسخه PHP و تنظیمات نزدیک به سایت اصلی آماده کنید.
- نسخه را اعتبارسنجی کنید: فایلها و دیتابیس را از مقصد بکاپ دانلود کنید، نه از نسخه موقت روی همان هاست.
- دیتابیس را بازیابی کنید: Prefix، Collation و اطلاعات اتصال را کنترل کنید و URL محیط آزمایشی را با ابزار سازگار با داده Serialize شده تغییر دهید.
- فایلها را برگردانید: دسترسی پوشهها، مالکیت فایل و فایلهای پیکربندی مخصوص محیط را تنظیم کنید.
- کش را پاک کنید: کش افزونه، سرور، Object Cache و CDN محیط آزمایش را پاکسازی کنید.
- سناریوهای مهم را تست کنید: ورود، فرم، جستوجو، آپلود، ارسال ایمیل، سبد خرید و پرداخت آزمایشی.
- نتیجه را ثبت کنید: مدت بازیابی، خطاها و اقدام اصلاحی را بنویسید تا Runbook بحران دقیقتر شود.
محیط Restore نباید برای موتور جستوجو قابل ایندکس باشد یا ایمیل واقعی به مشتری بفرستد. کلیدهای پرداخت، وبهوک و پیامک را در حالت آزمایشی قرار دهید.
اشتباهات رایج در بکاپ گیری وردپرس
- نگهداری همه نسخهها روی همان هاست اصلی
- تهیه فایلها بدون دیتابیس یا دیتابیس بدون رسانهها
- اعتماد کامل به بکاپ هاست بدون اطلاع از دوره نگهداری
- ندیدن اعلان خطا و پرشدن فضای مقصد
- اجرای بکاپ کامل در ساعت پرترافیک
- ذخیره نسخه بدون رمزگذاری در لینک عمومی
- بازگرداندن نسخه آلوده پس از هک
- نداشتن نسخه مستقل پیش از بهروزرسانی مهم
- تستنکردن بازیابی تا روز بحران
- فراموشکردن داده افزونهها، سفارشها یا فایلهای خارج از مسیر معمول
مثال برنامه بکاپ برای یک فروشگاه متوسط
فرض کنید فروشگاه روزانه صد سفارش دارد و حداکثر ازدسترفتن قابل قبول داده ۳۰ دقیقه است. برنامه پیشنهادی میتواند شامل بکاپ دیتابیس هر ۱۵ دقیقه، بکاپ افزایشی فایلها هر شش ساعت، بکاپ کامل شبانه و نسخه هفتگی در فضای دوم باشد. هفت نسخه روزانه، چهار نسخه هفتگی و شش نسخه ماهانه نگهداری میشوند.
پیش از هر بهروزرسانی ووکامرس یا تغییر قالب، Snapshot جدا ساخته میشود. ماهی یکبار نسخه منتخب روی Staging بازیابی و ثبت سفارش آزمایشی، ایمیل، موجودی و گزارشها کنترل میشوند. با این کار، داشتن فایل پشتیبان به «توان واقعی بازیابی» تبدیل میشود.
چکلیست نهایی سیستم پشتیبانگیری
- RPO و RTO سایت مشخص شدهاند.
- فایلها و همه جداول دیتابیس داخل برنامه هستند.
- حداقل یک نسخه خارج از هاست اصلی نگهداری میشود.
- فضای مقصد رمزگذاری و با ورود دومرحلهای محافظت شده است.
- اعلان شکست عملیات فعال است.
- سیاست نگهداری روزانه، هفتگی و ماهانه تعریف شده است.
- بکاپهای پیش از تغییر مهم برچسب جدا دارند.
- فضای دیسک و مدت اجرای Job مانیتور میشود.
- بازیابی دورهای در محیط جدا آزمایش میشود.
- Runbook بازیابی و مسئول هر اقدام مشخص است.
بکاپ چه ارتباطی با نگهداری و سرعت سایت دارد؟
نسخه پشتیبان بخشی از عملیات نگهداری است و نباید جدا از بهروزرسانی، امنیت و مانیتورینگ طراحی شود. بکاپ بدزمانبندیشده میتواند منابع هاست را مصرف کند؛ فایلهای قدیمی باقیمانده نیز فضای دیسک و زمان اسکن را بالا میبرند. اگر دیتابیس بیش از حد متورم باشد، اندازه و مدت بکاپ افزایش مییابد؛ راهنمای بهینهسازی دیتابیس وردپرس برای کنترل این بخش مفید است.
یک برنامه نگهداری حرفهای باید قبل از تغییر نسخه بسازد، بعد از تغییر سلامت سایت را بسنجد و گزارش قابل پیگیری ارائه دهد. مقاله پشتیبانی و نگهداری وردپرس اجزای این چرخه را کاملتر توضیح میدهد.
جمعبندی
بکاپ گیری وردپرس فقط ساختن یک فایل فشرده نیست. یک سیستم قابل اتکا باید فایل و دیتابیس را پوشش دهد، با نرخ تغییر سایت زمانبندی شود، نسخهای خارج از سرور اصلی داشته باشد، از دسترسی غیرمجاز محافظت شود و بهطور دورهای در محیط جدا بازیابی گردد. RPO مشخص میکند چند داده میتوانید از دست بدهید و RTO نشان میدهد چهقدر برای بازگشت سایت فرصت دارید.
اگر نمیدانید نسخههای فعلی سایت واقعاً سالماند یا برای فروشگاه به برنامه بکاپ حرفهای نیاز دارید، تکوبیت میتواند معماری پشتیبانگیری، فضای نگهداری، اعلان خطا و تست دورهای Restore را در قالب خدمات پشتیبانی وردپرس تکوبیت پیادهسازی کند.
سؤالات متداول
هر چند وقت یکبار از وردپرس بکاپ بگیریم؟
بازه مناسب به سرعت تغییر داده بستگی دارد. سایت شرکتی ممکن است با بکاپ روزانه ایمن باشد، اما فروشگاه پرتراکنش به نسخه دیتابیس هر چند دقیقه یا هر ساعت نیاز دارد.
آیا بکاپ روزانه هاست کافی است؟
بهتر است تنها لایه نباشد. حداقل یک نسخه مستقل خارج از اکانت هاست نگه دارید و سیاست نگهداری و امکان بازیابی سرویس میزبان را دقیق بررسی کنید.
بکاپ کامل بهتر است یا افزایشی؟
بکاپ کامل بازیابی سادهتری دارد و افزایشی سریعتر و کمحجمتر است. ترکیب نسخه کامل دورهای با افزایشی پرتکرار برای بسیاری از سایتهای فعال مناسبتر است.
چطور مطمئن شویم نسخه پشتیبان سالم است؟
بررسی آرشیو و دیتابیس مفید است، اما مطمئنترین روش بازیابی دورهای روی محیط Staging و آزمایش ورود، فرمها، رسانه، سفارش و ایمیل است.
آیا قبل از آپدیت افزونه باید بکاپ گرفت؟
برای تغییرات مهم یا افزونههایی که دیتابیس را تغییر میدهند، بله. نسخه پیش از آپدیت باید قابل دسترسی، برچسبخورده و ترجیحاً قبلاً از نظر بازیابی اعتبارسنجی شده باشد.
