Postgres backup by windows

Содержание
  1. Резервное копирование PostgreSQL
  2. Создание резервных копий
  3. Базовая команда
  4. Пользователь и пароль
  5. Сжатие данных
  6. Скрипт для автоматического резервного копирования
  7. На удаленном сервере
  8. Дамп определенной таблицы
  9. Размещение каждой таблицы в отдельный файл
  10. Только схемы
  11. Только данные
  12. Использование pgAdmin
  13. Не текстовые форматы дампа
  14. Создание бэкапа базы PostgreSQL для Windows
  15. Резервное копирование PostgreSQL
  16. Преимущества эффективного резервного копирования базы PostgreSQL
  17. Горячее резервное копирование базы данных PostgreSQL
  18. Автоматический выбор данных PostgreSQL
  19. Использование резервных копий PostgreSQL для клонирования и репликации
  20. Другие возможности для бэкапа базы PostgreSQL с Handy Backup
  21. Handy Backup Office Expert
  22. Как выполнить резервное копирование базы данных PostgreSQL с Handy Backup?
  23. Как восстановить данные PostgreSQL из бэкапа
  24. Видео-урок: Как создать бэкап и восстановление PostgreSQL
  25. Информация об приобретении
  26. Handy Backup Office Expert

Резервное копирование PostgreSQL

В данной инструкции рассмотрены варианты создания резервных копий и восстановления баз СУБД PostgreSQL.

Все команды, которые приводятся ниже, должны выполняться из командной строки. В Linux — это окно терминала, в Windows — командная строка (cmd.exe) с переходом в папку установки PostgreSQL.

Создание резервных копий

Базовая команда

pg_dump users > /tmp/users.dump

Пользователь и пароль

Если резервная копия выполняется не от учетной записи postgres, необходимо добавить опцию -U с указанием пользователя:

pg_dump -U dmosk -W users > /tmp/users.dump

* где dmosk — имя учетной записи; опция W потребует ввода пароля.

Сжатие данных

Для экономии дискового пространства или более быстрой передачи по сети можно сжать наш архив:

pg_dump users | gzip > users.dump.gz

Скрипт для автоматического резервного копирования

Рассмотрим 2 варианта написания скрипта для резервирования баз PostgreSQL. Первый вариант — запуск скрипта от пользователя root для резервирования одной базы. Второй — запуск от пользователя postgres для резервирования всех баз, созданных в СУБД.

Для начала, создадим каталог, в котором разместим скрипт, например:

Вариант 1. Запуск от пользователя root; одна база.

PGPASSWORD=password
export PGPASSWORD
pathB=/backup
dbUser=dbuser
database=db

find $pathB \( -name «*-1[^5].*» -o -name «*-[023]?.*» \) -ctime +61 -delete
pg_dump -U $dbUser $database | gzip > $pathB/pgsql_$(date «+%Y-%m-%d»).sql.gz

* где password — пароль для подключения к postgresql; /backup — каталог, в котором будут храниться резервные копии; dbuser — имя учетной записи для подключения к БУБД; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После при помощи утилиты pg_dump будет выполнено подключение и резервирование базы db. Пароль экспортируется в системную переменную на момент выполнения задачи.

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Вариант 2. Запуск от пользователя postgres; все базы.

find $pathB \( -name «*-1[^5].*» -o -name «*-[023]?.*» \) -ctime +61 -delete

for dbname in `echo «SELECT datname FROM pg_database;» | psql | tail -n +3 | head -n -2 | egrep -v ‘template0|template1|postgres’`; do
pg_dump $dbname | gzip > $pathB/$dbname-$(date «+%Y-%m-%d»).sql.gz
done;

Читайте также:  Какие есть linux ubuntu

* где /backup — каталог, в котором будут храниться резервные копии; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После найдет все созданные в СУБД базы, кроме служебных и при помощи утилиты pg_dump будет выполнено резервирование каждой найденной базы. Пароль нам не нужен, так как по умолчанию, пользователь postgres имеет возможность подключаться к базе без пароля.

Необходимо убедиться, что у пользователя postgre будет разрешение на запись в каталог назначения, в нашем примере, /backup/postgres.

Зададим в качестве владельца файла, пользователя postgres:

chown postgres:postgres /scripts/postgresql_dump.sh

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

crontab -e -u postgres

* мы откроем на редактирование cron для пользователя postgres.

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Права и запуск

Разрешаем запуск скрипта, как исполняемого файла:

chmod +x /scripts/postgresql_dump.sh

