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

13.08.19

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

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

Файлы

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

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

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

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

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

Скрипт тестировался на 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 1C:Бухгалтерия Платные (руб)

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

5010 руб.

03.09.2014    17598    31    6    

37

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

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

12000 руб.

19.02.2025    1171    1    0    

1

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

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

20.01.2025    2160    Prelude    5    

11

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

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

2400 руб.

27.08.2024    2497    1    6    

2

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

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

13.08.2024    6161    1CUnlimited    9    

6

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

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

1 стартмани

21.05.2024    3289    14    DenDev1C    4    

8

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

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

04.12.2023    14631    n_mezentsev    15    

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