Скрипт создания бекапа и выполнения регламентных операций с базой
/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 по материалам
Бэкап и восстановление базы 1С в бд postgresql, обслуживание базы