Единоразово можно запустить задание на выполнение резервной копии:

. или от пользователя postgres:

su — postgres -c «/scripts/postgresql_dump.sh»

На удаленном сервере

Если сервер баз данных находится на другом сервере, просто добавляем опцию -h:

pg_dump -h 192.168.0.15 users > /tmp/users.dump

* необходимо убедиться, что сама СУБД разрешает удаленное подключение. Подробнее читайте инструкцию Как настроить удаленное подключение к PostgreSQL.

Дамп определенной таблицы

Запускается с опцией -t или —table= :

pg_dump -t students users > /tmp/students.dump

* где students — таблица; users — база данных.

Размещение каждой таблицы в отдельный файл

Также называется резервированием в каталог. Данный способ удобен при больших размерах базы или необходимости восстанавливать отдельные таблицы. Выполняется с ипользованием ключа -d:

pg_dump -d customers > /tmp/folder

* где /tmp/folder — путь до каталога, в котором разместяться файлы дампа для каждой таблицы.

Только схемы

Для резервного копирования без данных (только таблицы и их структуры):

pg_dump —schema-only users > /tmp/users.schema.dump

Только данные

pg_dump —data-only users > /tmp/users.data.dump

Использование pgAdmin

Данный метод хорошо подойдет для компьютеров с Windows и для быстрого создания резервных копий из графического интерфейса.

Запускаем pgAdmin — подключаемся к серверу — кликаем правой кнопкой мыши по базе, для которой хотим сделать дамп — выбираем Резервная копия:

В открывшемся окне выбираем путь для сохранения данных и настраиваемый формат:

При желании, можно изучить дополнительные параметры для резервного копирования:

После нажимаем Резервная копия — ждем окончания процесса и кликаем по Завершено.

Не текстовые форматы дампа

Другие форматы позволяют делать частичное восстановление, работать в несколько потоков и сжимать данные.

Создание бэкапа базы PostgreSQL для Windows

В PostgreSQL есть утилита, которая создает дамп базы данных и называется она pg_dump. Для того чтобы автоматизировать процесс создания бэкапов баз PostgreSQL нужно будет создать bat-файл, который будет вызывать утилиту pg_dump и вызывать его с помощью планировщика заданий. Результатом выполнения такого сценария будет ежедневное копирование базы данных PostgreSQL, ведение журнала с информацией о датах и результатах выполнения, сохранение подробных сведений о ходе выполнения каждой резервной копии в отдельный текстовый файл и в случае неудачи отображение диалогового окна с сообщением. Содержимое bat-файла следующее:

Читайте также:  Windows 10 enterprise ltsb x86 x64 beslam edition marc

Справочную информацию о командах, испульзуемых в этом файле можно получить из командной строки набрав следующую команду: «[Имя команды] /?»
Многие использованные здесь команды достаточно распространены и известны, поэтому хочется акцентировать внимание на нескольких менее известных.

Строки 15, 16 выполняют переход в папку в которой находится файл «backup.bat». «%0» возвращает имя bat-файла; «%

dp0″ возвращают соответственно диск и путь к bat-файлу. Подробные сведения о работе с параметрами файла можно посмотреть по этой ссылке.

В строке 19 формируется строковое представление даты и времени в нужном формате. При формировании происходит обращение к переменным окружения DATE и TIME, которые хранят текстовое представление даты и времени соответственно. После имени переменной указывается строка вида «:

m,n», где m — позиция в строке, n — количество символов.

В строке 27 вызывается утилита резервного копирования pg_dump.exe. Вызов выполняется с применением команды CALL, это позволяет дождаться завершения утилиты и проанализировать результат выполнения. Вызов утилиты завершается строкой «2>%LOGPATH%». Эта строка означает что поток ошибок STDERR, номер которого 2, приложения pg_dump.exe перенаправляется в файл, имя которого сохранено в переменной окружения LOGPATH. Так как приложение pg_dump.exe выводит все сообщения в стандартный поток ошибок, то в файле LOGPATH будет сохранен подробный отчет о выполнении резервного копирования.

В строках 37 и 42 выполняется перенаправление вывода в файл backup.log. Перенаправление осуществляется оператором «>>». Различие между операторами «>» и «>>» в том, что первый каждый раз создает новый файл, затирая ранее записанные данные, а второй — дописывает данные в существующий файл. Таким образом можно вести журнал с подробными сведениями о результатах резервного копирования.

Проверяем как работает bat-файл. Если дампы базы создаются, то можно приступать к созданию задачи для планировщика заданий Windows.
Создаем задание, которое будет запускать bat-файл каждый день в ночное время.

