Данный урок посвящен архивированию базы данных СУБД PostgreSQL или, проще говоря «Созданию Backup базы». Сегодня мы научимся создавать архивы двумя способами это через графический интерфейс pgAdmin и через командную строку.
В последнее время мы стали больше время уделять SQL серверу от Microsoft, но PostgreSQL остается также популярен, поэтому мы возвращаемся к нему и будем рассматривать одну из главных задач системных администраторов это архивирование базы. Почему из главных задач, да потому что если у Вас накроется сервер или просто Вы сами случайно что-то натворите в базе (к примеру удалите ее:)) и у Вас не будет архива то пиши пропало, в общем это не есть хорошо.
Если говорить о MSSql то на этом сайте уже затрагивалась тема восстановления базы в статье Как восстановить базу данных из архива — MS SQL Server 2000.
Также хотелось бы посоветовать Вам, всегда делать архивы практически всего, и баз, и файлов пользователей на файловом сервере, и перед внесением изменений в реестр Windows также резервировать ветки реестра, так как этим Вы себя обезопасите от всех нежелательных последствий, так как в случае чего Вы всегда можете вернуть все на место.
Примечание! Все примеры будут выполняться на локальном сервере под управлением операционной системе Windows 7 профессиональная. Версия PostgreSQL 8.4. Версия pgAdmin 1.10.1.
Как уже было отмечено ранее, мы научимся создавать backup базы двумя способами, их отличия лишь в том, что через графический интерфейс Вы будете действовать мышкой, а через командную строку будете писать команды вручную на клавиатуре, а весь остальной принцип абсолютно одинаковый, так как все будет выполняться через специальную утилиту pg_dump.exe которая входит в пакет приложений PostgreSQL. Ну что давайте приступать.
Создаем архив базы через графический интерфейс pgAdmin
И для начала давайте определимся с тем, что мы будем архивировать, а архивировать мы будем тестовую базу с названием test.
Открываем pgAdmin, подключаемся к серверу, плюсиком раскрываем базы, и выбираем правой кнопкой мыши ту базу, которую хотим заархивировать (в нашем случае test), и жмем «Резервная копия»
Затем у Вас откроется окно, где Вы можете задать настройки backup, я выставил следующие настройки, в принципе эти настройки по умолчанию, единственное необходимо выбрать папку, т.е. задать путь к ней, в которую будет создаваться архив нашей базы данных, для примера я ввел диск C папка temp и задать имя будущего архива, я назвал test_ backup. Далее жмем «ОК»
После, через некоторое время, в зависимости от размера базы данных, у Вас будет создан backup Вашей базы, и откроется окно с подробными сообщениями всех операций в процессе архивирования. И если Вы в данном окне поднимитесь вверх и посмотрите, самую первую операцию то увидите ту самую команду, которую мы будем запускать в командной строке и в бат файле, другими словами pgAdmin это просто сделал за Вас. В конце жмем «Завершено»
Создаем архив базы через командную строку
Данный способ понадобится Вам в случае быстрого запуска процесса архивирования и для автоматизации этого процесса, путем написания батника и создания задания в «Планировщике заданий». Поэтому еще раз запускать эту команду не будем через командную строку, а сразу напишем батник. Что это такое можете почитать в статье – Написание bat файлов — Примеры батников.
Для этого мы просто скопируем ту строку, которая показана на предыдущем скриншоте, но с небольшими изменениями, а именно, мы путь к pg_dump.exe напишем с кавычками, так как в данном пути присутствуют папки с названием из двух слов с пробелами (Program Files) и для того чтобы потом отличать этот архив от других, предполагается, что допустим он должен выполняться ежедневно, добавим к названию нашего архива текущую дату, используя системную переменную %date%. В итоге у нас должно получиться вот так:
"C:/Program Files/PostgreSQL/8.4/bin\pg_dump.exe" ^ --host localhost --port 5432 --username postgres ^ --format custom --blobs --verbose --file "C:\temp\%date%_test_backup.backup" test
Сразу скажу, чтобы не было вопросов, последний символ (^) в первых двух строках это перенос строки, я сделал это для удобства, что бы строки были по короче, а Вы в свою очередь можете оставить как есть или просто удалить эти символы, да, кстати, возьмите себе на вооружение данный символ переноса строки, иногда бывает полезен, как в данном случае.
Остальное я думаю все понятно, сначала мы запускаем специальную утилиту (первая строка), затем подключаемся к серверу (host, port, username – вторая строка) и в третей строке мы уже создаем backup с параметрами, указываем путь, название архива и только в самом конце название базы данных которую необходимо заархивировать (test).
Теперь все это копируем в блокнот, советую пользоваться Notepad++, и сохраняем с любым названием, но с расширением .bat, т.е. командный файл. И все, теперь, для ежедневного автоматического создания архива настраиваете, планировщик Windows и у Вас каждый день будет создаваться backup.
Заметка! Как перенести базу данных PostgreSQL на другой сервер с помощью pgAdmin 4.
На сегодня это все, ничего сложного в создании архива базы PostgreSQL нет, поэтому проблем возникнуть не должно. Удачи!