Перейти к основному содержимому

Установка и обновление расширения pgcopywala

Важно

Расширение pgcopywala версии 1.1 создается в схеме pbr. Убедитесь, что схема pbr существует в базе данных перед установкой или обновлением расширения. Схема pbr создается при инициализации copywala.

Установка RPM-пакета

Перед созданием расширения в базе данных установите RPM-пакет pgcopywala на всех узлах кластера (основном и репликах). Это отдельный RPM-пакет, который устанавливается независимо от утилиты copywala.

RPM-пакеты расширения для разных версий PostgreSQL/Pangolin расположены в директории:

PBRA-bin-X.X.X-XX_<версия ОС>-distrib/rpms/

Установите пакет стандартным способом через пакетный менеджер (например, dnf install) на каждом узле кластера.

Первичная установка расширения

Если расширение pgcopywala ранее не устанавливалось, выполните команду:

CREATE EXTENSION pgcopywala;

Функции расширения будут созданы в схеме pbr.

Обновление с версии 1.0 на 1.1

Если расширение pgcopywala версии 1.0 уже установлено в кластере, обновите его до версии 1.1 для переноса функций в схему pbr:

Важно

Для Copywala версии 1.3.1 обновление расширения до версии 1.1 является обязательным условием корректной работы функциональности copywala catchup.

ALTER EXTENSION pgcopywala UPDATE TO '1.1';

После выполнения этой команды существующие функции расширения будут перемещены в схему pbr.

Подсказка

Для проверки версии установленного расширения выполните запрос:

SELECT extname AS extension_name, extversion AS version
FROM pg_catalog.pg_extension
WHERE extname = 'pgcopywala';
:caption: Пример вывода

extension_name | version
----------------+---------
pgcopywala | 1.1

Если запрос не возвращает строк, расширение не установлено на данном узле.

Настройка прав доступа для пользователя репликатора

Чтобы пользователь, от имени которого узел-реплика подключается к основному узлу для запуска catchup-логики, смог получить доступ к функциям расширения на основном узле, выдайте для него права для доступа к схеме pbr:

GRANT USAGE ON SCHEMA pbr TO <replica_user>;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA pbr TO <replica_user>;

где <replica_user> — имя пользователя PostgreSQL/Pangolin, который используется для репликации.

примечание

Данные права необходимо выдавать только в случае, если пользователь, который используется для репликации, не является superuser.