Ежедневные бэкапы со временям породят проблему свободного пространства на жестком диске. Можно чистить ручками, но лучше уж автоматизацию сделать полной. Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows.

Содержимое bat-файла такое:

Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней.
В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю.

Резервное копирование PostgreSQL

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

Версия 8.2.3 от 29 марта 2021. 111 MB
30-дневный полнофункциональный пробный период

Преимущества эффективного резервного копирования базы PostgreSQL

Горячее резервное копирование базы данных PostgreSQL

Handy Backup копирует информацию из таблиц PostgreSQL без остановки работы сервера СУБД. Все транзакции во время бэкапа производяттся как обычно, сохраняя общую производительность работы сервера PostgreSQL.

Автоматический выбор данных PostgreSQL

Handy Backup позволяет автоматически извлекать данные из баз, схем, процедур и настроек PostgreSQL с помощью единого плагина бэкапа PostgreSQL. Плагин полностью автоматизирован и не требует вмешательства в работу СУБД.

Читайте также:  Кодировщик для windows media

Использование резервных копий PostgreSQL для клонирования и репликации

Бэкап базы PostgreSQL с Handy Backup позволяет сохранять таблицы в виде последовательности команд SQL, что даёт возможность открывать, читать, модифицировать и клонировать данные прямо из копии, без восстановления. Также можно настроить репликацию PostgreSQL.

Другие возможности для бэкапа базы PostgreSQL с Handy Backup

В дополнение к вышеприведённому списку ключевых преимуществ, Handy Backup предоставляет множество других функций, удобных при создании резервной копии PostgreSQL. Этот список возможностей включает такие вещи, как:

  • Множество поддерживаемых хранилищ данных (NAS, FTP, облака и т.д.);
  • Бэкап PostgreSQL по расписанию;
  • Копирование по событию, например, при соединении с диском USB;
  • Выбор типа бэкапа и настройка временных меток;
  • Мультиплатформенность: работа на Windows и под Linux;
  • Функции управления: запуск в режиме службы или отправка уведомлений.

Рекомендуемое решение
9200 ₽ за лицензию

Handy Backup Office Expert

С Handy Backup Office Expert вы можете создавать резервное копирование, а также выполнять восстановление баз PostgreSQL из резервных копий на одном сервере. Бесплатный пробный период — 30 дней!

Как выполнить резервное копирование базы данных PostgreSQL с Handy Backup?

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

  1. Откройте Handy Backup, создайте новую задачу резервного копирования.
  2. Выберите плагин PostgreSQL на Шаге 2 в группе Database.
  3. Если у вас ещё нет конфигурации PostgreSQL, то нажмите по «Создать подключение».
  4. Войдите в диалог создания конфигурации PostgreSQL и введите ваши входные данные.

  1. Зарегистрировав новую конфигурацию, выберите её и войдите в список данных.
  2. Отметьте нужные данные PostgreSQL для резервного копирования.

  1. На Шаге 3 выберите подходящее хранилище для вашей резервной копии PostgreSQL.
  2. Продолжайте создавать задачу резервного копирования в соответствии с руководством.
  3. На последнем шаге дайте задаче запоминающееся имя, например, PostgreSQL Backup и нажмите Готово.

Внимание: у вас должны быть достаточные пользовательские привилегии для выполнения оператора PostgreSQL SELECT, используемого инструментом бэкапа.

Как восстановить данные PostgreSQL из бэкапа

Handy Backup сохраняет резервные копии PostgreSQL в виде обычных таблиц, позволяющих копировать, модифицировать и использовать их без восстановления. Handy Backup позволяет создавать задачи восстановления данных PostgreSQL из копий в исходное или новое место.

Видео-урок: Как создать бэкап и восстановление PostgreSQL

В этом видео показана пошаговая инструкция по настройке дифференциального резервного копирования PostgreSQL, а также восстановление базы из резервной копии с Handy Backup.

Примечание: В данном видео предполагается, что Handy Backup уже установлена на вашем компьютере. Если это не так, скачайте и установите программу перед изучение видеоролика.

Версия 8.2.3 от 29 марта 2021. 111 MB
30-дневный полнофункциональный пробный период

Информация об приобретении

Резервное копирование БД PostgreSQL доступно в двух решениях Handy Backup:

Handy Backup Office Expert

Решение Office Expert подходит для резервного копирования баз данных PostgreSQL на одном ПК.

Оцените статью