Универсальный скрипт резервного копирования Postgres, архивирует все базы сервера баз данных

13.08.19

База данных - Архивирование (backup)

Предлагаю использовать универсальный скрипт резервного копирования Postgres, архивирует все базы сервера баз данных, архивируются все добавленные базы, ведется лог архивирования, контролируется глубина архива. Скрипт тестировался на PostgreSQL 10.5 CentOS Linux release 7.6.1810

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Универсальный скрипт резервного копирования Postgres (архивирует все базы сервера баз данных)
.sh 1,22Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

Скрипт тестировался на PostgreSQL 10.5 CentOS Linux release 7.6.1810

 

Текст скрипта:

 

#!/bin/sh
#Export postgres connection parameters
source /usr/local/etc/pgsql_funcs.conf

DATA=`date +"%Y-%m-%d_%H-%M"`
DATEFMT="%Y-%m-%d_%H-%M-%S"
GETDB="select datname from pg_database where datistemplate = 'f';"
SERVICELOG="/home/postgres/BACKUP/service.log"
BACKUPPATH="/home/postgres/BACKUP/files"
COUNT=0
TOTALCOUNT=0

echo "Start execution of backup databases script at ${DATA}" #>> ${SERVICELOG}

RESULT=$(/usr/bin/psql -h $PGHOST -p $PGPORT -U $PGROLE -d $PGDATABASE -t -c "${GETDB}" 2>&1)
if [ $? -ne 0 ]; then
    echo "${RESULT}"
    exit
fi

for dbname in ${RESULT}; do
  TOTALCOUNT=$[$TOTALCOUNT +1]
  echo "`date +${DATEFMT}` Start backup ${dbname}" #>> ${SERVICELOG}
  /usr/bin/pg_dump -U $PGROLE ${dbname}| pigz > $BACKUPPATH/$DATA-${dbname}.sql.gz 2>&1
  if [ $? -ne 0 ]; then
    echo "Failed to backup ${dbname}" #>> ${SERVICELOG}
    continue
  else  
    echo "`date +${DATEFMT}` End backup ${dbname}" #>> ${SERVICELOG}
    COUNT=$[$COUNT +1]
  fi  
done    

/usr/bin/find $BACKUPPATH -type f -mtime +20 -exec echo "Removing outdated backup file: {}" \; -exec rm -f {} \;

echo "End execution of backup databases script at `date +${DATEFMT}`" #>> ${SERVICELOG}
echo "${COUNT} of ${TOTALCOUNT} databases backed up" #>> ${SERVICELOG}
 

См. также

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72810    627    45    

85

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    15712    21    6    

27

Архивирование (backup) Администрирование СУБД Системный администратор Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    9453    n_mezentsev    15    

27

Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    28677    sapervodichka    37    

147

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    5737    3    Gnom-Gluck    6    

7

Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4693    3    Giblarium    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oldcopy 174 13.08.19 23:48 Сейчас в теме
Все хорошо, но только есть одно замечание:

/usr/bin/find $BACKUPPATH -type f -mtime +20 -exec echo "Removing outdated backup file: {}" \; -exec rm -f {} \;


Если вдруг что-то пойдет не так и копии перестанут делаться - то через некоторое время вы останетесь без бекапов вообще. На мой взгляд лучше оставлять N последних копий, чем копии за N последних дней.
plazotronik; gigapevt; AllexSoft; oninfostart; +4 Ответить
2. neyasytyf 14.08.19 10:41 Сейчас в теме
По этой ссылке есть информация для случаев когда конфигурация через pg_dump не выгружается.
3. premierex 204 14.08.19 10:48 Сейчас в теме
(0) И ещё одно пожелание: перед созданием резервной копии выполнять очистку от "мусора" - /usr/bin/psql -d $dbname -c "VACUUM FULL ANALYZE;"
4. ametjan 14.08.19 18:20 Сейчас в теме
Если у вас маленькие базы, то вакуум фул не рентабельно, а если много и большие, то вместо скрипта юзать пора барман
5. user1088986 23.01.22 12:54 Сейчас в теме
Рубрика вредные советы) делать "бэкапы", а правильнее говорить дампы базы плохая затея.
6. tok21 28.09.22 06:27 Сейчас в теме
Подскажите, как правильно восстанавливать базу при использовании данного скрипта?
7. rintik 19 28.09.22 09:35 Сейчас в теме
(6)Настройка непрерывного архивирования в PostgreSQL https://its.1c.ru/db/metod8dev#content:5947:hdoc
8. tok21 29.09.22 05:28 Сейчас в теме
(7) Вопрос восстановления относительно текущей статьи, как восстановить архив pg_dump, заархивированный pigz. Обязательно ли предварительно разархивировать его или можно передать команде pg_restore данные непосредственно при разархивировании, что бы не тратить время?
9. solaru 72 29.09.22 09:12 Сейчас в теме
(8) Восстановить можно так, разархивировать надо

Создадим базу demotest (если еще не создана)

$ sudo su - postgres
$ createdb --username postgres -T template0 demotest

Восстановим в базу demotest:

$ psql -l
$ unpigz -c /home/user/test/backup/demo.sql.gz > /home/user/test/backup/demo.sql
$ psql demotest < /home/user/test/backup/demo.sql
Оставьте свое сообщение