Визначте прийнятні втрати та простій
Запишіть найпізнішу прийнятну точку відновлення та цільовий час відновлення корисної роботи сервісу. Це цілі застосунку, а не PrivacyNodes SLA. Якщо втрата години даних неприйнятна, щоденної копії недостатньо для досягнення цієї мети. Виберіть метод резервного копіювання бази даних, сумісний з вашим навантаженням і версією.
Отримайте одноразову ціль, артефакт застосунку та уповноважені облікові дані для відновлення через захищене сховище. Підтвердьте, хто схвалює відновлення даних клієнтів і як тестове середовище запобігає зовнішньому трафіку. Не відновлюйте поверх працюючої продакшен-бази даних або наявного каталогу.
Інвентаризуйте повний стан застосунку
Для API звітності перелічіть PostgreSQL, завантаження, експорти, які неможливо відтворити, конфігурацію, посилання на ключі шифрування, DNS та зовнішні залежності. Відрізняйте одноразовий кеш від черги з клієнтською роботою, що потребує узгодження. Образ контейнера описує програмне забезпечення, а не весь постійний стан.
| Запис | Ваше значення |
|---|---|
| Версія артефакту та конфігурації | Точні ідентифікатори |
| Резервна копія бази даних і точка відновлення | Вибраний архів і часова позначка |
| Знімок завантажень і межа узгодженості | Знімок, шлях і план відповідності |
| Одноразова ціль | Перевірене середовище та порожнє призначення |
| Облікові дані та затверджувач | Лише захищені посилання |
| Початок, завершення, пропущені кроки | Спостережені результати, а не оцінки |
Зрозумійте, що включає резервна копія
PostgreSQL документує логічні дампи, резервні копії файлової системи та безперервне архівування як різні стратегії. A pg_dump архів охоплює одну базу даних; ролі та табличні простори рівня кластера потребують окремого розгляду. Його клієнт не може зробити дамп сервера новішої мажорної версії. Узгодьте версії інструментів і стратегію з метою; копіювання каталогу даних живої системи не є автоматично узгодженим.
Перевірте архів перед відновленням. Вибір таблиці за допомогою pg_restore не включає автоматично всі її залежності. Його --clean опція видаляє наявні об'єкти; відновлення в одній транзакції не можна поєднувати з паралельними завданнями. Перегляньте опції для конкретно визначеної порожньої тестової бази даних.
Технічна довідка: Резервне копіювання та відновлення PostgreSQL · PostgreSQL pg_dump · PostgreSQL pg_restore.
Перевірте цілісність і відновлення незалежно
Перевірки репозиторію та функціональні відновлення відповідають на різні питання. Звичайна check не читає кожен збережений пакет даних; check --read-data додає ці читання й може споживати значну пропускну здатність. Жодне з них не доводить, що знімок містить усе, потрібне API.
Виберіть конкретний знімок і новий цільовий каталог. Неуточнений latest у спільному репозиторії може вибрати інше навантаження. Відновлення може перезаписати файли, а переривання може залишити часткові результати. Спочатку перевірте призначення, не торкаючись продакшен-файлів і оригінального репозиторію.
Технічна довідка: перевірки репозиторію restic · цілі відновлення restic.
Перевірте відновлену поведінку в порядку залежностей
Відтворіть середовище, відновіть базу даних і відповідні завантаження, потім запустіть API зі стейджинг-обліковими даними. Тримайте воркери призупиненими, доки їхній відкладений обсяг і побічні ефекти не будуть зрозумілі. Вимкніть продакшен-пошту, платіжні виклики та вебхуки; використовуйте тестове призначення експорту й ніколи не споживайте продакшен-чергу.
Використайте відомий тестовий обліковий запис, щоб прочитати запис, відкрити його завантаження, перевірити обмеження доступу та виконати невеликий новий експорт. Переконайтеся, що інший тестовий обліковий запис не може прочитати його дані. Порівняйте вибрану точку відновлення з останнім очікуваним записом. Зафіксуйте фактичний час відновлення після навчання; не пишіть вигаданий результат успіху заздалегідь.
Визначте право власності на записи перед реальним перемиканням
Під час інциденту вирішіть, яка система може приймати записи та як пізніші зміни узгоджуються. Дві копії, доступні для запису, можуть розійтися. Навчання документує це рішення без перемикання реального трафіку. Видаліть одноразові дані згідно з вашими правилами зберігання, коли вправа завершиться.
Виправте відсутні облікові дані, залежності та кроки перевірки після кожної репетиції. Тримайте runbook поза оригінальним хостом і переконайтеся, що інший уповноважений супровідник може його знайти. Вибіркова опція резервного копіювання відокремлена від цього процесу застосунку; підтвердьте обсяг і процедури відновлення в факти про сервіс. Використайте запису релізу для розгортання, що йде далі.
Офіційні посилання
Документацію переглянуто для цієї статті. Приклади — це планувальні вправи, а не команди, перевірені на сервері PrivacyNodes. Перевірте документацію для вашої встановленої версії.