F.41. pgpro_bindump — модуль протокола репликации для резервного копирования и восстановления #

pgpro_bindump — это модуль, предоставляющий дополнительные команды для протокола репликации Postgres Pro, в частности для использования с утилитой pg_probackup3. pgpro_bindump имеет следующие преимущества:

  • Упрощённая связь с сервером. Для подключения к серверу баз данных pgpro_bindump не требует протокола SSH и связанных с ним настроек.

  • Интегрированная передача WAL. Файлы WAL передаются вместе с файлами данных, что снижает риск потери информации при резервном копировании.

  • Оптимизированное хранение. Файлы копируются не в исходном виде, а архивируются в собственном формате pg_probackup3CBOR (RFC 8949 Concise Binary Object Representation, Сжатое представление двоичных объектов), что повышает эффективность хранения.

F.41.1. Архитектура #

Для обработки подключений от внешних приложений создаётся выделенный обслуживающий процесс. Для отправки запросов к этому процессу можно использовать утилиту pg_probackup3 или собственное приложение.

При необходимости можно устанавливать несколько соединений для одного приложения.

Поскольку модуль pgpro_bindump имеет прямой доступ к файлам базы данных, дополнительных разрешений не требуется.

Приложение pgpro_bindump использует библиотеку libpgprobackup вместе со встроенным модулем кодирования для передачи данных в приложение.

Плагин walsender_plugin_libraries упрощает процесс добавления и использования новых команд репликации, включая пользовательские.

F.41.2. Ограничения и требования #

В настоящее время pgpro_bindump имеет следующие ограничения и требования:

  • Для работы pgpro_bindump требуются libpgprobackup.so и libpb3_encoder.so.

F.41.3. Установка и подготовка #

После установки Postgres Pro выполните шаги ниже.

  1. Задайте следующие параметры в файле postgresql.conf:

    shared_preload_libraries = 'pgpro_bindump'
    wal_level = 'replica' # or 'logical'
    walsender_plugin_libraries = 'pgpro_bindump'
  2. Перезапустите экземпляр Postgres Pro.

F.41.4. Команды репликации #

Модуль pgpro_bindump поддерживает следующие команды репликации:

  • just-noop — команда-заглушка, не выполняющая никаких действий.

  • start_backup — запускает процесс резервного копирования.

  • copy_files — копирует файлы в формате CBOR.

  • stop_backup — останавливает процесс резервного копирования.

Резервное копирование выполняется в режиме PRO — расширенном режиме источника данных, включающем все доступные оптимизации и улучшения, в том числе проприетарный протокол репликации и специализированные команды репликации.

Для отправки команд из пользовательского приложения в pgpro_bindump и получения приложением выходных данных из pgpro_bindump используйте libpq.

Примечание

Для работы требуется активное подключение к работающему серверу Postgres Pro.

F.41.4.1. start_backup #

start_backup LABEL метка, INCR_MODE инкрементальный_режим, START_LSN начальный_lsn, TRANSFER_MODE режим_передачи,
[TRANSFER_BUFFER_SIZE размер_буфера]

Запускает процесс резервного копирования. Передаёт приложению следующие данные:

  • start_lsn — LSN на момент начала резервного копирования.

  • start_tli — идентификатор линии времени на момент начала резервного копирования.

  • min_xid — минимальный идентификатор транзакции на момент начала резервного копирования.

  • min_multixact — минимальный идентификатор мультитранзакции на момент начала резервного копирования.

  • tablespace_list — список табличных пространств, включённых в резервную копию.

  • database_list — список баз данных, включённых в резервную копию.

LABEL метка

Имя резервной копии.

INCR_MODE инкрементальный_режим

Тип инкрементального копирования. Допустимые значения: PTRACK, DELTA.

START_LSN начальный_lsn

Значение типа XLogRecPtr, представляющее LSN на момент начала резервного копирования.

