Скрипт создания бекапа и выполнения регламентных операций с базой
/root/backup.sh
#!/bin/sh
# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M"`
# Записываем информацию в лог с секундами
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup Cloud_ka_2" >> /root/service_bkp.log
# Бэкапим базу данных base1c и сразу сжимаем
/usr/bin/pg_dump -U postgres Cloud_KA_2 | pigz > /root/backup/$DATA-Cloud_KA_2.sql.gz
echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup Cloud_ka_2" >> /root/service_bkp.log
sleep 2
# Записываем информацию в лог
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuum Cloud_KA_2" >> /root/service_bkp.log
# Выполняем очистку и анализ базы данных
/usr/bin/vacuumdb --full --analyze --username postgres --dbname Cloud_KA_2
echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuum Cloud_KA_2" >> /root/service_bkp.log
sleep 2
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex Cloud_KA_2" >> /root/service_bkp.log
# Переиндексирвоать базу
/usr/bin/reindexdb --username postgres --dbname Cloud_KA_2
echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex Cloud_KA_2" >> /root/service_bkp.log
# Удаляем в папке с бэкапами архивы старше 7-х дней
/usr/bin/find /root/backup -type f -mtime +7 -exec rm -rf {} \;
Восстановление из бекапа в новую БД:
ls -la /root/backup
Выберем подходящий архив и разархивируем
unpigz -c /root/backup/2017-02-19_16-23-Cloud_KA_2.sql.gz > /root/backup/Cloud_KA_2.sql
Создаем новую базу базу
createdb --username postgres -T template0 Cloud_KA_2_restored
Заливаем в созданную базу
psql -U postgres Cloud_KA_2_restored < /root/backup/Cloud_KA_2.sql
p.s. для сжатия резервной копии используем pigz. На Centos ставится так
# yum -y install epel-release # yum -y install pigz по материалам
https://serveradmin.ru/bekap-i-vosstanovlenie-bazyi-1s-v-bd-postgresql/