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

Создание резервной копии в онлайн-режиме

Для создания резервной копии текущего состояния БД работающего контроллера домена в виде файла в формате .tar.bz2 используется следующий формат вызова:

samba-tool domain backup online --server=<DC-to-backup> --targetdir=<output-dir> [options]

Подкоманда создает резервную копию текущего состояния домена, обращаясь к работающему контроллеру домена. Содержимое копии аналогично содержимому базы данных вновь присоединенного контроллера домена.

В случае выхода домена из строя полученный файл может использоваться для его восстановления.

Подкоманда может выполняться как локально, так и в удаленном режиме. Во втором случае для включения в резервную копию требуемых настроек может быть передан конфигурационный файл smb.conf с помощью опции -s|--configfile.

При использовании подкоманды следует обратить внимание на следующее:

  • перед созданием резервной копии рекомендуется выполнить команду samba-tool dbcheck и исправить обнаруженные ошибки;

  • по умолчанию в резервную копию включаются все секреты домена;

  • несмотря на возможность разархивировать содержимое файла с резервной копией базы данных вручную, перед запуском контроллера домена из резервной копии требуется выполнить команду samba-tool domain backup restore.

Параметры

Параметры вызова:

  • --server=SERVER — имя контроллера домена, на основе данных которого требуется создать резервную копию;

  • --targetdir=TARGETDIR — каталог для сохранения резервной копии;

  • --no-secrets — исключение из резервной копии секретов;

  • --backend-store=BACKENDSTORE — тип базы данных каталога; возможные значения: tdb | mdb;

    Значение по умолчанию соответствуют текущему типу базы данных локального или указанного удаленного контроллера домена.

  • --no-sysvol — исключение из резервной копии содержимого sysvol;

  • --with-dns — включение в резервную копию конфигурационных файлов DNS-сервера (только при локальном запуске);

  • --with-tls — включение в резервную копию TLS-ключей и сертификатов (только при локальном запуске).

Опции --with-dns и --with-tls несовместимы с параметром --server. Они могут использоваться только при локальном запуске на том же контроллере, где выполняется резервное копирование.

Примеры

Пример создания резервной копии домена в онлайн-режиме на локальном контроллере домена:

mkdir online-domain-backups
samba-tool domain backup online \
   --targetdir=online-domain-backups

Пример создания резервной копии домена в онлайн-режиме с указанием удаленного контроллера домена и предварительным копированием с него файла конфигурации:

scp dc01.elles.inno.tech:/app/inno-samba/etc/smb.conf ./smb.conf.dc01
mkdir online-domain-backups
samba-tool domain backup online \
--server=dc01.elles.inno.tech \
--configfile=smb.conf.dc01 \
--realm=ELLES.INNO.TECH \
--username=Administrator@ELLES.INNO.TECH \
--targetdir=online-domain-backups

Пример создания резервной копии домена в онлайн-режиме с включением DNS и TLS-конфигураций:

mkdir online-domain-backups
samba-tool domain backup online \
   --targetdir=online-domain-backups \
   --with-dns \
   --with-tls

Создание резервной копии в автономном режиме

Для создания резервной копии (с установкой соответствующих блокировок) БД службы каталогов на определенном контроллере домена в виде файла в формате .tar.bz2 используется следующий формат вызова:

samba-tool domain backup offline --targetdir=<output-dir> [options]

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

Основные отличия создания резервной копии в автономном режиме от создания резервной копии в онлайн-режиме:

  • резервная копия может быть создана, в том числе, и при неработающем контроллере домена (то есть когда сервисы службы каталогов не работают);

  • в копию включаются метаданные репликации, специфичные для данного конкретного контроллера домена;

  • в копию попадают атрибуты, которые еще не были обработаны процессом репликации;

  • используются «сырые» файлы базы данных, что означает сохранение в резервной копии всех их особенностей, включая возможные проблемы и ошибки.

Для корректной работы команды требуется пакет lmdb-utils.
Для запуска подкоманды требуются права суперпользователя (root/sudo).

Параметры

Параметры вызова:

  • --targetdir=TARGETDIR — каталог для сохранения резервной копии.

