Режим PTRACK

PTRACK — сокращение от Physical Truncate Tracking. PTRACK используется PostgreSQL для эффективного управления и отслеживания изменений в файлах базы данных.

PTRACK хранит сведения о том, какие страницы файлов были изменены и требуют записи на диск. СУБД отслеживает изменения в памяти и группирует их для последующей записи. При каждом изменении страницы добавляется отметка в PTRACK.

PTRACK используется при включенной опции full_page_writes (postgresql.conf).

Для корректной работы подмодуля необходимо расширение ptrack версии 2.6.0 или выше.

1. Настройка копирования в режиме PTRACK

Перед выполнением инкрементальной резервной копии в режиме PTRACK настройте PostgreSQL на работу с PTRACK.

  1. Установите в конфигурационном файле postgresql.conf параметру shared_preload_libraries значение ptrack.

  2. Добавьте в конец конфигурационного файла postgresql.conf параметр ptrack.map_size и установите его значение равным N ÷ 1024, где N — объём кластера в мегабайтах. Увеличивать значение ptrack.map_size сверх этого не рекомендуется. Максимально допустимое значение ptrack.map_size — 1024.

    Если до этих изменений была сделана полная резервная копия, то после вступления изменений в силу необходимо сделать новую полную резервную копию, иначе инкрементальное резервное копирование в режиме PTRACK завершится с ошибкой.
  3. Перезапустите сервис.

    sudo systemctl restart <database_service>
  4. Войдите в БД от имени администратора СУБД.

    sudo -u postgres psql -d <backupdb>
  5. Загрузите расширение ptrack.

    CREATE EXTENSION ptrack;

Теперь модуль может выполнять инкрементальное резервное копирование в режиме PTRACK.