Надежная и безопасная миграция ИТ-инфраструктуры в K2 Cloud с Хайстекс Акура

Полное руководство: как сделать и восстановить бэкап базы данных

Надёжное хранение информации — основа бесперебойной работы любой информационной системы. Потеря записей, повреждение файлов или сбои в оборудовании могут обернуться остановкой бизнес-процессов. В этой статье мы расскажем, как сделать бэкап базы данных, как настроить резервное копирование на сервере, а также как из бэкапа восстановить данные — просто, пошагово и на примере PostgreSQL/Postgres Pro.

Зачем нужен бэкап базы данных

Любая база данных содержит информацию, важную для бизнеса: заказы, учет клиентов, транзакции. Потеря этих данных может привести к остановке процессов, финансовым потерям и даже утрате доверия со стороны клиентов. Поэтому важно не только создать резервную копию, но и регулярно проверять возможность восстановления из неё.

К чему может привести отсутствие резервной копии

  • Невозможность восстановить БД после сбоя
  • Потеря записей и файлов
  • Долгое восстановление из сторонних источников
  • Нарушение внутренних или внешних стандартов (например, 152-ФЗ, GDPR)
Kak nastroit backup i vosstanovit SUBD PostgreSQL

Как настроить резервное копирование на сервере: пошаговая инструкция (PostgreSQL / Postgres Pro)

СУБД PostgreSQL и её российский аналог Postgres Pro поддерживают два способа создания резервных копий:

  • Логическое резервное копирование (pg_dump) – подойдёт, если вы хотите копировать отдельные базы, переносить данные между разными серверами или средами, обновлять структуру базы, делать выборочное восстановление. Оно особенно удобно для разработки, тестирования и миграций.

 

  • Физическое резервное копирование (pg_basebackup + архив WAL-файлов) – больше подходит для критичных продакшн-систем, когда важно восстановить всё окружение в конкретный момент времени, включая журналы транзакций и настройки. Этот способ требует больше настроек, но даёт возможность точного восстановления, в том числе при сбоях на уровне системы.

 

Выбор между логическим и физическим копированием СУБД зависит от ваших задач, масштабов инфраструктуры и требований к восстановлению.

Ниже рассмотрим пошаговые инструкции по настройке каждого варианта.

Логическое копирование базы через pg_dump

Это самый простой способ создать резервную копию рабочей базы. Используется встроенная утилита pg_dump, позволяющая выгрузить структуру и данные в отдельный .bak файл.

Шаги:

1. Убедитесь, что на сервере установлена СУБД, а вы вошли под учётной записью администратора

2. Выполните команду:

bash

pg_dump -U db_admin -F c -b -v -f /backups/backup_file.bak your_database

✅ Это создаст резервную копию базы данных в формате, пригодном для backup восстановление базы данных через pg_restore.

Пояснение параметров:

→ F c — custom-формат

→ b — включает большие объекты

→ v — отображение хода процесса

→ f — путь к файлу для сохранения

your_database — имя целевой базы данных

Физическое копирование через pg_basebackup

Этот способ позволяет восстановить базу на любой момент времени.

Настройка:

1. В файле postgresql.conf:

conf

archive_mode = on
archive_command = 'cp %p /archive/%f'

2. Перезапустите сервер:
bash

systemctl restart postgresql

3. Выполните:

bash

pg_basebackup -D /data/backup -F tar -z -U replicator -P

Для этого пользователь должен обладать правами администратора и входить в роль replication.

Автоматизация создания резервной копии

Для регулярного резервного копирования можно использовать cron:

bash

0 3 * * * pg_dump -U db_admin -F c -f /backup/db_$(date +\%F).bak db_name

Или — сторонние программы для резервного копирования с поддержкой PostgreSQL.
Также допустимо использовать сетевую версию утилиты, установленную на другом сервере, через настройку SSH-доступа.

Kak nastroit backup i vosstanovit SUBD PostgreSQL

Как восстановить базу данных из бэкапа

Процесс восстановления зависит от способа создания копии: логического или физического. Ниже описано, как из бэкапа восстановить БД для обоих случаев.

 

Вариант 1: Восстановление логической копии (pg_restore)

Этот способ рекомендуется использовать в типовых, штатных ситуациях, когда нужно быстро восстановить отдельную базу данных или её часть, особенно если:

→ Вы делали резервную копию базы данных с помощью pg_dump

→ Не требуется откат ко времени сбоя (до секунды)

→ Вы хотите восстановить только структуру, только данные или определённые таблицы

→ Вы переносите данные между серверами или окружениями с разной версией PostgreSQL

 

Когда использовать:

  • Тестовый перенос базы в другое окружение (например, с продакшена на стенд)
  • Восстановление после логической ошибки (удаление таблицы, неправильный импорт)
  • Перенос базы между версиями PostgreSQL (например, с 13 на 15)

 

Инструкция:

1. Убедитесь, что PostgreSQL работает, и вы вошли с ролью db_owner

2. Если необходимо, удалите существующую базу данных:

bash

dropdb -U db_admin your_database
createdb -U db_admin your_database

3. Восстановите:

[bash]

pg_restore -U db_admin -d your_database /backups/backup_file.bak

На этом всё. База будет восстановлена из последней резервной копии.

 

Вариант 2: Восстановление физической копии (pg_basebackup + WAL)

Физическое восстановление — это глубокий уровень восстановления, который позволяет вернуть всё состояние базы на конкретный момент времени, включая:

→ Данные, структуру, настройки, сессии

→ Невозможность частичного восстановления — только полностью

→ Требует включённого архивирования WAL-файлов

 

Когда использовать:

  • Необходимо восстановление базы данных резервной копии до точного момента времени перед сбоем (PITR)
  • Произошёл сбой на уровне диска, файловой системы, отказ кластера
  • Требуется восстановление всего экземпляра PostgreSQL
  • Используется streaming replication или standby-серверы

 

Инструкция:

1. Остановите СУБД:

bash

systemctl stop postgresql

2. Очистите папку с данными:

bash

rm -rf /var/lib/postgresql/12/main/*

3. Распакуйте архив:

bash

tar -xf /backups/base.tar -C /var/lib/postgresql/12/main/

4. Добавьте recovery.conf с параметром:

conf

restore_command = 'cp /archive/%f %p'

5. Запустите PostgreSQL:

bash

systemctl start postgresql

Если вы укажете recovery_target_time, можно вернуть данные к точному моменту.

⚙️ Узнайте, как эффективно сделать бэкап базы данных PostgreSQL с помощью pg_dump, pg_basebackup и WAL →

Как из бэкапа восстановить данные: важные советы

1. Проверьте путь к файлу .bak — он должен быть доступен серверу

2. Убедитесь, что вы используете ту же версию PostgreSQL, с которой создавался файл резервной копии

3. При восстановлении через pg_restore возможно указать только нужные таблицы, функции или схемы — для частичного восстановления

4. Делайте восстановление базы данных резервной копии restore на тестовом стенде перед применением в продакшене

«Резервное копирование — это не просто техническая задача, а основа устойчивости ИТ-инфраструктуры и бизнеса. В Хайстекс мы помогаем компаниям выстроить процесс так, чтобы восстановление базы данных происходило быстро, точно и без потери данных», — говорит Александр Шукевич, директор по продажам и технический специалист Хайстекс.

Частые ошибки и как их избежать

Ошибка Решение
Файл не найден Проверьте, правильно ли указан путь к файлу резервной копии
Недостаточно прав Используйте встроенную учетную запись администратора владельца
Ошибка формата Убедитесь, что вы используете подходящую версию PostgreSQL
Нет доступа к архивам WAL Проверьте конфигурацию archive_command и путь к архивам

Коротко о главном

Теперь вы знаете:

  • Как сделать бэкап базы данных с помощью pg_dump и pg_basebackup
  • Как восстановить базу данных из бэкапа, выбрав нужный способ
  • Как настроить резервное копирование на сервере и автоматизировать процесс

Вы можете создать резервную копию рабочей базы в любой момент и быть уверены, что в случае сбоя или переноса на новый сервер — данные будут восстановлены.

А решение «Хайстекс Акура» поможет:

📌 Настроить резервное копирование SQL-баз

📌 Сохранять копии как на локальные, так и в облачные хранилища

📌 Автоматизировать процессы восстановления

📌 Учитывать особенности высоконагруженных систем и гибко управлять политиками хранения

Если вы хотите построить надёжную и удобную систему backup восстановление базы данных, обратитесь к нашим специалистам — мы поможем восстановить базу даже в самых сложных случаях.

Хотите восстанавливать данные бизнес-приложений, инфраструктуру за минуты и платить меньше за хранение?

Запишитесь на демо Хайстекс Акура с настройкой под вашу инфраструктуру и оцените эффективность работы решения на практике

Спасибо за заявку

Мы с Вами свяжемся в ближайшее время

Мы не передаём ваши персональные данные третьим лицам и используем их только для связи по вашему запросу. Отправляя форму, вы соглашаетесь на обработку персональных данных.

Будьте в курсе наших новостей и обновлений продукта 

Спасибо, что подписались на нашу рассылку!

Нажимая на кнопку “Подписаться”, вы даёте своё согласие на обработку персональных данных и получение информации о продуктах посредством рассылок 

Узнать больше о Хайстекс Акура

DR/СРК и миграция для Сбербанка с помощью Хайстекс Акура

Как Хайстекс мигрирует критически важные для бизнеса рабочие нагрузки Сбербанка в одну платформу виртуализации для распределения нагрузки и возможности скалирования ресурсов

Программное решение Хайстекс Акура

Узнайте больше о главных преимуществах продукта Хайстекс Акура, ключевыx этапах процесса миграции, возможностях аварийного восстановления (disaster recovery) и системе резервного копирования

DR/СРК и миграция в Яндекс.Облако с помощью Хайстекс Акура

Как Хайстекс помог Яндекс.Облако повысить безопасность и надежность ИТ-инфраструктуры и улучшить стратегию миграции рабочих нагрузок клиентов