Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Обновление версии PostgreSQL
    • Изменение настроек кластера и базы данных
    • Подключение к DataLens
    • Управление хостами PostgreSQL
    • Управление базами данных
    • Расширения PostgreSQL
      • Управление расширениями
      • pg_cron
      • pgcrypto
    • Управление пользователями БД
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
    • Управление слотами репликации
  • Практические руководства
    • Все сценарии
    • Создание кластера PostgreSQL для 1С
    • Выгрузка базы данных в Yandex Data Proc
    • Анализ производительности и оптимизация
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Репликация и миграция
      • Логическая репликация PostgreSQL
      • Миграция базы данных в Managed Service for PostgreSQL
      • Миграция базы данных из Managed Service for PostgreSQL
      • Создание логической реплики Amazon RDS для PostgreSQL в Managed Service for PostgreSQL
      • Миграция базы данных из Yandex Managed Service for PostgreSQL в Yandex Object Storage
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for PostgreSQL
    • Квоты и лимиты
    • Хранилище в Managed Service for PostgreSQL
    • Резервные копии
    • Назначение ролей
    • Управление соединениями
    • Репликация
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки PostgreSQL
    • Ограничения для команд SQL
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • delete
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • Database
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Подключение
    • Изменение кластера
    • Настройки параметров кластера
    • Перемещение и восстановление кластера
    • Мониторинг и логи
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Управление слотами репликации

Управление слотами репликации

Статья создана
Yandex Cloud
  • Посмотреть список логических слотов репликации
  • Создать слот репликации
  • Удалить слот репликации
  • Пример

Кластер Managed Service for PostgreSQL может содержать физические и логические слоты репликации:

  • Физические слоты создаются сервисом автоматически на базе хостов-реплик и используются для репликации данных в рамках самого кластера Managed Service for PostgreSQL.
  • Логические слоты создаются пользователем и используются для логической репликации данных между кластерами, например при захвате изменений данных (CDC).

Подробности см. в документации PostgreSQL.

Посмотреть список логических слотов репликации

  1. Подключитесь к базе данных с помощью учетной записи пользователя с ролью mdb_replication.

  2. Выполните SQL-запрос:

    SELECT * FROM pg_replication_slots WHERE slot_type='logical';
    

    Запрос возвращает таблицу всех логических слотов репликации с их параметрами.

Создать слот репликации

  1. Задайте максимальный размер WAL при репликации в настройке Max slot wal keep size. Редактирование данной настройки доступно начиная с 13 версии PostgreSQL.

    Важно

    При значении настройки -1 (размер не ограничен) открытые логические слоты репликации, из которых не считывается информация, будут препятствовать удалению WAL-файлов. В результате WAL-файлы займут все дисковое пространство и вы потеряете возможность подключаться к кластеру.

  2. Подключитесь к базе данных с помощью учетной записи пользователя с ролью mdb_replication.

  3. Выполните SQL-запрос:

    SELECT pg_create_logical_replication_slot 
    ( '<имя слота>', '<имя плагина>', <temporary: true или false>, <two_phase: true или false> )
    

    Где:

    • <имя слота> — уникальное имя слота. Обязательный параметр.
    • <имя плагина> — имя плагина из списка поддерживаемых выходных плагинов. Список см. в разделе Логическое декодирование. Обязательный параметр.
    • temporary — если выбрано значение true, слот будет удален по окончании текущей сессии или при возникновении ошибки. По умолчанию false.
    • two_phase — если выбрано значение true, слот будет декодировать подготовленные транзакции. По умолчанию false.

Удалить слот репликации

  1. Подключитесь к базе данных с помощью учетной записи пользователя с ролью mdb_replication.

  2. Выполните SQL-запрос:

    SELECT pg_drop_replication_slot ('<имя слота>');
    

Пример

Чтобы создать новый слот репликации с именем json_slot, который декодирует информацию об изменениях базы данных в формат JSON с помощью плагина wal2json:

  1. Убедитесь, что в настройке Max slot wal keep size задано значение, отличное от -1.

  2. Выполните SQL-запрос:

    SELECT pg_create_logical_replication_slot ( 'json_slot', 'wal2json', false, false );
    

    Вариант ответа:

    pg_create_logical_replication_slot 
    ------------------------------------
    (json_slot,1/92001108)
    (1 row)
    
  3. Убедитесь, что слот появился в списке:

    SELECT * from pg_replication_slots;
    

Если слот вам больше не нужен, удалите его:

SELECT pg_drop_replication_slot ('json_slot');

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Посмотреть список логических слотов репликации
  • Создать слот репликации
  • Удалить слот репликации
  • Пример