Резервное копирование Avanpost DS и восстановление из копии

7.11. Резервное копирование Avanpost DS и восстановление из копии

1. Резервное копирование Avanpost DS

Для резервного копирования Avanpost DS используется утилита "db-backup".
Утилита создаёт резервную копию базы данных. Запускается на контроллере домена при работающем Avanpost DS, не прерывая его работу.

ВНИМАНИЕ!

Необходимо обязательно сохранять версии дистрибутива. Резервная копия Avanpost DS привязана к конкретной версии продукта. Восстановление данных возможно только на ту же версию, с которой создавалась копия.

Флаги:

  • -o, --output — Путь и имя файла для архива резервной копии. Архив будет создан по указанному пути с заданным именем.
  • -c, --config — Путь и имя файла конфигурации, который будет включён в архив резервной копии.
  • -k, --keytab — Путь и имя файла keytab, который будет включён в архив резервной копии.
Пример использования утилиты
$ /opt/avanpost/tools/cli/cli db-backup \
-c "/opt/avanpost/ads/config/config.yaml" \
-k "/opt/avanpost/ads/config/.mkey.keytab" \
-o "/opt/avanpost/ads/backup_$(date +%F)"

Database Backup: starting...
Database Backup: successful

$ ls -la /opt/avanpost/ads/backup
-rw-r--r--. 1 ads ads 691682334 мар 20 17:09 backup_2025-03-20.tar

2. Восстановление Avanpost DS из резервной копии

Восстановление требуется в случае сбоя всех контроллеров в домене. Для восстановления Avanpost DS используется утилита "db-load".
Утилита восстанавливает базу данных из резервной копии. Запускать утилиту необходимо только при выключенном Avanpost DS. При восстановлении удаляет информацию о репликах (replhosts).

Флаги:

  • -i, --input — Путь к архиву резервной копии. Указывает расположение архива, который нужно восстановить.
  • -c, --config — Путь, по которому будет восстановлен конфигурационный файл из архива резервной копии. Файл будет извлечён и сохранён по этому пути (включая название).
  • -k, --keytab — Путь, по которому будет восстановлен файл keytab из архива резервной копии. Файл будет извлечён и сохранён по этому пути (включая название).
Пример использования утилиты
$ /opt/avanpost/tools/cli/cli db-load \
-c "/opt/avanpost/ads/config/config.yaml" \
-k "/opt/avanpost/ads/config/.mkey.keytab" \
-i "/opt/avanpost/ads/backup_2025-03-20.tar"

Database LOAD: starting...
config is valid
badger 2025/04/16 10:24:43 INFO: All 0 tables opened in 0s
badger 2025/04/16 10:24:43 INFO: Discard stats nextEmptySlot: 0
badger 2025/04/16 10:24:43 INFO: Set nextTxnTs to 0
Database LOAD: successful, please, start DS again.

$ ls -la /opt/avanpost | grep "data"
drwx------  2 ads ads 691682334 апр 07 07:05 data
drwx------  2 ads ads 891482734 апр 07 07:05 data_old_2025-04-7-07-05-55

Для восстановления Avanpost DS необходимо выполнить шаги:

Шаг 1. Выключить Avanpost DS на всех контроллерах домена.

Для этого требуется выполнить команду:

sudo systemctl stop ads

Шаг 2. Восстановить один из контроллеров из резервной копии.

Для этого требуется на выбранном КД запустить восстановление базы данных с помощью "db-load".

Шаг 3. Запустить Avanpost DS на восстановленном контроллер домена. 

Для этого требуется выполнить команду:

sudo systemctl start ads

Данный контроллер станет основным.

Шаг 4. Установить права для пользователя "ads" на директорию "/opt/avanpost".

Для этого необходимо выполнить команду:

sudo chown -R ads:ads /opt/avanpost/ads

Шаг 5. Очистить данные на остальных контроллерах.

Для этого требуется выполнить команды:

rm -rf /opt/avanpost/ads/data \
rm -rf /opt/avanpost/ads/ds-log \ 

Шаг 6. Запустить Avanpost DS на остальных контроллерах.

Для этого требуется выполнить команду:

sudo systemctl start ads

Шаг 7. Добавить остальные контроллеры домена в репликацию.

Для этого необходимо выполнить команду на каждом неосновном КД, подставив свои значения в шаблон:

Шаблон команды
/opt/avanpost/tools/cli/cli add-instance --host [IP2] --name [FQDN2] --endpoint [IP1]:48910 --user [ADMIN_USER] --password [ADMIN_PASSWORD]

Заменить [ADMIN_USER] и [ADMIN_PASSWORD] на реквизиты учетной записи пользователя с правами добавления контроллеров, по умолчанию это Administrator:Avanp0st

Заменить [IP2] на IP-адрес нового контроллера.

Заменить [IP1] на IP-адрес первичного(основного) контроллера.

Заменить [FQDN2] на FQDN нового контроллера.

Пример команды
/opt/avanpost/tools/cli/cli add-instance --host 192.168.1.12 --name ds02.avanpost.local --endpoint 192.168.1.11:48910 --user Administrator --password Avanp0st

Шаг 8. Проверить репликацию. 

Все вторичные КД должны синхронизироваться с основным КД, восстановленным из резервной копии. После завершения репликации инфраструктура будет восстановлена.

Обсуждение