Восстановление резервной копии

Описываемые методы могут быть использованы при ручном восстановлении отдельной БД или таблицы.

Если dump был выполнен в формате plain text, то для восстановления воспользуйтесь утилитой psql:

psql -U <role_name> -f backup.dump

Если dump был выполнен в формате custom, то возможно применение утилиты pg_restore. Для восстановления резервной копии отдельной базы данных или таблицы PostgreSQL выполните команду:

/usr/bin/pg_restore --username=<role_name> --dbname=<target_db> --host=localhost --port=5432 backup.dump

При ручном восстановлении нужно указать существующую базу данных для параметра --dbname.

Если в целевой БД уже есть таблица с тем же именем что и восстанавливаемая, то восстановление завершится ошибкой. Рекомендуется либо удалить таблицу, не позволяющую выполнить восстановление, либо выполнить восстановление в другую базу данных.

При восстановлении базы данных из резервной копии на исходный хост происходит замена имеющейся базы данных на восстановленную. При необходимости восстановить базу данных из резервной копии на другой хост, необходимо выбрать хост с установленным на нем PostgreSQL, табличным пространством и пользователем, соответствующим оригинальным в восстанавливаемой базе данных, и после этого выполнить восстановление.

Восстановление резервной копии возможно в базу данных с новым именем, но происходит в режиме data-only. Это означает, что восстанавливаются табличные данные, большие объекты и значения последовательностей, если они присутствуют в резервной копии.

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

Например, изменить владельца базы данных можно с помощью команды:

ALTER DATABASE <database_name> OWNER TO <new_owner>

Информацию об изменении прочих настроек можно найти в документации по PostgreSQL.