Примеры

Пример создания резервной копии в автономном режиме с указанием каталога:

mkdir offline-domain-backups
samba-tool domain backup offline \
   --targetdir=offline-domain-backups

Создание резервной копии с переименованием

Для создания резервной копии текущего состояния БД работающего контроллера домена с одновременным переименованием домена (<new-domain> — новое NetBIOS-имя для домена, <new-dnsrealm> — новая область безопасности для домена) используется следующий формат вызова:

samba-tool domain backup rename <new-domain> <new-dnsrealm> --server=<DC-to-backup> --targetdir=<output-dir> [options]

Подкоманда работает аналогично подкоманде samba-tool backup online, создавая копию базы данных работающего контроллера домена. Однако при ее использовании также может быть выполнено переименование всех доменных записей в базе данных.

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

Подкоманда может выполняться как локально, так и в удаленном режиме. Во втором случае для включения в резервную копию требуемых настроек может быть передан конфигурационный файл smb.conf с помощью опции -s|--configfile.

При использовании подкоманды следует обратить внимание на следующее:

  • перед созданием резервной копии рекомендуется выполнить команду samba-tool dbcheck и исправить обнаруженные ошибки;

  • в резервную копию включаются все секреты домена;

  • несмотря на возможность разархивировать содержимое файла с резервной копией базы данных вручную, перед запуском контроллера домена из резервной копии требуется выполнить команду samba-tool domain backup restore;

  • объекты групповых политик (GPO) и информация в sysvol будут по-прежнему ссылаться на старую область безопасности, поэтому потребуется обновить их вручную;

  • при указании опции --keep-dns-realm потребуется вручную обновить DNS-записи, так как они по-прежнему будут ссылаться на IP-адрес старого контроллера домена.

Параметры

Параметры вызова:

  • <new-domain> — новое NetBIOS-имя для домена;

  • <new-dnsrealm> — новая область безопасности для домена;

  • --server=SERVER — имя контроллера домена, на основе данных которого требуется создать резервную копию;

  • --targetdir=TARGETDIR — каталог для сохранения резервной копии;

  • --keep-dns-realm — сохранение в резервной копии DNS-записей, относящихся к старой области безопасности;

  • --no-secrets — исключение из резервной копии секретов;

  • --backend-store=BACKENDSTORE — тип базы данных каталога; возможные значения: tdb | mdb.

    Значение по умолчанию соответствуют текущему типу базы данных локального или указанного удаленного контроллера домена.

Примеры

Пример создания резервной копии домена с переименованием без сохранения секретов:

mkdir rename-domain-backups
samba-tool domain backup rename \
   testlab testlab.inno.tech \
   --server=dc01e.elles.inno.tech \
   --targetdir=rename-domain-backups \
   --no-secrets

Восстановление домена из файла с резервной копией

Для восстановления домена из файла с резервной копией используется следующий формат вызова:

samba-tool domain backup restore --backup-file=<tar-file> --targetdir=<output-dir> --newservername=<DC-name> [options]

Подкоманда позволяет восстановить на новом контроллере домена базу данных домена из ранее созданной резервной копии.

Восстановленная база данных не будет содержать исходный контроллер домена, на основе которого была создана резервная копия (или какой-либо другой из контроллеров, существовавших в исходном домене). В восстановленной базе данных будет присутствовать только новый контроллер домена, указанный в параметре --newservername.

После восстановления база данных может использоваться для запуска службы каталогов. Перед запуском нового контроллера домена требуется остановить все существующие в домене контроллеры. После этого для восстановления работы сети к новому контроллеру домена могут быть присоединены остальные контроллеры.

Восстановление конфигурационных файлов и файлов базы данных домена должно производиться в пустой каталог. Это может быть новый каталог или предварительно очищенный каталог /app/inno-samba. Во втором случае рекомендуется предварительно скопировать содержимое /app/inno-samba для возможного анализа в будущем.

Если размер каталога не позволяет выполнить требования к времени восстановления (RTO), рекомендуется использовать для восстановления новый каталог.

В случае восстановления в новый каталог при запуске службы inno-samba достаточно передать ей путь к файлу smb.conf в новом каталоге с помощью опции -s|--configfile.

