Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Робота з PostgreSQL ВТиП.doc
Скачиваний:
52
Добавлен:
17.03.2016
Размер:
4.82 Mб
Скачать
    1. СозданиеSql-дампа бд

Идея создания SQL-дампа БД заключается в создании текстового файла с командами SQL INSERT(см. подраздел 9.3), с помощью которых на сервере можно воссоздать БД в реляционной СУБД любого производителя, что обеспечивает перенос БД между разными СУБД.

Примечание 1. В принципе pgAdmin III предусматривает создание SQL‑дампа, но на практике возникают некоторые ошибки при его восстановлении. С другой стороны менеджер PgMaestro хорошо выполняет работу по созданию и восстановлению SQL‑дампа, который восстанавливается и pgAdmin III.

    1. ВосстановлениеSql-дампа средствами pgAdmin III

Вызвать окно SQL–запроса.

Рисунок 9.8 –Вызов окна SQL–запроса

Выполнить поиск файла с SQL-дампом

Рисунок 9.9 – Выбор файла SQL-дампа

Открыть файл с SQL-дампом

Рисунок 9.10 – Открытие файла SQL-дампа

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

    1. Создание дампа с помощью утилит pg_dump или pg_dumpall

С целью демонстрации возможностей по созданию/восстановлению SQL‑дампа по глобальным сетям при установлении жестких ограничений на доступ к серверам только через SSL‑порт (Secure Sockets Layer - Протокол защищенных сокетов) далее для создания SQL-дампа БД в PostgreSQL будет применена утилита pg_dump.

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

pg_dump dbname > outfile,

где

dbname – имя БД на сервере,

outfile – имя нового файла, который будет содержать SQL-дамп БД.

Примечание 2. В качестве outfile можно указывать полный путь к файлу. По умолчанию новый файл будет создан в папке \bin каталога, куда был установлен PostgreSQL (например, c:\Program Files\PostgreSQL\8.3\bin\).

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

Чтобы указать, к какому серверу следует обратиться pg_dump, в командной строке используются опции -h host и -p port. В качестве хоста по умолчанию используется локальный компьютер или то, что указано в переменной окружения PGHOST. Аналогично, порт по умолчанию определяется переменной окружения PGPORT или, если это не удалось, значением по умолчанию, указанным при компилировании.

Как и любое другое клиентское приложение PostgreSQL, pg_dump по умолчанию будет устанавливать соединение с именем пользователя БД, соответствующим имени текущего пользователя операционной системы. Это можно изменить с помощью опции -U или заданием переменной окружения PGUSER. Следует также помнить, что соединения pg_dump подчиняются обычным механизмам аутентификации клиентов.

Дамп, создаваемый с помощью pg_dump, обладают внутренней связностью, поскольку дамп представляет собой "снимок БД" в состоянии на момент запуска pg_dump. Во время своей работы pg_dump не блокирует выполнение других операций. (Исключения составляют операции, требующие полной блокировки, среди которых почти все виды ALTER TABLE).

Примечание 3. Если схема БД основывается на использовании OID (например, в качестве внешних ключей), необходимо дать pg_dump указания включить OID в дамп. Для этого используется опция командной строки -o. Более подробно об опциях pg_dump см. [11].

В качестве примера приведем описание процесса создания SQL-дампа для БД «Деканат ВУЗа» с помощью командной строки.

  1. Запустить командную строку PostgreSQL (Пуск–>Программы–> PostgreSQL–>Командная строка). Или в Пуск–>Выполнить самостоятельно набрать команду или получить ее через Обзор

C:\Program Files\PostgreSQL\9.0\bin\pg_dump.exe

В результате будет получено окно, представленное на рисунке 9.12;

Рисунок 9.12 – Командная строка PostgreSQL

  1. Написать в командной строке следующую строку, после чего нажать Enter (рисунок 9.13):

pg_dump –U postgres Deanery > d:\BackUpDb\DeaneryBkUp

Рисунок 9.13 – Командная строка PostgreSQL

Примечание: Как было написано выше, pg_dump по умолчанию будет устанавливать соединение с именем пользователя БД, соответствующим имени текущего пользователя операционной системы, который может не быть суперпользователем этой БД. Поэтому необходимо явно указывать суперпользователя с помощью опции –U.

  1. Затем ввести пароль суперпользователя БД.