PlanetScale for Postgres сейчас доступен в рамках раннего доступа.
Поддерживаемые версии Postgres
Включение логической репликации
-
Чтобы включить репликацию на экземпляре Postgres, нужно убедиться, что установлены следующие настройки:
Чтобы проверить это, можно выполнить следующую SQL-команду:По умолчанию результат должен быть
logical. Если это не так, войдите в консоль PlanetScale, перейдите вCluster configuration->Parametersи прокрутите вниз доWrite-ahead log, чтобы изменить этот параметр.
- Кроме того, рекомендуется увеличить значение параметра
max_slot_wal_keep_sizeпо сравнению со значением по умолчанию 4GB. Это также делается через консоль PlanetScale: перейдите вCluster configuration->Parameters, затем прокрутите вниз доWrite-ahead log. Чтобы подобрать новое значение, ознакомьтесь с рекомендациями здесь.
Создание пользователя, назначение разрешений и создание публикации
postgres.<...> и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
-
Предоставьте пользователю, созданному на предыдущем шаге, доступ к схеме в режиме только для чтения. В следующем примере показаны разрешения для схемы
public. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: -
Предоставьте пользователю привилегии репликации:
- Создайте публикацию с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов по производительности.
-
Чтобы создать публикацию для конкретных таблиц:
-
Чтобы создать публикацию для всех таблиц в конкретной схеме:
-
Чтобы создать публикацию для всех таблиц в конкретной схеме:
clickpipes будет содержать набор событий изменений, сгенерированных для указанных таблиц, и в дальнейшем будет использоваться для приёма потока репликации.
Ограничения
- Чтобы подключиться к PlanetScale Postgres, к имени пользователя, созданному выше, нужно добавить текущую ветку. Например, если созданный пользователь называется
clickpipes_user, то при создании ClickPipe нужно указать имя пользователяclickpipes_user.branch, гдеbranch— это “id” текущей ветки PlanetScale Postgres. Чтобы быстро определить его, можно посмотреть на имя пользователяpostgres, которое вы ранее использовали для создания пользователя: часть после точки и будет идентификатором ветки. - Не используйте порт
PSBouncer(сейчас это6432) для CDC-пайпов, подключающихся к PlanetScale Postgres: необходимо использовать обычный порт5432. Для пайпов только с начальной загрузкой можно использовать любой из этих портов. - Убедитесь, что подключаетесь только к основному экземпляру; подключение к экземплярам-репликам сейчас не поддерживается.