TRANSFER_MODE режим_передачи

Способ передачи данных с сервера в приложение. Возможные значения:

  • raw — данные передаются в несжатом виде блоками произвольного размера.

  • packed — данные передаются в упакованном виде блоками по 128 КБ с общим заголовком.

packed — значение по умолчанию.

TRANSFER_BUFFER_SIZE размер_буфера

Числовое значение, определяющее размер буфера. Единственное возможное значение — значение по умолчанию: 131072 (128 КБ).

F.41.4.2. copy_files #

copy_files VERIFY_CHECKSUMS [TRUE | FALSE], COMPRESS_ALG алгоритм_сжатия, COMPRESS_LVL уровень_сжатия, TRANSFER_MODE режим_передачи,
[INCR_MODE инкрементальный_режим], [START_LSN начальный_lsn], [TRANSFER_BUFFER_SIZE размер_буфера],
[WORKER_INFO число_процессов:ид_процесса]

Передаёт блоки файлов данных и файлов WAL, упакованные в формате CBOR.

VERIFY_CHECKSUMS

Логическое значение (true или false), определяющее необходимость проверки контрольных сумм.

COMPRESS_ALG алгоритм_сжатия

Используемый алгоритм сжатия. Допустимые значения: zlib, zstd, lz4, none.

COMPRESS_LVL уровень_сжатия

Уровень сжатия. Возможные значения: 1, 2, 3, 4, 5.

TRANSFER_MODE режим_передачи

Способ передачи данных с сервера в приложение. Возможные значения:

  • raw — данные передаются в несжатом виде блоками произвольного размера.

  • packed — данные передаются в упакованном виде блоками по 128 КБ с общим заголовком.

packed — значение по умолчанию.

INCR_MODE инкрементальный_режим

Тип инкрементального копирования. Допустимые значения: PTRACK, DELTA.

START_LSN начальный_lsn

Значение типа XLogRecPtr, представляющее LSN на момент начала резервного копирования.

TRANSFER_BUFFER_SIZE размер_буфера

Числовое значение, определяющее размер буфера. Единственное возможное значение — значение по умолчанию: 131072 (128 КБ).

WORKER_INFO число_процессов:ид_процесса

Количество процессов и идентификатор процессора.

F.41.4.3. stop_backup #

stop_backup STREAM [TRUE | FALSE], COMPRESS_ALG алгоритм_сжатия, COMPRESS_LVL уровень_сжатия,
[EXTERNALS внешние_каталоги] [TRANSFER_BUFFER_SIZE размер_буфера], [TRANSFER_MODE режим_передачи]

Завершает процесс копирования и закрывает текущее соединение. Отправляет в приложение следующие данные:

  • stop_lsn — LSN на момент завершения резервного копирования.

  • stop_tli — идентификатор линии времени на момент завершения резервного копирования.

  • Файл backup.control.

  • Набор файлов WAL (только при включённой передаче WAL).

STREAM

Логическое значение (true или false), определяющее, включена ли потоковая передача WAL.

COMPRESS_ALG алгоритм_сжатия

Используемый алгоритм сжатия. Допустимые значения: zlib, zstd, lz4, none.

COMPRESS_LVL уровень_сжатия

Уровень сжатия. Возможные значения: 1, 2, 3, 4, 5.

EXTERNALS внешние_каталоги

Список внешних каталогов.

TRANSFER_BUFFER_SIZE размер_буфера

Числовое значение, определяющее размер буфера. Единственное возможное значение — значение по умолчанию: 131072 (128 КБ).

TRANSFER_MODE режим_передачи

Способ передачи данных с сервера в приложение. Возможные значения:

  • raw — данные передаются в несжатом виде блоками произвольного размера.

  • packed — данные передаются в упакованном виде блоками по 128 КБ с общим заголовком.

packed — значение по умолчанию.

F.41.5. Авторы #

Postgres Professional, Москва, Россия.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy