Резервное копирование и восстановление
Зачем это нужно?
Есть несколько случаев, когда вам может понадобиться резервное копирование и восстановление данных:
- Вам нужно перенести базу данных из контейнера в выделенный инстанс (что настоятельно рекомендуется при большом количестве тестов).
- Вам важны ваши данные и вы не хотите их потерять.
Мы настоятельно рекомендуем использовать выделенный инстанс базы данных, когда сервер базы данных работает на выделенной виртуальной машине или физическом сервере, а не в контейнере/поде. Иначе, скорее всего, вы столкнетесь с проблемами производительности.
Предварительное условие
Для развертывания через Docker Compose перед началом резервного копирования или восстановления данных остановите все контейнеры, которые не имеют -db_
в своих именах.
Резервное копирование базы данных
bash
pg_dump -c -U [POSTGRESQL_USER] > testops-backup.sql
где POSTGRESQL_USER
— имя пользователя PostgreSQL, вы можете найти его в конфигурационном файле.
Восстановление базы данных
Удалите существующую (предположительно пустую) базу данных:
shellpsql -U [POSTGRESQL_USER] -d postgres -c "DROP DATABASE testops"
Создайте пустую базу данных:
shellpsql -U [POSTGRESQL_USER] -d postgres -c "CREATE DATABASE testops"
Восстановите из ранее созданной резервной копии:
shellcat testops-backup.sql | psql -U [POSTGRESQL_USER] -d testops