دموی رایگان

آموزش گام‌به‌گام بازگردانی سایت پس از خطا؛ از تشخیص تا راه‌اندازی دوباره

دلوین خیری مقدم خواندن ~۸ دقیقه نگهداری، مهاجرت و خطاها
آموزش گام‌به‌گام بازگردانی سایت پس از خطا؛ از تشخیص تا راه‌اندازی دوباره
بازگردانی سایت پس از خطا یعنی برگرداندن سایت به آخرین وضعیت سالمِ ثبت‌شده؛ ترتیب درست کار چهار گام دارد: ثابت‌کردن صحنه، تشخیص علت با روش حذف، بازگردانی از بکاپ سالم و پایش پس از بازگشت. به تجربهٔ ما اگر بکاپ سالم در دسترس باشد، این مسیر در بازهٔ چند ساعت تا یک روز کاری بسته می‌شود؛ اگر بکاپ نباشد، تعمیر جای بازگردانی را می‌گیرد و مسیر طولانی‌تر و پرریسک‌تر می‌شود.

خرابی سایت مثل قطع برق است: وقتش را انتخاب نمی‌کنید و تصمیم‌های ده دقیقهٔ اول، سرنوشت بعدی را می‌سازند. این مقاله همان مسیر تصمیم را از لحظهٔ خاموشی تا پایش چهل‌وهشت‌ساعته باز می‌کند و هر جا کار فنی تخصصی‌تر می‌شود، به راهنمای تخصصی خودمان ارجاع می‌دهد. لحن ما صادقانه است: بازگردانی کار قهرمانی نیست؛ کار چک‌لیست است.

یک نکتهٔ لایه‌بندی: ریستور بکاپ وردپرس؛ راهنمای فنی بازیابی مراحل فنی خودِ بازیابی را گام‌به‌گام باز می‌کند؛ این مقاله آن را تکرار نمی‌کند و جای خالی‌اش را پر می‌کند: از تشخیص اینکه اصلاً کی و چرا بازگردانی کنیم، تا تصمیم‌هایی که پیش و پس از ریستور گرفته می‌شود. دو مقاله کنار هم کامل‌اند؛ یکی نقشهٔ فنی است و یکی نقشهٔ تصمیم.

بازگردانی سایت پس از خطا یعنی چه و کی انتخاب درست است؟

بازگردانی، پاسخ همهٔ خطاها نیست. اگر خطا از یک افزونهٔ تازه است، تعمیرِ هدفمند سریع‌تر و کم‌ریسک‌تر است؛ اگر منبع خطا نامشخص است، سایت پر از تغییرات آزمایشیِ بدترکننده شده یا خرابی امنیتی رخ داده، بازگردانی به وضعیت سالم انتخاب منطقی است. معیار ما ساده است: هر وقت هزینهٔ تشخیص و تعمیر از هزینهٔ بازگشت به آخرین وضعیت سالم بیشتر شد، بازگردانی برنده است. این معیار را قبل از بحران مکتوب کنید؛ در لحظهٔ خرابی، تصمیم‌های عجولانه گران‌اند.

این انتخاب دو پیش‌نیاز دارد که همان‌های سکشن‌های بعدی‌اند: بکاپ سالم و قابل بازیابی، و روش تشخیصی که بگوید خطا از کدام لایه است — هاست، وردپرس، قالب، افزونه یا کد اختصاصی. بدون این دو، بازگردانی هم تبدیل به کار آزمون‌وخطایی می‌شود؛ همان چیزی که ساعت‌ها را به روزها تبدیل می‌کند. پس انتظار درست را هم بچینید: بازگردانی سایت را به «سالمِ دیروز» برمی‌گرداند؛ ریشهٔ خرابی را سکشن‌های بعدی می‌بندند. تا این دو پیش‌نیاز آماده نشده، زمانِ بازگردانی را عقب بیندازید، نه جلو.

پیش از هر اقدام؛ صحنه را ثابت نگه دارید

سه حرکتی که خرابی را بدتر می‌کند
به تجربهٔ ما بیشترِ خسارت‌های دائمی از همین سه حرکت می‌آید؛ صحنه را ثابت نگه دارید.

