Как настроить резервное копирование баз СУБД PostgreSQL в Linux
Перейти к навигации
Перейти к поиску
Вопрос:
Как настроить резервное копирование баз СУБД PostgreSQL в Linux?
Ответ:
Для резервного копирования базы СУБД используются скрипты, написанные с применением синтаксиса shell. Скрипты пишутся в файлах с форматом *.sh в любом текстовом редакторе. Ниже представлен готовый скрипт резервного копирования с задаваемыми параметрами
# Переменная текущей даты с часом DATE=$(date +%Y%m%d%H) # Имя администратора СУБД, от имени которого выполняется подключение PG_USER=postgres # Пароль администратора СУБД PG_PASS=postgres # Пусть к резервным копиям PG_LOCAL_PATH=/path/to/backup # Основной скрипт резервной копии с обработкой в качестве параметра имени базы данных backup() { # Получаем из параметра имя базы данных PG_DB_NAME=$1 # Формируем имя файла копии DB_SQL=${PG_DB_NAME}_${DATE}.sql.gz # Выполняем выгрузку копии базы с одновременным сжатием pg_dump --dbname=postgresql://$PG_USER:$PG_PASS@localhost:5432/$PG_DB_NAME | gzip > $PG_LOCAL_PATH/$DB_SQL } # Очистка от старых копий старше 2 дней for i in $(find $PG_LOCAL_PATH -type f -mtime +1 -name "*.sql.gz" -print); do rm $i done # Для вызова последовательного копирования база за базой достаточно вызвать скрипт здесь же backup my_base_1 backup my_base_2
Для настройки автоматического резервного копирования нужно под учетной записью пользователя в консоли выполнить команду crontab -e
, затем внести запись в параметры фоновых операций
0 2 * * * /path/to/script/backup.sh
В конце файла обязательно оставить пустую строку. В данном примере указано что каждый день в 2 часа ночи будет запускаться скрипт.