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

Инициализация агента CopyWala для OceanBase

примечание

Исполнять сценарий необходимо от имени пользователя pbr.

Описание сценария​

Инициализация выполняется через CLI утилиты copywala-ob командой:

copywala-ob init <agent_name>

Где agent_name – уникальное имя агента (задается самостоятельно администратором).

При первичной инициализации:

  1. Утилита copywala-ob генерирует уникальный идентификатор agent_id.

  2. На основании agent_name и agent_id автоматически формируется значение полного уникального наименования экземпляра агента instance_name по принципу: agent_name+_+agent_id.

    Пример:

    $ copywala-ob init ODBTESTAGENT

    2026-05-06 14:31:53.191 [148955] INF copywala-ob 1.3.0 (35ab33bc) compiled at 2026-05-04_11:02:27
    2026-05-06 14:31:53.191 [148955] INF copywala initialization complete: name="ODBTESTAGENT" id="019dfd0f-04e7-7be6-9529-0d2395ab13c1"

    На основе этих данных формируется instance_name:

    ODBTESTAGENT_019dfd0f-04e7-7be6-9529-0d2395ab13c1
Подсказка

Узнать значения instance_name, agent_name и agent_id можно с помощью команды db info (сценарий ):

$ copywala-ob db info

username: user_tenant
instance_name: ODBTESTAGENT_019dfd0f-04e7-7be6-9529-0d2395ab13c1
version: 4.2.1.0
tenants:
- id: 1002
name: test

В данном примере:

ODBTESTAGENT⏟agent_name_019dfd0f-04e7-7be6-9529-0d2395ab13c1⏟agent_id⏞instance_name\overbrace{\underbrace{\text{ODBTESTAGENT}}_{\mathrm{agent\_name}}\_\underbrace{\text{019dfd0f-04e7-7be6-9529-0d2395ab13c1}}_{\mathrm{agent\_id}}}^{\mathrm{instance\_name}}

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

Идентификатор сохраняется в файле /etc/pbr/ob.agent.id (путь к файлу задается параметром app.agent_id_file_path конфигурационного файла copywala-ob.yaml) и далее используется для однозначного распознавания конкретного экземпляра базы данных и агентского приложения. Например, все резервные копии этого экземпляра будут сохраняться в отдельной подпапке хранилища с названием, соответствующим instance_name.

Предусловие​

Перед инициализацией агента убедитесь, что:

  • компонент copywala-ob установлен;
  • создан конфигурационный файл copywala-ob.yaml с заполненными обязательными секциями:
    • target_db – учетные данные для подключения к OceanBase Database;
    • log – параметры логирования.

Последовательность выполнения​

Шаги сценария:

  1. Убедитесь, что создан конфигурационный файл copywala-ob.yaml с заполненными обязательными секциями target_db (учетные данные для подключения к OceanBase Database) и log (параметры логирования).

  2. Выполните инициализацию агента через CLI компонента Copywala OB командой copywala-ob init <agent_name>. В процессе выполнения команда:

    • создает рабочий каталог агента (параметр app.copywala_dir конфигурационного файла);
    • генерирует уникальный идентификатор agent_id и формирует полное уникальное наименование экземпляра instance_name (agent_name+_+agent_id);
    • сохраняет идентификатор инициализированного агента в файл (параметр app.agent_id_file_path конфигурационного файла);
    • записывает событие аудита instance_name_initialization.

Результат​

В результате выполнения команды будет выведено:


copywala initialization complete: name="<name>" id="<id>"

Исключительные сценарии​

  • Ошибка при повторной инициализации — идентификатор экземпляру уже был сгенерирован ранее:

    $ copywala-ob init db1
    2025-08-08 17:23:24.162 ERR app: init app id info failed err="app id already initialized"
    2025-08-08 17:23:24.273 WRN copywala already initialized: name="db1" id="01988444-1801-77b8-90de-bf03df71df55"

  • Ошибка при загрузке файла конфигурации.

  • Ошибка при инициализации логера.