اولین کار، ثابت‌کردن صحنه است: از وضعیت فعلی — متن خطا، زمان شروع، آخرین تغییرات، ورودهای اخیر — عکس و یادداشت بگیرید و دست‌کاری را متوقف کنید. دومین کار، بستن ورودهای غیرضروری است: تا روشن نشده که مشکل امنیتی است یا نه، دسترسی‌ها را محدود نگه دارید. اگر چند نفر به سایت دسترسی دارند، همین الان نقش‌ها را بنویسید: چه کسی تشخیص می‌دهد، چه کسی اجرا می‌کند، چه کسی با میزبان تماس می‌گیرد؛ تقسیم کار در ده دقیقهٔ اول، از دوباره‌کاری‌های بعدی جلوگیری می‌کند.

سه حرکت را هم ممنوع کنید، چون به تجربهٔ ما بیشترِ خسارت‌های دائمی از همین‌ها می‌آید: نصب دوبارهٔ وردپرس روی نصب فعلی بدون بکاپ، تغییر هم‌زمان چند چیز برای «امتحان کردن» و پاک‌کردن کش‌ها و لاگ‌ها پیش از ثبت وضعیت. هر کدام از این‌ها می‌تواند آخرین نسخهٔ سالم را هم از دسترس خارج کند و مسیر بازگشت را ببندد. قاعدهٔ سادهٔ این مرحله: هیچ تغییری ثبت‌نشده انجام نشود؛ هر اقدام، با ساعت و دلیلش در برگهٔ بحران نوشته شود.

گام اول؛ تشخیص علت با روش حذف سه‌پرسشی

تشخیص با سه پرسش حذفی شروع می‌شود: خطا از کی شروع شد و چه چیزی دقیقاً همان موقع تغییر کرد؟ خطا در همهٔ صفحات است یا فقط صفحاتی خاص؟ و آیا پیشخوان بالا می‌آید یا کل سایت خاموش است؟ پاسخ این سه، فضای جست‌وجو را از هزاران احتمال به چند مورد می‌رساند؛ روش حذف، جای حافظه را در تشخیص می‌گیرد.

بعد سراغ رایج‌ترین علت‌ها بروید: افزونه یا قالب تازه‌نصب، به‌روزرسانی نیمه‌کاره، اتمام منابع هاست و تغییر دسترسی‌ها. برای خطاهای مشخص، راهنمای تخصصی خودمان را دارید: خطای 500 وردپرس و صفحه سفید وردپرس هر کدام مسیر رفع خودشان را دارند؛ اگر علت امنیتی بود، مسیر را عوض کنید و به پروتکل مخصوص هک بروید، چون ترتیب کار فرق می‌کند.

خروجی این مرحله باید یک جمله باشد: «خطا از لایهٔ X بعد از تغییر Y است.» اگر بعد از نیم‌روز تشخیص منظم به این جمله نرسیدید، این خودش سیگنال تصمیم است: بازگردانی به وضعیت سالم اقتصادی‌تر از ادامهٔ کاوش است. جمله را با زمان و شاهدش بنویسید؛ همین سطر، جلسهٔ بعدی را کوتاه می‌کند.

گام دوم؛ بازگردانی از بکاپ؛ کدام بکاپ سالم است؟

بکاپ سالم دو شرط دارد: تاریخش پیش از وقوع خطا باشد و بازیابی‌پذیریش ثابت شده باشد. «سالم‌ترین» بکاپ همیشه آخرین بکاپ نیست؛ اگر خرابی دیر کشف شود، آخرین نسخه هم خراب است. قاعدهٔ ما این است: پیش از ریستور، بکاپ‌های موجود را تاریخ‌بندی کنید و جدیدترین نسخهٔ قبل از شروع مشکل را انتخاب کنید؛ تاریخ انتخاب‌شده را هم کنار سطر تشخیص ثبت کنید.