По умолчанию контроллер домена, на котором выполняется операция восстановления, добавляется в сайт Default-First-Site-Name. Если сайт в восстанавливаемой базе данных не существует, он будет создан. Для указания другого сайта при вызове подкоманды восстановления передайте его имя с помощью опции --site.

Перед запуском inno-samba на контроллере домена после восстановления обязательно проверьте корректность настроек в созданном при восстановлении файле smb.conf.

Параметры

Параметры вызова:

  • --backup-file=BACKUPFILE —путь к файлу резервной копии;

  • --targetdir=TARGETDIR — путь к каталогу, в котором следует вести запись данных;

  • --newservername=NEWSERVERNAME — имя нового сервера для контроллера домена;

  • --host-ip=IPADDRESS — IPv4-адрес сервера;

  • --host-ip6=IP6ADDRESS — IPv6-адрес сервера;

  • --site=SITE — сайт, в который должен быть добавлен новый сервер.

Примеры

Пример восстановления домена из резервной копии с указанием нового пустого каталога:

samba-tool domain backup restore \
   --backup-file=samba-backup-elles.inno.tech-2026-07-31T11-54-57.781659.tar.bz2 \
   --newservername=dc04 \
   --targetdir=/app/inno-samba2

Создание LDIF-файла для частичного (гранулярного) восстановления данных каталога из файла с резервной копией

Для создания LDIF-файла с целью частичного восстановления данных каталога из файла с резервной копией используется следующий формат вызова:

samba-tool domain backup granularrestore --makeldif <json_filename> <backup-file> [options]

В качестве обязательных аргументов ожидаются:

  • имя и путь к файлу в формате JSON, содержащему массив DN объектов для сравнения с содержимым файла с резервной копией домена в виде значения ключа DNs (<json_filename>);

    Формат файла:

    {
        "DNs": [
            "DN_1",
            "DN_2",
            ..
            "DN_N",
        ]
    }

    Например:

    {
        "DNs": [
            "CN=User Name 1,OU=OU1,DC=elles,DC=inno,DC=tech"
        ]
    }
  • имя и путь к файлу с резервной копией домена (<backup-file>).

Подкоманда формирует и передает в стандартный поток вывода (stdout) запись в формате LDIF для добавления (по умолчанию) или изменения (если передан ключ --action=Modify) в БД LDAP данных объектов с указанными в JSON-файле DN-именами на основе переданного файла с резервной копией БД домена.

При необходимости список изменяемых атрибутов может быть ограничен. Для этого достаточно передать в качестве значения параметра --attributes имя и путь к текстовому файлу со списком LDAP-имен атрибутов. При этом:

  • если дополнительно не передан ключ --exclude, подкоманда обрабатывает только перечисленные в файле атрибуты;

  • если также используется ключ --exclude, подкоманда обрабатывает все атрибуты объекта, кроме перечисленных в файле.

Если при использовании операции --action=Modify список атрибутов не передается, подкоманда формирует список блоков replace для замены значений всех атрибутов объекта, кроме игнорируемых, значениями из файла с резервной копией.

Параметры

Параметры вызова:

  • --makeldif (обязательный) — указывает на то, что в результате работы подкоманды должен быть сформирован LDIF-файл в соответствии с переданными параметрами;

  • --action=Add|Modify — значение для атрибута changetype в LDIF-файле:

    • Add (по умолчанию) — добавление новой записи об объекте в БД LDAP на основе данных из файла с резервной копией;

      Подкоманда игнорирует следующие атрибуты объекта: member, sAMAccountType, objectSid, memberOf, objectGUID, isCriticalSystemObject, primaryGroupID, pwdLastSet. Они включаются в вывод в виде закомментированных строк.
    • Modify — изменение атрибутов записи об объекте в БД LDAP на основе данных из файла с резервной копией;

      Подкоманда игнорирует следующие атрибуты объекта: objectSid, sAMAccountType, instanceType, whenCreated, uSNCreated, objectGUID, memberOf, whenChanged, uSNChanged, distinguishedName, name, cn, objectClass. Они включаются в вывод в виде закомментированных строк.
  • --attributes=ATTRIBUTESFILE — имя и путь к текстовому файлу со списком атрибутов для обработки подкомандой;

    Например:

    company
    department
    title
    telephoneNumber
  • --exclude — исключение из обработки атрибутов, переданных в файле; используется только вместе с параметром --attributes.

