ptrack. Инкрементальное резервное копиров ание
Версия: 2.4.
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
ptrack
реализует механизм инкрементального резервного копирования на уровне блоков для PostgreSQL. В СУБД Pangolin ptrack
используется для создания инкрементных резервных копий с помощью менеджера резервного копирования и восстановления pg_probackup
.
В Pangolin предусмотрено создание инкрементальной резервной копии в одном из двух режимов:
STREAM
– включает все файлы, необходимые для восстановления кластера до состояния, соответствующего моменту создания резервной копии. Независимо от того, настроено ли непрерывное архивирование или нет, сегменты WAL, необходимые для последовательного восстановления, передаются по протоколу репликации во время резервного копирования и включаются в файлы резервной копии. Поэтому такие резервные копии называются автономными или самодостаточными;WAL ARCHIVE
– полагается на непрерывное архивирование для обеспечения последовательного восстановления. Это режим доставки WAL по умолчанию.
Доработка
Доработка: Добавлены подсказки для выбора оптимальных параметров
ptrack
.Версия: 2.4.
Расширение ptrack
отслеживает изменения в базе данных и отображает их в битовую карту. Размер битовой карты задается при старте кластера и не увеличивается автоматически. Когда база данных растет, размер битового массива становится недостаточным для хранения всех изменений. Это приводит к «слепливанию страниц». В результате разные блоки данных отображаются в одних и тех же ячейках битового массива, что вызывает коллизии.
Коллизии ведут к ложноположительным результатам: блок данных не был изменен, но в битовой карте соответствующая ячейка помечена как измененная. Ложноположительные срабатывания повышают нагрузку на систему и увеличивают затраты на создание инкрементальной резервной копии.
Доработка добавляет подсказки для пользователя, как только размер битовой карты становится недостаточным для текущего размера базы данных.
Ограничения
Если проверка размера битовой карты производится с помощью background worker
, в параметрах расширения необходимо указать имя существующей базы, к которой будет подключаться background worker
. Результат работы расширения не зависит от того, к какой конкретно базе будет подключаться background worker
, единственное требование – база с указанным именем должна существовать в кластере.
Установка
Для включения расширения выполните шаги:
-
Добавьте
ptrack
в список предзагружаемых библиотек, для этого в конфигурационном файле внесите имяptrack
в параметрshared_preload_libraries
:- для конфигурации standalone в файле
vim $PGHOME/postgresql.conf
; - для конфигурации cluster в файле
vim /etc/pangolin-manager/postgres.yml
.
shared_preload_libraries = 'ptrack'
- для конфигурации standalone в файле
-
Перезапустите СУБД Pangolin:
systemctl restart postgresql
-
Включите расширение
ptrack
:CREATE EXTENSION IF NOT EXISTS ptrack;
-
В конфигурационном файле задайте параметр
ptrack.map_size
равнымN/1024
, гдеN
— объем кластера СУБД Pangolin в мегабайтах, а так же установите параметрwal_level
на уровнеreplica
или выше:- для конфигурации standalone в файле
vim $PGHOME/postgresql.conf
; - для конфигурации cluster в файле
vim /etc/pangolin-manager/postgres.yml
.
ptrack.map_size = 'N/1024'
- для конфигурации standalone в файле
Использование модуля
Создание инкрементальной резервной копии
Включение функциональности для создания инкрементальной резервной копии требует пошаговой настройки:
- Включения и настройки расширения -
ptrack
. - Включения
wal_level
на уровнеreplica
и выше. - Однократного снятия полной резервной копии БД и хранения ее в хранилище резервных копий на всем протяжении жизни БД, так как последующие инкрементальные копии будут использовать полную резервную копию, как родительскую при восстановлении.
- Выдачи прав на исполнение функции
ptrack_init_lsn
пользователю с правами на создание резервных копий.
Внимание!
До создания полной резервной копии, расширение
ptrack
уже должно работать, и после этого его нельзя отключать, так как это приведет к отсутствию некоторых блоков в резервной копии, что сделает резервную копию не консистентной.
Для того чтобы оперативно узнать подходят ли настройки СУБД для создания инкрементальной резервной копии, выполните следующие действия:
-
Проверьте, работает ли расширение
ptrack
:SELECT * FROM pg_extension WHERE extname = 'ptrack';
-
Проверьте, что конфигурационный параметр
ptrack.map_size
задан равным N/1024, где N — объем кластера СУБД Pangolin в мегабайтах:SHOW ptrack.map_size;
-
Проверьте, что конфигурационный параметр
wal_level
задан вreplica
или выше:SHOW wal_level;
Ниже приведено подробное описание каждого шага настройки параметров.