Резервное копирование и восстановление
Для работы с резервными копиями используется подкоманда backup.
| См. общее описание процесса резервного копирования и восстановления домена в разделе «Резервное копирование и восстановление». |
Доступны следующие операции:
Создание резервной копии в онлайн-режиме
Для создания резервной копии текущего состояния БД работающего контроллера домена в виде файла в формате .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). |
Создание резервной копии с переименованием
Для создания резервной копии текущего состояния БД работающего контроллера домена с одновременным переименованием домена (<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.Значение по умолчанию соответствуют текущему типу базы данных локального или указанного удаленного контроллера домена.
Восстановление домена из файла с резервной копией
Для восстановления домена из файла с резервной копией используется следующий формат вызова:
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— сайт, в который должен быть добавлен новый сервер.
Создание 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 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), тем самым освобождая роль генератора резервных копий и позволяя другому контроллеру домена захватить ее в соответствии с алгоритмом голосования.