ریت بکاپ‌ها لایه‌بندی می‌شود: فایل‌ها و دیتابیس جدا، نسخهٔ روزانه و هفتگی، و نگهداری چند نسخهٔ عقب. مراحل فنی بازیابی را در ریستور بکاپ وردپرس؛ راهنمای فنی بازیابی ببینید و اصول چیدمان و نگهداری نسخه‌ها را در بکاپ وردپرس؛ چیدمان و ریتم نسخه‌ها. اگر میزبان نسخهٔ خودکار دارد، مالکیت و دسترسی نسخه‌ها را همین حین بحران چک کنید، نه بعداً؛ بکاپی که به دست شما نمی‌رسد، در عمل وجود ندارد.

یک نکتهٔ صادقانه: بازگردانی، تغییرات بعد از آن بکاپ را هم برمی‌گرداند — سفارش‌ها، فرم‌ها، محتوای تازه. فهرست این چیزها را قبل از ریستور در بیاورید تا پس از بازگشت، بازسازی‌شان برنامه داشته باشد؛ حیرتِ «فروشگاه ما کجا رفت؟» در روز بعد از ریستور، بدترین جلسهٔ هفته است.

گام سوم؛ بازگشت تدریجی و تست سلامت پیش از بازگشایی کامل

مسیر بازگشت تدریجی پیش از بازگشایی کامل
تیک‌های ثبت‌شدهٔ این چک‌لیست، فردا سند سلامت سایت شماست.

بازگشت تدریجی یعنی سایت را دفعهٔ اول جلوی همه باز نکنید. اول در محیط آزمایشی یا آدرس موقت، بعد با چند دستگاه واقعی — گوشی، لپ‌تاپ، مرورگرهای مختلف — و بعد بازگشایی کامل. در هر مرحله چهار چیز را تست کنید: ورود به پیشخوان، فرم‌ها و درگاه پرداخت، سرعت بارگذاری صفحات اصلی و نمایش در موبایل. این مرحله را با چک‌لیست مکتوب انجام دهید و هر مورد را تیک بزنید؛ حافظهٔ بحران‌زده جای چک‌لیست را نمی‌گیرد و تیک‌های ثبت‌شده، فردا سند سلامت شماست.

تست پرداخت را با یک سفارش واقعی کوچک ببندید؛ فرمی که ظاهرش سالم است اما ایمیلش نمی‌رسد، همان‌جایی است که مشتری‌ها بی‌سروصدا از دست می‌روند. کش CDN را هم خالی کنید تا بازدیدکننده نسخهٔ خراب را نبیند و لینک‌های اصلی منو را باز کنید؛ گاهی یک لینک قدیمی به آدرسی می‌رود که دیگر وجود ندارد. اگر همهٔ تیک‌ها خورد اما یک بخش هنوز عجیب است، به مرحلهٔ تشخیص برگردید؛ نصفه‌بازگردانی، بدتر از تأخیر است.

گام چهارم؛ پایش چهل‌وهشت‌ساعته و بستن ریشهٔ خطا

بعد از بازگشت، چهل‌وهشت ساعت پایش فعال بگذارید: لاگ خطاها، گزارش Performance سرچ‌کنسول — نمایش، کلیک، نرخ کلیک و میانگین جایگاه — و اعلان‌های هاست. افت ناگهانی ایندکس یا خطای تازهٔ خزش، سیگنال ناتمام‌ماندن کار است؛ چهار سنجهٔ کنسول در این دو روز، صادقانه‌ترین داور هستند. زمان‌بندی را هم مکتوب کنید: پایش پررنگ چهل‌وهشت ساعت، بعد روزانه یک هفته، بعد بازگشت به ریتم عادی؛ بحرانی که پایان مشخص داشته باشد، فرسایش ندارد.

ریشهٔ خطا را هم ببندید، نه فقط علامتش را: افزونهٔ مقصر حذف یا جایگزین شود، ریتم به‌روزرسانی مکتوب شود و هر تغییر آینده اول در محیط آزمایشی امتحان شود. خرابی تکراری معمولاً ریشهٔ فرایندی دارد؛ تیمی که «چه شد» را مکتوب نکند، دو ماه بعد همان قصه را دوباره بازی می‌کند.

