Модул 8 · 8.2
Възстановяване и тестване
Модул 8: Резервни копия, тестова среда (staging) и PHP ъпгрейди · Време за четене: 8 минути
Учебна цел: След този урок ще можете да възстановите резервно копие, включително до съществуващия сайт, и да проверите дали е пълно и използваемо.
Ключови понятия: възстановяване (restore), пълно или частично, файлове или база данни, възстановяване до сайта, тестово възстановяване, контролен списък след възстановяване, промяна на адреси, импортиране на база данни
Резервното копие струва нещо само ако може да бъде възстановено
Най-болезненият момент при резервните копия не е при създаването им, а при откритието, че възстановяването не успява: базата данни липсва, резервното копие е наполовина, файлът е повреден или никой не знае как се прави. По-добре е да откриете това в спокоен вторник, отколкото в хакната събота.
Затова тествайте възстановяването редовно и за предпочитане без да докосвате истинския си сайт.
Какво възстановявате
Не е необходимо винаги да възстановявате всичко. Изберете това, което подхожда:
| Ситуация | Какво възстановявате |
|---|---|
| Случайно променена единична страница | Нищо: използвайте ревизиите (урок 4.1) |
| Случайно изтрито изображение или папка | Само тези файлове |
| Ъпдейт е повредил сайта | Файловете на това разширение или цялата wp-content, понякога и базата данни (ако ъпдейтът е променил базата данни) |
| Изтрито съдържание в базата данни | Базата данни, но имайте предвид, че всичко след този момент също ще бъде загубено |
| Хак | Всичко, напълно (урок 7.5), от резервно копие отдавна преди хака |
Файловете и базата данни вървят заедно. Ако възстановите само вчерашните файлове при днешната база данни, дадено разширение може да се обърка, защото неговата база данни вече е била актуализирана. При съмнение: и двете, от един и същи момент.
И винаги важи: всичко, случило се след момента на резервното копие, е загубено. Нови публикации, коментари, поръчки, регистрации. При онлайн магазин, преди възстановяването, отбележете кои поръчки са постъпили след създаването на резервното копие.
Възстановяване до сайта
Най-безопасният начин за тестване и спасяване на данни е да възстановите резервно копие до текущия си сайт: на тестов поддомейн (test.example.com) или в отделна папка, с отделна база данни. Истинският Ви сайт остава недокоснат. След това можете да:
- проверите дали резервното копие е пълно;
- извадите от него нещо конкретно (изтрита страница, стара версия на текст) и да го прехвърлите ръчно;
- упражните план за възстановяване.
Някои хостинг доставчици могат да направят това с бутон (при WebOké Backups например „възстановяване до текущия сайт“); другаде поставяте файловете и базата данни ръчно на тестово място.
Внимавайте за адреса
Резервно копие на https://example.com, което поставите на https://test.example.com, все още „знае“, че принадлежи на example.com: siteurl и home в базата данни (урок 1.3) и всички връзки сочат към истинския Ви сайт. Последицата: кликвате на тестовия сайт и попадате на истинския, или влизате в грешния. Затова след възстановяването поправете адресите:
wp search-replace 'https://example.com' 'https://test.example.com' --all-tables --dry-run
wp search-replace 'https://example.com' 'https://test.example.com' --all-tablesИли с разширение за търсене и замяна, което разбира сериализирани данни (урок 3.2). Веднага включете и обезкуражаване на търсачките (урок 2.4) или задайте парола на тестовия сайт, и се уверете, че тестовият сайт не изпраща поща до истински клиенти (урок 8.3).
Ръчно възстановяване на базата данни
Ако имате файл .sql (от резервно копие или износ), възстановявате го така:
- Създайте празна база данни и потребител (урок 2.3), или изпразнете съществуващата (само ако сте сигурни).
- Импортирайте файла в phpMyAdmin (раздел Импорт). При големи файлове phpMyAdmin може да заседне; тогава използвайте функцията за импорт на Вашия панел или командния ред (
wp db import back-up.sqlилиmysql). - Проверете в wp-config.php дали данните за базата данни са правилни.
- Проверете представката на таблиците: съвпада ли тази от резервното копие (
wp_) с$table_prefixв wp-config.php? Ако не, WordPress вижда празна инсталация и иска да инсталира отново.
Контролният списък след възстановяването
Възстановяването е успешно само ако сайтът наистина работи. Проверете следното:
- Началната страница и няколко обикновени страници и публикации да се отварят, в прозорец в режим "инкогнито".
- Изображения: показват ли се (значи uploads е било в резервното копие)?
- Вход в администрацията.
- Най-важните функции: изпращане на формуляр, добавяне на нещо в количката, търсене.
- Постоянни връзки: работят ли всички страници, или получавате 404 на всичко освен на началната страница? Тогава отидете в Настройки > Постоянни връзки и запазете веднъж (урок 2.4).
- Разширения и тема: активни и актуализирани.
- Версията: наистина ли това е съдържанието от датата, която очаквахте?
Отбележете колко време отне възстановяването. Това е Вашето реално време за възстановяване: колко дълго сайтът Ви е недостъпен при проблем.
Колко често да тествате
Правило на палеца: тествайте поне веднъж на тримесечие (урок 9.4), и след всяка промяна в системата си за резервни копия (ново разширение, друг хостинг доставчик, много по-голям сайт). Редувайте се: веднъж резервното копие от хостинг доставчика, друг път собственото Ви копие извън сървъра (урок 8.1).
На практика: ето как изглежда в панел
Като пример използваме WebOké Backups и DirectAdmin. При други хостинг доставчици бутоните се казват различно, но изборите са едни и същи: какво възстановявате и къде.
- Първо създайте тестовия поддомейн в DirectAdmin (Управление на поддомейни), със сертификат.
- В WebOké Backups изберете резервно копие отпреди няколко дни и изберете да възстановите файловете и базата данни до текущия сайт, на тестовото място.
- Във възстановената база данни поправете адресите към тестовия поддомейн.
- Прегледайте контролния списък.
Обобщение
- Резервно копие има стойност само ако може да бъде възстановено; тествайте възстановяването.
- Изберете какво да възстановите; файловете и базата данни трябва да бъдат от един и същи момент. Всичко, случило се след резервното копие, е загубено.
- Възстановете резервно копие до сайта си, за да тествате или да спасите нещо конкретно, и едва след това поправете адресите.
- При импортиране на база данни внимавайте за представката на таблиците и данните в wp-config.php.
- След всяко възстановяване преминете през фиксиран контролен списък и отбележете колко време е отнело.
Тест
Задача
Задача D8.2: Възстановяване на резервно копие в тестова среда (staging). Възстановете резервно копие на няколко дни от собствения си домейн на тестов поддомейн (например herstel.example.com), до истинския си сайт. Поправете адресите, включете обезкуражаване на търсачките или задайте парола на тестовото място и преминете през контролния списък от този урок. Отметнете всяка точка. Отбележете: кое резервно копие (източник и дата) сте използвали, колко време отне възстановяването, какво не мина добре и как го решихте. Оставете тестовия сайт за задача A8.3 и го изтрийте след това.
Задача D8.2: Възстановяване на резервно копие в тестова среда
Тази задача изпълнявате сами; никой не я проверява. Отбележете какво сте направили и маркирайте задачата като изпълнена.
Посочете продължителност и поне една констатация. „Нищо“ също е допустимо, ако добавите какво сте проверили.
Вашите отметки и бележки остават само в този браузър; не ги изпращаме никъде. Ако сте влезли, в Моите курсове запазваме само че сте изпълнили задачата.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; при други панели работят по подобен начин.
- Ръководство за DirectAdmin 16.3: Връщане на архивно копие в DirectAdmin
- Ръководство за DirectAdmin 16.5: Може ли това и в Моят WebOké? WebOké Backups
- Ръководство на WebOké 6.10: WebOké Backups: възстановяване на файлове
- WebOké Backups: преглед, възстановяване или изтегляне на резервно копие
- Ръководство за DirectAdmin 12.5: Импортиране на база данни, включително големи файлове
- Ръководство за DirectAdmin 4.5: Създаване и изтриване на поддомейни
