بکاپگیری از فروشگاه ووکامرس
چرا بکاپگیری از فروشگاه ووکامرس با روشهای معمول، در لحظه بحران جواب نمیدهد و بکاپ حرفهای چه تفاوتی دارد؟
یک بار در فروشگاهی که همهچیز مرتب به نظر میرسید، بعد از یک آپدیت افزونه، سفارشهای دو روز گذشته از پنل ناپدید شدند. مدیر فروشگاه گفت بکاپ روزانه دارد. وقتی فایلها را باز کردیم، معلوم شد بکاپ فقط از فایلها گرفته میشد، نه از دیتابیس. همه سفارشها، همه مشتریان و همه کوپنها در فضای بین دو بکاپ گم شدند. آن روز فهمیدم backup در فروشگاه آنلاین، یک قابلیت نیست؛ بیمه است. اگر تازه با ووکامرس آشنا میشوید، راهنمای ساخت فروشگاه با ووکامرس نقطه شروع خوبی است.
بکاپ فروشگاه ووکامرس دقیقاً از چه چیزی گرفته میشود؟
یک بکاپ کامل فروشگاه ووکامرس، سه بخش دارد: فایلهای سایت (کل پوشه public_html یا wp-content به همراه افزونهها و پوستهها)، دیتابیس (که سفارشها، مشتریان، محصولات، تخفیفها و تنظیمات را نگه میدارد) و فایلهای پیکربندی مثل wp-config.php. بسیاری از مدیران فروشگاه فقط بخش اول را بکاپ میگیرند، در حالی که سنگینترین داده فروشگاه در دیتابیس ذخیره شده است. اگر با مفهوم دیتابیس آشنا نیستید، پیشنهاد میکنم افزونه وردپرس چیست و چگونه انتخاب کنیم را بخوانید تا ساختار کلی را بهتر بفهمید.
در فروشگاههای ووکامرسی، دیتابیس سریعتر از هر جای دیگری رشد میکند. هر سفارش، چند ردیف در جداول posts، postmeta، woocommerce_order_items و woocommerce_order_itemmeta میسازد. هر کوپن، هر نظر مشتری و هر لاگ افزونه هم به همان دیتابیس اضافه میشود. بدون بکاپ منظم از دیتابیس، یک فروشگاه در عمل بدون بیمه است. اگر بعد از بکاپگیری میخواهید دیتابیس را بهینه کنید، تأثیر دیتابیس بر سرعت سایت نقطه شروع مناسبی برای فهم ساختار آن است.
بکاپی که فقط فایل دارد و دیتابیس ندارد، در حقیقت یک عکس از قاب خالی است. مشتری، سفارش و درآمد همه در آن قاب غایباند.
چند وقت یکبار و در چه ساعاتی بکاپ بگیریم؟
پاسخ کوتاه: به ریتم فروش فروشگاه. فروشگاههایی که روزی چند سفارش دارند، بکاپ روزانه کافی است. فروشگاههایی که در کمپینها روزی صدها سفارش میگیرند، بکاپ روزانه یعنی از دست دادن بیشترین فروش. برای این دسته، بکاپ دیتابیس باید هر چند ساعت اجرا شود و بکاپ فایلها روزانه باقی بماند. تجربهام این است که بکاپ دیتابیس را سریعتر از بکاپ فایلها میتوان اجرا کرد چون حجم کمتری دارد و فشار روی سرور کمتر است.
ساعت بکاپ هم مهم است. اگر بکاپ را در ساعات اوج فروش اجرا کنید، یا کندی میسازد یا ممکن است با یک سفارش در لحظه بکاپ تداخل کند. من همیشه ساعتهای سه تا پنج بامداد را برای بکاپ سنگین انتخاب میکنم. برای فروشگاهی که مخاطبش بینالمللی است، ساعت بکاپ باید نسبت به منطقه زمانی اکثریت مشتریان تنظیم شود، نه منطقه زمانی سرور. این نکته ظریف باعث میشود بکاپ هرگز با ترافیک پیک برخورد نکند.
| حجم فروش | بکاپ دیتابیس | بکاپ فایل |
|---|---|---|
| زیر ۱۰ سفارش در روز | روزانه | روزانه |
| ۱۰ تا ۱۰۰ سفارش | هر ۶ ساعت | روزانه |
| بالای ۱۰۰ سفارش | هر ۱ ساعت | روزانه + هفتگی کامل |
| کمپین فروش ویژه | هر ۳۰ دقیقه | قبل و بعد از کمپین |
روشهای بکاپ و انتخاب درست
سه مسیر اصلی برای بکاپ فروشگاه ووکامرس وجود دارد. اولین مسیر، بکاپ از پنل هاست است. اکثر هاستهای cPanel بکاپ خودکار روزانه دارند و امکان بکاپ دستی هم میدهند. اگر با cPanel آشنا نیستید، بکاپ در cPanel آموزش کاملی دارد. این روش سریع است اما معمولاً بکاپ روی همان سرور نگه داشته میشود که ریسک بزرگی است.
مسیر دوم، استفاده از افزونههای بکاپ تخصصی است. این افزونهها هم فایل و هم دیتابیس را پوشش میدهند و امکان ذخیرهسازی بیرونی روی Google Drive، Dropbox یا Amazon S3 را فراهم میکنند. مقایسه این ابزارها در بهترین افزونههای بکاپ وردپرس آمده و روش کار با افزونههای بکاپ در چگونه از سایت وردپرسی بکاپ بگیریم توضیح داده شده است.
مسیر سوم، بکاپ در سطح سرور است. سرویسهایی مثل Snapshots در VPS یا بکاپهای خودکار ابری، نسخهای از کل سرور را نگه میدارند. این روش برای فروشگاههای بزرگ مناسب است اما برای فروشگاههای کوچک معمولاً بیش از نیاز است. در نهایت، تصمیم بین این سه مسیر، به حجم فروش و توان فنی تیم بستگی دارد. برای فروشگاهی که با یک ادمین غیرفنی اداره میشود، افزونه بکاپ با ذخیرهسازی ابری انتخاب امنتری است.
بازیابی: بخشی که در بحران معلوم میشود
یک ضربالمثل در دنیای زیرساخت هست: بکاپی که بازیابی نشده، بکاپ نیست. من هر سه ماه یکبار، روی یک نصب آزمایشی، بکاپ آخر را بازگردانی میکنم. این تمرین به ظاهر وقتگیر است اما بارها نجاتم داده. اگر فایل بکاپ خراب باشد، اگر دیتابیس خالی بازگردد، اگر افزونهای با نسخه قدیمی سازگار نباشد، همه اینها در بازیابی آزمایشی معلوم میشوند، نه در لحظه بحران واقعی.
مسیر بازیابی هم باید از قبل تمرین شده باشد. اگر بکاپ را روی یک نسخه آزمایشی از سایت برگردانید، میفهمید که مراحل دقیقاً چقدر زمان میبرد و کدام مرحله بیشترین ریسک را دارد. راهنمای عملی این فرآیند در بازیابی سایت از بکاپ آمده است. برای فروشگاههای ووکامرس، یک نکته اضافه هست: بعد از بازیابی، موجودی محصولات باید دوباره با انبار واقعی هماهنگ شود.
بکاپی که بازگردانی نشده، فقط یک فایل سنگین است. بکاپی که بازگردانیاش تمرین شده، بیمهنامه واقعی فروشگاه است.
محل نگهداری بکاپ و اصل سه-دو-یک
قاعده استاندارد نگهداری بکاپ، اصل سه-دو-یک است: حداقل سه نسخه از داده، روی دو رسانه متفاوت، با یک نسخه در مکانی خارج از سرور اصلی. برای فروشگاه ووکامرس این قاعده را میتوان به شکل زیر پیاده کرد: یک نسخه بکاپ روی هاست، یک نسخه روی فضای ابری مستقل (مثل Google Drive یا S3) و یک نسخه دانلودشده روی یک هارد خارجی یا کامپیوتر شخصی. هرچه ارزش داده بالاتر باشد، این قاعده مهمتر میشود.
یک نکته که در پروژهها زیاد دیدم: نسخه بکاپ روی هاست، در واقع بکاپ نیست؛ کپی است. اگر هاست از بین برود، هر دو نسخه از بین میروند. اگر فروشگاه شما روی هاست اشتراکی است، حتماً یک نسخه بیرونی داشته باشید. برای آشنایی با انواع روشهای بکاپ ابری و مزایایشان، پشتیبانگیری ابری و مزایای آن بررسی کاملی دارد. برای فروشگاههای بزرگ، بکاپ ابری به صورت پیشفرض بخشی از معماری است نه یک افزودنی.
در فروشگاههای ووکامرس، بکاپها بعد از یک ماه باید مدیریت شوند. اگر بکاپ هر روز روی فضای ابری ذخیره شود، بعد از یک سال فضای زیادی اشغال میشود. سیاست من این است: بکاپ روزانه برای یک هفته، بکاپ هفتگی برای یک ماه، بکاپ ماهانه برای یک سال. این سیاست یک تعادل منطقی بین هزینه ذخیرهسازی و ایمنی ایجاد میکند.
خطاهای تکرارشونده در بکاپ فروشگاه
چند خطا که در پروژههای مختلف دیدهام:
- بکاپ بدون دیتابیس: رایجترین و پرهزینهترین خطا در فروشگاههای آنلاین.
- نبود بکاپ خارج از هاست: بکاپ روی همان سرور، در برابر خرابی هاست بیفایده است.
- عدم تست بازیابی: بکاپ تستنشده، فقط یک فایل با فرمت ناشناخته است.
- بکاپ در ساعات اوج فروش: یا کندی میسازد یا با سفارش در لحظه بکاپ تداخل میکند.
- عدم هماهنگی با کش: بعد از بازیابی، کش صفحه باید پاک شود وگرنه نسخه قدیمی سرو میشود.
اگر بعد از بازیابی، محصولات یا سفارشها نمایش داده نمیشوند، اول کش صفحه را پاک کنید. اگر مشکل باقی ماند، راهنمای خطاهای رایج ووکامرس نقطه شروع مناسبی است. همچنین بعد از هر بازیابی، لینکهای ووکامرس را در تنظیمات پیوندهای یکتا بازنشانی کنید تا ساختار آدرسها با دیتابیس هماهنگ شود.
پرسشهای پرتکرار درباره بکاپ ووکامرس
بکاپ فروشگاه ووکامرس از کدام بخشها ضروری است؟ دیتابیس، فایلهای wp-content و فایل wp-config.php. باقی پوشههای هسته وردپرس و ووکامرس را میتوان از مخزن رسمی دوباره نصب کرد، اما این سه بخش فقط نزد خودتان است.
هر چند وقت یکبار بکاپ کافی است؟ بستگی به ریتم فروش دارد. برای فروشگاههای پرفروش، بکاپ دیتابیس هر شش ساعت یا کمتر منطقی است. بکاپ فایلها معمولاً روزانه کافی است چون کمتر تغییر میکند.
آیا بکاپ روی هاست امن است؟ امن نیست. اگر هاست از بین برود یا هک شود، بکاپ هم از بین میرود. حتماً یک نسخه بیرونی نگه دارید.
آیا افزونههای بکاپ روی سرعت اثر میگذارند؟ اگر در ساعات اوج اجرا شوند، بله. اگر زمانبندی به ساعات کمترافیک منتقل شود و بکاپهای سنگین کمتر اجرا شوند، اثرشان ناچیز است.
بعد از بازیابی بکاپ چه کارهایی لازم است؟ پاک کردن کش، بررسی لینکهای ووکامرس، هماهنگسازی موجودی با انبار واقعی و تست کامل مسیر خرید.
برای فروشگاههایی که روی کوپن و تخفیف تمرکز دارند، بکاپ جدول کوپنها اهمیت زیادی دارد. اگر این بخش را جدی میگیرید، تخفیف و کد تخفیف در ووکامرس را ببینید. همچنین برای درک بهتر ساختار داده سفارشها، مدیریت سفارشها در ووکامرس توصیه میشود. اگر از API خارجی برای فروشگاه استفاده میکنید، اتصال ووکامرس به API های خارجی نکتههای مکملی درباره همگامسازی داده دارد.
درسهایی که از پروژههای واقعی گرفتم
سه چیز بعد از سالها کار با فروشگاههای مختلف درباره بکاپ یاد گرفتم. اول، بکاپ بدون تست، اصلاً بکاپ نیست. دوم، محل بکاپ از خود بکاپ مهمتر است. سوم، بهترین سیاست بکاپ، سیاستی است که تیم بتواند بدون استرس اجرا کند، نه سیاستی که فقط روی کاغذ زیباست. اگر فروشگاه شما روی محصولات فیزیکی است، در زمان بازگردانی بکاپ، هماهنگی انبار را فراموش نکنید. اگر این بخش را جدی میگیرید، مدیریت موجودی محصولات در ووکامرس راهنمای کاملی دارد. برای پایداری امنیتی فروشگاه، امنیت فروشگاه ووکامرس و راهنمای امنیت وردپرس برای مبتدیان مکملهای خوبی هستند. و برای واکنش سریع در برابر سرقت داده، رنسامور و محافظت از سایت را ببینید.
اگر شما هم تجربهای از یک بکاپ که در لحظه بحران نجاتتان داد یا برعکس، تجربهای از بکاپی که به کار نیامد دارید، در دیدگاه بنویسید. برای من جالب است بدانم چه سیاستی برای بکاپ فروشگاه خود انتخاب کردهاید و آیا تا به حال آن را در یک سناریوی واقعی تست کردهاید. 💾