Примеры

Пример создания LDIF-файла для восстановления отдельного объекта из резервной копии:

samba-tool domain backup granularrestore \
    --makeldif \
    dn_to_restore.json \
    samba-backup-elles.inno.tech-somedate.tar.bz2

Пример создания LDIF-файла для восстановления значений всех атрибутов (кроме игнорируемых) отдельного объекта на основе данных из резервной копии:

samba-tool domain backup granularrestore \
    --makeldif \
    dn_to_restore.json \
    samba-backup-elles.inno.tech-somedate.tar.bz2 \
    --action=Modify

Пример создания LDIF-файла для восстановления указанных в файле атрибутов объекта из резервной копии:

samba-tool domain backup granularrestore \
    --makeldif \
    dn_to_restore.json \
    samba-backup-elles.inno.tech-somedate.tar.bz2 \
    --attributes attrs.txt \
    --action=Modify

Пример создания LDIF-файла для восстановления атрибутов объекта, кроме указанных в файле, из резервной копии:

samba-tool domain backup granularrestore \
    --makeldif \
    dn_to_restore.json \
    samba-backup-elles.inno.tech-somedate.tar.bz2 \
    --attributes attrs_to_exclude.txt \
    --exclude \
    --action=Modify

Получение информации о состоянии автоматического резервного копирования

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

samba-tool domain backup info

Подкоманда выводит информацию о состоянии автоматического резервного копирования, включая:

  • статус включения автоматического резервного копирования (Backup enabled);

  • имя объекта блокировки (Backup manager name);

  • DN объекта блокировки (Backup manager DN);

  • DN контроллера AD — текущего владельца роли генератора резервных копий (Backup role owner);

  • время последнего подтверждения владения ролью генератора резервных копий (Backup role confirmed at);

  • интервал проверки владения ролью генератора резервных копий (Vote backup manager interval (s));

  • таймаут захвата роли генератора резервных копий (Vote backup manager timeout (s));

  • расписание резервного копирования (Backup schedule);

  • команду запуска резервного копирования (Make backup script command);

  • время последнего успешного создания резервной копии на текущем контроллере (Last backup timestamp (on this DC)).

Параметры

Доступны стандартные параметры samba-tool. Дополнительные параметры отсутствуют.

Примеры

Пример получения информации о состоянии автоматического резервного копирования:

samba-tool domain backup info
...
Backup enabled:                     True
Backup manager name:                BackupManager
Backup manager DN:                  CN=BackupManager,CN=Users,DC=elles,DC=inno,DC=tech
Backup role owner:                  CN=NTDS Settings,CN=elles_dc1,CN=Servers,CN=Site1,CN=Sites,CN=Configuration,DC=elles,DC=inno,DC=tech
Backup role confirmed at:           31/07/2026 14:55:40
Vote backup manager interval (s):   3600
Vote backup manager timeout (s):    14400
Backup schedule:                    0 3 * * *
Make backup script command:         ['samba-tool', 'domain', 'backup', 'online', '--targetdir=/var/backups/elles', '--use-keytab=/app/inno-samba/etc/backupuser.keytab', '-U backupuser']
Last backup timestamp (on this DC): 30/07/2026 03:05:18

Сброс владельца роли генератора резервный копий

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

samba-tool domain backup reset

Подкоманда устанавливает пустое значение в атрибуте fSMORoleOwner объекта блокировки в LDAP (по умолчанию — BackupManager; может быть переопределен с помощью параметра backup: backup manager name), тем самым освобождая роль генератора резервных копий и позволяя другому контроллеру домена захватить ее в соответствии с алгоритмом голосования.

Параметры

Доступны стандартные параметры samba-tool. Дополнительные параметры отсутствуют.

Примеры

Пример сброса владельца роли генератора резервных копий:

samba-tool domain backup reset
Success