Настройка непрерывного архивирования (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 |
Еще можно посмотреть
Ошибки сервера 1С на Linux
Описание типичных ошибок которые возникают при запуске службы сервера 1С на Linux и пути их исправления
Подключение репозитория под ОС Linux
Инструкции по подключению репозитория как под CentOS так и под РЕД ОС.
Очистка кэша: серверного и клиентского для 1С:Предприятия
Лечим непонятные ошибки 1С Предприятия чисткой так называемого кеша - служебных файлов с настройками 1С
Ошибки публикации базы и веб сервиса на веб сервере 1C+ Apache +Linux.
Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок. Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия). В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux без […]
Ошибки СУБД. 1С+PostgreSQL+Linux. Часть 2.
Ошибка СУБД: Продолжение сообщения может быть различным: 1. DATABASE не пригоден для использования 2. ERROR: type «tt7» already exists 3. ERROR: could not read block DATABASE не пригоден для использования Пример полного текста ошибки: [crayon-6aceb8403407c765637208/] Описание ошибки: База не запускается после установки и создания. Решения: Установим версию предназначенную для работы с 1С:Предприятием. Скачать такую можно […]
Публикация 1С на Веб сервере Apache Linux
Пошаговые инструкции по публикация базы и web-сервисов 1С на веб-сервере Apache 2.4 на Linux.
Ошибка 1С:Предприятие «Потеряно соединение»
Потеряно соединение Во время выполнения действия была потеряна связь с сервером. Проверьте сетевой соединение и нажмите "Повторить" для повторной попытки выполнения действия. Если ошибка повторится, возможно, сервер временно недоступен.
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Что такое PG_TEMP в PostgreSQL для 1С
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?