حاشیهٔ امنیت را هم بسازید: بکاپ روزانه با تست فصلی بازیابی، محیط آزمایشی برای هر تغییر بزرگ و مرور ماهانهٔ دسترسی‌ها. این سه، دفعهٔ بعد را از بحران به روال می‌برد؛ هدف این سکشن، بازگشت امروز نیست، گران‌نشدنِ دفعهٔ بعد است.

جمع‌بندی؛ بازگردانی، مهارتِ ساعت‌های بد است

جمع‌بندی در چهار گام: صحنه را ثابت نگه دارید و سه حرکت ممنوعه را انجام ندهید؛ با سه پرسش حذفی علت را پیدا کنید؛ از جدیدترین بکاپِ قبل از خرابی با تست تدریجی بازگردید؛ و چهل‌وهشت ساعت پایش کنید و ریشه را ببندید. این چرخه در بحران اجرا می‌شود اما سودش را در آرامش می‌برد: بکاپ تست‌شده و محیط آزمایشی، دفعهٔ بعد را ساده می‌کند. این متن را هم ذخیره کنید؛ روز خرابی وقت خواندن مقالهٔ بلند نیست و همین چهار گام، برگهٔ اجرای شماست.

مسیر نگهداری و خطاهای همین خانواده در هاب نگهداری، مهاجرت و خطاها مرتب است و اگر پشتیبانی اجرایی این ریتم را می‌خواهید، قیمت و پلن‌های سوئیت گزینهٔ پلتفرمی را با هزینهٔ ماهانهٔ شفاف نشان می‌دهد. کار بعدی امروز را همین الان انتخاب کنید: چک‌لیست بکاپ یا محیط آزمایشی؛ یکی از این دو، هفتهٔ بعد شما را نجات می‌دهد. بازگردانی را هیچ‌کس دوست ندارد، اما تیمی که برایش آماده است، فقط یک روالِ معمولی را اجرا می‌کند.

دموی رایگان پلتفرم

پلن پیشرو — ۷٫۹ میلیون تومان/ماه (انتشار خودکار + اپراتور)

دموی رایگان پلتفرم

رصد ما، رشد شما.

سؤالات پرتکرار

اگر اصلاً بکاپ نداشته باشیم چه کنیم؟

مسیر از بازگردانی به تعمیر تغییر می‌کند: تشخیص علت با روش حذف، استفاده از محیط بازیابی هاست و نسخهٔ کش‌شدهٔ گوگل برای محتوا، و بستن ریشهٔ خطا. طولانی‌تر است اما شدنی؛ از همین امروز بکاپ روزانه و هفتگی را بچینید.

سایت چقدر طول می‌کشد برگردد؟

به تجربهٔ ما با بکاپ سالم، بازهٔ چند ساعت تا یک روز کاری؛ بدون بکاپ، بسته به علت از یک روز تا چند روز. عدد دقیق بدون دیدن خطا قابل قول دادن نیست.

کدام بکاپ را ریستور کنیم؟

بکاپی که تاریخش قبل از وقوع خطاست و در محیط آزمایشی باز شود و سلامتش تأیید شود. آخرین بکاپ همیشه سالم‌ترین نیست؛ اگر خرابی دیر کشف شود، همان نسخهٔ آخر هم خراب است.

بعد از بازگردانی اول چه چیزی را چک کنیم؟

ورود به پیشخوان، فرم تماس و درگاه پرداخت با یک سفارش واقعی کوچک، ایندکس صفحه‌های مهم در سرچ‌کنسول و لاگ خطاها؛ سپس چهل‌وهشت ساعت پایش روزانه پیش از عادی‌سازی.

چطور جلوی تکرار خرابی را بگیریم؟

هر تغییر را اول در محیط آزمایشی امتحان کنید، افزونه‌های بلااستفاده را حذف کنید و ریتم به‌روزرسانی و بکاپ را مکتوب نگه دارید؛ خرابی تکراری معمولاً ریشهٔ فرایندی دارد، نه فنی.