Инициализация приложения
Исполнять сценарий необходимо от имени пользователя postgres.
Описание сценария
Инициализация выполняется через CLI утилиты copywala командой:
copywala init <agent_name>
Где agent_name – уникальное имя агента (задается самостоятельно администратором).
При первичной инициализации:
-
Утилита copywala генерирует уникальный идентификатор
agent_id. -
На основании
agent_nameиagent_idавтоматически формируется значение полного уникального наименования экземпляра агентаinstance_nameпо принципу:agent_name+_+agent_id.Пример:
$ copywala init test_agent
2026-04-07 11:41:02.712 [522766] INF copywala 1.2.3 (ab60aae1) compiled at 2026-04-03_12:38:14
2026-04-07 11:41:02.733 [522766] INF copywala initialization complete: name="test_agent" id="019d671a-300d-7049-b98a-bcd917e545d2"На основе этих данных формируется
instance_name:test_agent_019d671a-300d-7049-b98a-bcd917e545d2
Узнать значенияinstance_name, agent_name и agent_id можно с помощью команды:
$ copywala db info
dbuser: backup_user
dbname: postgres
version: "15.15"
db_list: First_db, demo, demo_temp, postgres, template0, template1
edition: Platform V Pangolin DB 6.7.0
system_id: "7624074065519217763"
instance_name: dbname_0198a248-0f5c-7339-b454-7301bb98ef3e
replication: standalone
replication_partners: ""
leader: ""
home: /pgdata/06/data
archive_mode: "off"
archive_command: (disabled)
wal_level: replica
user: postgres
status: stopped
size: 351539988
port: 5433
В данном примере:
Каждый экземпляр базы данных требует однократной инициализации для присвоения уникального идентификатора.
Идентификатор сохраняется в файле /etc/pbr/pbr.agent.id (задается в copywala.yaml, параметр app.agent_id_file_path) и далее используется для однозначного распознавания конкретного экземпляра базы данных и агентского приложения. Например, все резервные копии и WAL-файлы этого экземпляра будут сохраняться в отдельной подпапке хранилища с названием, соответствующим instance_name.
Если в системе установлены оба сервиса — pbr-agent и copywala, пути к файлу pbr.agent.id в конфигурационных файлах этих сервисов должны совпадать. Любое изменение пути в одном файле необходимо также внести в другой:
pbr-agent.yamlcopywala.yaml
Если пользователи pbr-agent и copywala разные, то нужно настроить права доступа к файлу pbr.agent.id (при инициализации — на запись и чтение, для работы — на чтение).
app:
agent_id_file_path: "path/to/id/file"
Последовательность выполнения
Выполните инициализацию приложения через CLI компонента copywala командой copywala init <наименование агента / экземпляра БД>.
Результат
В результате выполнения команды будет выведено:
$ copywala init dbmain
2025-08-08 17:24:53.876 INF copywala initialization complete: name="dbmain" id="01988a12-06bf-7f0b-87f8-e290972fe614"
Исключительные сценарии
Будет выведено соответствующее сообщение для случаев:
-
Ошибка при повторной инициализации — идентификатор экземпляру уже был сгенерирован ранее:
$ copywala 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" -
Ошибка при загрузке файла конфигурации.
-
Ошибка при инициализации логера.