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

13.08.19

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

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

Файлы

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

Наименование Скачано Купить файл
Универсальный скрипт резервного копирования Postgres (архивирует все базы сервера баз данных)
.sh 1,22Kb
7 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Скрипт тестировался на 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С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Полностью автоматизированная внешняя обработка для администрирования 1С: блокировка/разблокировка ИБ, массовое завершение сеансов, резервное копирование и восстановление из .dt, выгрузка/загрузка конфигурации (.cf), пакетная работа с расширениями (.cfe) и дополнительными обработками – всё через удобную форму без ручных запусков конфигуратора и консоли кластера

1 стартмани

21.01.2026    5749    56    war41k    0    

17

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    12390    nasonkin    18    

31

Архивирование (backup) Учет документов Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В текущих версиях 1С пока нет функции, позволяющей автоматически отмечать возврат оригиналов документов с помощью сканера штрих-кодов. Многие контрагенты часто сталкиваются с проблемой утери оригиналов УПД или их невозврата. В ответ на эти запросы было разработано расширение, которое упрощает контроль за возвратом оригиналов документов и помогает лучше организовать их хранение.

12200 руб.

19.02.2025    2683    3    0    

3

Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    4944    Prelude    5    

12

Архивирование (backup) 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

3 стартмани

27.08.2024    3854    1    a_kudaev    6    

2

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    9673    1CUnlimited    11    

6

Инструменты администратора БД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Обработка для "обновления" своей тестовой базы из резервной копии рабочей базы без помощи админов.

1 стартмани

21.05.2024    4608    16    DenDev01    4    

9

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

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

04.12.2023    18565    n_mezentsev    15    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oldcopy 177 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 208 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
Для отправки сообщения требуется регистрация/авторизация