Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
Для чего необходимо настраивать непрерывное архивирование базы данных?
Для того, чтобы:
- иметь возможность восстанавливать копию базы данных на произвольный момент времени.
- в случае сбоя не терять драгоценные часы данных.
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 |
Еще можно посмотреть
Ошибки публикации базы и веб сервиса на веб сервере 1C+ Apache +Linux.
Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок. Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия). В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux без […]
Установка сервера 1С Предприятие 8.3 на Linux
Пошаговый процесс установки 1С сервера на Linux. Подготовка Linux к установке. Инсталяция дистрибутива 1С сервера. Его настройка и запуск.
Очистка кэша: серверного и клиентского для 1С:Предприятия
Лечим непонятные ошибки 1С Предприятия чисткой так называемого кеша - служебных файлов с настройками 1С
Установка PostgreSQL для 1С на Linux
Пошаговый процесс установки СУБД PostgreSQL для 1С на Linux сервер.
Установка и настройка хранилища конфигураций 1C на Linux сервере
Хранилище конфигурации 1С:Предприятия 8.3 является инструментом групповой разработки. Настраиваем сервер хранилища на Linux.
Публикация 1С на Веб сервере Apache Linux
Пошаговые инструкции по публикация базы и web-сервисов 1С на веб-сервере Apache 2.4 на Linux.
Проверка рабочих процессов сервера 1С на Linux
Как проверить на Linux запущены ли процессы сервера 1С. Проверка открытых портов сервера 1С
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Что такое PG_TEMP в PostgreSQL для 1С
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?






