Восстановление SQL-дампа БД

Текстовые файлы, создаваемые pg_dump, предназначены для чтения программой psql. Восстановление дампа производится командой, общий вид которой представлен ниже:

psql dbname < infile

где infile - это имя файла (или путь к нему), который указывался в качестве параметра outfile команды pg_dump.

Замечание: При запуске этой команды не создаётся БД dbname, поэтому её необходимо создать заранее из template0, прежде чем запускать psql (например, createdb -T template0 dbname).

Для psql подобно pg_dump можно задать сервер БД, с которым следует устанавливать соединение, и имя пользователя, под которым соединение будет установлено.

Перед восстановлением SQL-дампа, необходимо, чтобы существовали все учётные записи пользователей, являющихся владельцами объектов или имеющих права на объекты восстанавливаемой БД. Если их не будет, невозможно будет восстановить объекты с первоначальной принадлежностью и/или правами на них.

По умолчанию, если скрипт psql встретит SQL-ошибку, он всё равно продолжит работу. При желании, это можно изменить, добавив в самый верх скрипта следующую строчку:

\set ON_ERROR_STOP

После этого, при возникновении SQL-ошибки, приложение psql будет прерывать работу и выходить со статусом 3.

Ниже приводится описание процесса восстановления SQL-дампа БД «Деканат ВУЗа».

1. В командной строке PostgreSQL с помощью команды createdb –U username restoreDeanery создается новая БД (рисунок 9.10). В результате окно Браузер объектов pgAdmin III примет вид, показанный на рисунке 9.14.

Рисунок 9.14 – Создание новой БД

Рисунок 9.15 – Окно Браузер объектов

2. Затем необходимо создать роли для пользователей секретарь и декан (рисунки 9.16, 9.17).

3. После этого выполняется команда восстановления SQL-дампа БД (рисунок 9.18). Структура восстановленной БД в окне Браузер объектов будет выглядеть так, как показано на рисунке 9.15.

Рисунок 9.16 – Создание роли Декан (dean)

Рисунок 9.17 – Создание роли Секретарь (secretary)

Рисунок 9.18 – Восстановление SQL-дампа БД