Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
![](https://1s-on.ru/wp-content/uploads/2021/11/1c_pg_pitr.png)
Для чего необходимо настраивать непрерывное архивирование базы данных?
Для того, чтобы:
- иметь возможность восстанавливать копию базы данных на произвольный момент времени.
- в случае сбоя не терять драгоценные часы данных.
1. Знакомимся с каталогами хранения данных и бэкапов.
2. Настраиваем очистку устаревших файлов бэкапов.
3. Устанавливаем параметры непрерывного архивирования PostgresPro 11.
4. Включаем непрерывное архивирование.
Описание дается для ОС CentOS 7.8.Описание дается для ОС CentOS 7.8.
Знакомимся с каталогами хранения данных и бэкапов.
Каталоги кластера СУБД PostgresPro:
/pgpro/db/ — каталог кластера;
/pgpro/db/pg_wal/ — каталог wal-логов кластера;
Каталоги бэкапов кластера СУБД PostgresPro:
/pgpro/backup/day/ — каталог полного бэкапа кластера;
/pg_log_arch/day/ — каталог дневного бэкапа wal-логов;
/pg_log_arch/archive/ — каталог архивов бэкапов wal-логов.
Данные каталоги предварительно создаем и монтируем.
Настраиваем очистку устаревших файлов бэкапов PostgresPro 11.
Для настройки понадобится два скрипта:
-
backup_prod.sh
-
backup_wal_archive.sh.
Скрипт удаления старого и формирования нового полного бэкапа кластера backup_prod.sh следующего содержания:
1 2 3 |
rm –f /pgpro/backup/day/* /opt/pgpro/ent-11/bin/pg_basebackup –D /pgpro/backup/day –z -Ft |
Удаляет предыдущий полный бэкап.
Создает новый полный бэкап.
Скрипт архивирования удаления старых логов backup_wal_archive.sh следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 |
last_file="/pg_log_arch/archive/archive-2.tar.gz" current_file="/pg_log_arch/archive/archive-1.tar.gz" log_file="/var/log/wal_archive/pg_log_archive.log" test –f $last_file && rm $last_file && echo "$(data): delte last file $last_file" >> $log_file test –f $current_file && mv $current_file $last_file && echo "$(data): move $current_file to $last_file" >> $log_file tar –czvf $current_file /pg_log_arch/day/* --remove-files && echo "$(data): current archive created" >> $log_file |
Удаляет самый крайний по времени архив wal-логов.
Перемещает предыдущий архив wal-логов на место удаленного самого крайнего по времени архива wal-логов.
Архивирует актуальный wal-логи.
где
last_file=”/pg_log_arch/archive/archive-2.tar.gz” – архив крайнего по времени файла wal-логов.
current_file=”/pg_log_arch/archive/archive-1.tar.gz” – архив актуальных wal-логов.
log_file=”/var/log/wal_archive/pg_log_archive.log” – путь к логам данного скрипта.
Итак,
1. Разместим скрипты backup_prod.sh и backup_wal_archive.sh в каталоге.
1 |
/pgpro/scripts. |
2. Авторизуемся под суперпользователем.
1 |
sudo su root |
3. Добавим права на исполнение скриптов.
1 2 3 |
chmod +x /pgpro/scripts/backup_prod.sh chmod +x /pgpro/scripts/backup_wal_archive.sh |
4. Настроим выполнение скриптов в cron.
1 |
crontab -e |
Следующим образом:
1 2 3 |
0 2 * * * /pgpro/scripts/backup_prod.sh 0 3 * * * /pgpro/scripts/backup_wal_archive.sh. |
5. Проверим настройку в cron.
1 |
crontab -l |
Устанавливаем параметры непрерывного архивирования PostgresPro 11.
1. Авторизуемся под postgres
1 |
sudo su - postgres |
2. Подключимся к psql
1 |
psql |
3. Выполним установку параметров.
1 2 3 |
ALTER SYSTEM SET archive_mode = 'on'; ALTER SYSTEM SET archive_command = 'test ! –f /pg_log_arch/day/%f && cp %p /pg_log_arch/day/%f' |
Включает архивирование.
Устанавливает команду архивирования:
Проверяет, если нет файла в каталоге wal-логов, тогда копирует в этот каталог wal-логи.
4. Выходим из psql
Включаем непрерывное архивирование PostgresPro 11.
1. Авторизуемся под postgres
1 |
sudo su - postgres |
2. Остановим кластер СУБД
1 |
pg_ctl stop |
3. Проверим
1 |
cat /pgpro/db/postgresql.auto.conf |
4. Запускаем кластер СУБД
1 |
pg_ctl start |
Еще можно посмотреть
Ошибки на клиенте при подключении к серверу 1С на Linux. Часть 1
Рассмотрены ошибки при подключении к серверу 1С на Linux. Изложена методика поиска причин и путей их исправления
Хранение файлов 1С в томах на nfs-шаре Linux
Пошаговая настройка варианта хранения файлов 1С Предприятия во внешнем NFS хранилище на ОС Linux
Установка сервера 1С Предприятие 8.3 на Linux
Пошаговый процесс установки 1С сервера на Linux. Подготовка Linux к установке. Инсталяция дистрибутива 1С сервера. Его настройка и запуск.
Основы работы в Linux
Основы работы в Linux. Как подключиться к серверу. Как скопировать файлы на сервер. Редактирование конфигурационных файлов.
Публикация 1С на Веб сервере Apache Linux
Пошаговые инструкции по публикация базы и web-сервисов 1С на веб-сервере Apache 2.4 на Linux.
Проверка рабочих процессов сервера 1С на Linux
Как проверить на Linux запущены ли процессы сервера 1С. Проверка открытых портов сервера 1С
Ошибки на клиенте при работе с сервером 1С на Linux. Часть 2
Разбор наиболее часто встречающихся ошибок при работе с 1С на Linux.
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Что такое PG_TEMP в PostgreSQL для 1С
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?