CREATE ASYNC REPLICATION

Вызов CREATE ASYNC REPLICATION создает экземпляр асинхронной репликации.

Синтаксис

CREATE ASYNC REPLICATION <name>
FOR <remote_path> AS <local_path> [, <another_remote_path> AS <another_local_path>]
WITH (option = value [, ...])

где:

  • name — имя экземпляра асинхронной репликации.
  • remote_path — относительный или абсолютный путь до исходной таблицы или директории в базе-источнике.
  • local_path — относительный или абсолютный путь до целевой таблицы или директории в текущей базе.
  • WITH (option = value [, ...]) — параметры асинхронной репликации.

Параметры

  • CONNECTION_STRING — строка соединения c базой-источником. Обязательный параметр.

  • CA_CERT — корневой сертификат для TLS. Необязательный параметр. Может быть указан, если база-источник поддерживает режим обмена данными с шифрованием (CONNECTION_STRING начинается с grpcs://).

  • INITIAL_SCAN: выполнять ли первоначальное сканирование. Необязательный параметр типа Bool. Если не указан, используется настройка сервера; по умолчанию TRUE.

    • TRUE: исходные данные передаются через потоки изменений, объекты-реплики создаются автоматически.
    • FALSE: репликация создаётся в состоянии PAUSED и подготавливает потоки изменений без первоначального сканирования. Целевые таблицы не создаются и не подключаются к репликации до перевода в STANDBY. Сначала создайте резервную копию источника и восстановите данные в приёмнике, затем запустите репликацию с помощью ALTER ASYNC REPLICATION. К моменту запуска целевые таблицы должны существовать и соответствовать схемам источника с учётом ограничений. Порядок действий описан в руководстве по первоначальной синхронизации.
  • AVAILABILITY_PERIOD — период доступности неподтверждённых изменений. Необязательный параметр: положительное значение типа Interval или строка 'UNLIMITED'. По умолчанию — 'UNLIMITED'.

    • 'UNLIMITED': изменения сохраняются до подтверждения их обработки репликацией.
    • Interval, например Interval('PT48H'): неподтверждённые изменения защищены от удаления в течение заданного периода. После его истечения они могут быть удалены.

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

  • Настройки для аутентификации в базе-источнике одним из способов (обязательно):

    • С помощью токена:

      • TOKEN_SECRET_PATH — секрет, содержащий токен.
    • С помощью логина и пароля:

      • USER — имя пользователя.
      • PASSWORD_SECRET_PATH — секрет, содержащий пароль.
    • С помощью сервисного агента:

      • SERVICE_ACCOUNT_ID — идентификатор сервисного аккаунта.
      • INITIAL_TOKEN_SECRET_PATH — секрет, содержащий токен от сервисного аккаунта. Используется для первоначальной инициализации.
  • CONSISTENCY_LEVEL — уровень согласованности реплицируемых данных:

Примеры

Совет

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

Создание экземпляра асинхронной репликации для таблицы original_table из базы /Root/another_database в текущую базу в таблицу replica_table:

CREATE ASYNC REPLICATION my_replication_for_single_table
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret'
);

Для подключения к базе /Root/another_database используется эндпоинт grpcs://example.com:2135, а для аутентификации — токен из секрета my_secret.

Создание экземпляра асинхронной репликации для таблиц original_table_1 и original_table_2 в replica_table_1 и replica_table_2, соответственно:

CREATE ASYNC REPLICATION my_replication_for_multiple_tables
FOR original_table_1 AS replica_table_1, original_table_2 AS replica_table_2
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret'
);

Создание экземпляра асинхронной репликации для содержимого директории original_dir:

CREATE ASYNC REPLICATION my_replication_for_dir
FOR original_dir AS replica_dir
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret'
);

Создание экземпляра асинхронной репликации для содержимого базы /Root/another_database:

CREATE ASYNC REPLICATION my_replication_for_database
FOR `/Root/another_database` AS `/Root/my_database`
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret'
);

Создание экземпляра асинхронной репликации с указанием корневого сертификата для TLS:

CREATE ASYNC REPLICATION my_consistent_replication
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret',
    CA_CERT = '-----BEGIN CERTIFICATE-----...'
);

Создание экземпляра асинхронной репликации в режиме глобальной согласованности данных (периодичность фиксации изменений по умолчанию — 10 секунд):

CREATE ASYNC REPLICATION my_consistent_replication
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret',
    CONSISTENCY_LEVEL = 'GLOBAL'
);

Создание экземпляра асинхронной репликации в режиме глобальной согласованности данных с минутной периодичностью фиксации изменений:

CREATE ASYNC REPLICATION my_consistent_replication_1min_commit_interval
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret',
    CONSISTENCY_LEVEL = 'GLOBAL',
    COMMIT_INTERVAL = Interval('PT1M')
);

Создание репликации с периодом доступности неподтверждённых изменений 48 часов:

CREATE ASYNC REPLICATION my_replication_with_availability_period
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret',
    AVAILABILITY_PERIOD = Interval('PT48H')
);

Создание репликации для первоначальной синхронизации с помощью резервного копирования и восстановления с сохранением неподтверждённых изменений без ограничения по возрасту:

CREATE ASYNC REPLICATION my_replication_without_initial_scan
FOR original_table AS replica_table
WITH (
    CONNECTION_STRING = 'grpcs://example.com:2135/?database=/Root/another_database',
    TOKEN_SECRET_PATH = 'my_secret',
    INITIAL_SCAN = FALSE,
    AVAILABILITY_PERIOD = 'UNLIMITED'
);

Репликация подготавливает потоки изменений в состоянии PAUSED. Дождитесь их готовности, выполните резервное копирование и восстановление, затем переведите репликацию в STANDBY с помощью ALTER ASYNC REPLICATION.

См. также

Предыдущая
Следующая