Сценарий предназначен для избирательного создания ротационных резервных копий баз данных по дисциплине 2-1 (2 копии, одна на другом физическом диске, другая на компьютере вне серверной комнаты) в форматах custom и/или plain кластера PostgreSQL, а также глобальных свойств кластера: пользователи, пароли и т.д.
Используется стандартная форма запуска скрипта с конфигурационным файлом:
/путь_к_pg_backup_rotated/pg_backup_rotated.sh -с
/путь_к_pg_backup.config/pg_backup.config
При размещении файла конфигурации в одном каталоге с скриптом команду запуска можно сократить до: /путь_к_pg_backup_rotated/pg_backup_rotated.sh или
./pg_backup_rotated.sh
Предполагается, что сценарий будет выполняться по расписанию во время (например, ночью) когда нагрузка на сервер минимальна в качестве задания планировщика cron или аналогичного.
Краткая помощь выводится по параметрам -h или --help
Данный файл pg_backup.config содержит очевидные параметры архивирования.
В сценарий pg_backup_rotatedv.sh v.5 добавлены средства очистки баз данных и обновление статистики оптимизатора запросов. Чтобы эти средства сработали надо позаботиться об автоматической подстановки пароля учетки postgres через файл .pgpass
#Содержание файла pg_backup.config
# Список имен актуальных баз, перечисленных через пробел (в ввиде массива).
# Если параметр опущен, Будут сделаны резервные копии всех баз кластера.
LIST_ACTUAL_BASES=("zrp-lpk")
# Имя файла, журнала с диагностическими сообщениями.
# По умолчанию - backup.log
LOG_FILE=log_file
# Имя (login) системного пользователя под котором должен выполняться сценарий.
# Оставьте postgres. Умолчания нет.
BACKUP_USER=postgres
# Имя компьютера с базами данных. Оставьте неопределенным, для localhost.
HOSTNAME=
# Имя (login) пользователя для подключения к базам данных.
# Умолчания нет.
USERNAME=postgres
# Каталог для записи архивов в виде/dir/subdir/. У пользователя USERNAME должны быть
# права на запись.
# Каталог будет создан сценарием, если не существовал до его запуска.
BACKUP_DIR=/tmp/backup-2/
# Каталог для размещения копии архивов. Разумно расположить на другом компьютере. Если
# копирование не предусматривается, оставьте параметр пустым. У пользователя USERNAME
# должны быть права на запись в этот каталог.
# Каталог до выполнения сценария должен существовать и примонтирован.
ARCHIVE_COPY_DIR=/tmp/backup/
# Если "yes" формат архива буде custom. Если "no" архив в формате custom не создается.
ENABLE_CUSTOM_BACKUPS=yes
# Если "yes" формат архива будет plain. Если "no" архив в формате plain не создается.
# По умолчанию "no"
ENABLE_PLAIN_BACKUPS=no
# Если "yes" будет создан gzipped sql файл, содержащий глобальные свойства кластера:
# пользователи, пароли и т.д.
# По умолчанию "no"
ENABLE_GLOBALS_BACKUPS=no
# Если "yes" будет очистка и оптимизация баз, если "no" не будет.
# По умолчанию - yes
VACUUM_ENABLED=
#### Параметры для ротации архивов.####
# Количество месячных архивов.
# по умолчанию - 12
MONTH_TO_KEEP=12
# День недели, когда создаются недельные архивы (1-7: понедельник - воскресение).
# По умолчанию -пятница/
DAY_OF_WEEK_TO_KEEP=5
# Количество дней для хранения ежедневных архивов.
# По умолчанию - 7
DAYS_TO_KEEP=3
# Количество недель для хранения еженедельных архивов.
# По умолчанию - 4
WEEKS_TO_KEEP=5
######################################
Вступайте в нашу телеграмм-группу Инфостарт
