Управление периодами хранения и очисткой объектов после удаления
Для управления очисткой объектов после удаления в базе данных Эллес с помощью утилиты samba-tool используется группа подкоманд tombstones.
| Для запуска подкоманд требуются права суперпользователя (root/sudo). |
Общие сведения
Жизненный цикл удаленных объектов в Эллес определяется сроками хранения, задаваемыми атрибутами tombstoneLifetime и msDS-deletedObjectLifetime. От их значений зависит, когда сборщик мусора (garbage collector) сможет физически удалить объект из базы данных.
Атрибут tombstoneLifetime задает общий период существования записи об удаленном объекте, необходимый для репликации удаления между контроллерами домена. Если корзина отключена, этот срок полностью покрывает «посмертную» жизнь объекта: после удаления он сразу становится tombstone, хранится в этом состоянии весь период tombstoneLifetime и по его истечении удаляется сборщиком мусора (Рис. 1).
При включенной корзине появляется дополнительный интервал — msDS-deletedObjectLifetime. Он определяет, как долго объект остается в состоянии логически удаленного (isDeleted=True) с сохраненными атрибутами и может быть полностью восстановлен. По истечении этого срока объект переводится в состояние утилизированного (isRecycled=True) с очищенными атрибутами, и далее до момента физического удаления действует уже ограничение tombstoneLifetime (Рис. 2). Таким образом, msDS-deletedObjectLifetime определяет окно полного восстановления, а tombstoneLifetime — максимальный общий срок хранения записи об удаленном объекте. Если msDS-deletedObjectLifetime не задан, он по умолчанию считается равным tombstoneLifetime (см.
«Управление корзиной»).
|
Перед изменением значений
Данные атрибуты относятся к критичным настройкам инфраструктуры и должны изменяться только после оценки топологии репликации и процедур восстановления. |
Очистка объектов после удаления
Формат вызова
Общий формат вызова:
samba-tool domain tombstones expunge NC [NC [...]] [options]
В качестве аргумента ожидается имя раздела каталога, для которого требуется выполнить операцию. При его отсутствии утилизируются и очищаются объекты в доменном разделе.
При отсутствии в вызове дополнительных параметров подкоманда запускает вне расписания стандартный процесс утилизации и очистки удаленных объектов, который обрабатывает только те объекты, для которых истекли установленные сроки хранения:
-
если функциональность корзины выключена:
-
для удаленных объектов — период хранения в базе данных определяется значением атрибута
tombstoneLifetime(по умолчанию — 180 дней; не может быть меньше 2 дней);
-
-
если функциональность корзины включена:
-
для удаленных объектов — период хранения в базе данных определяется значением атрибута
msDS-deletedObjectLifetime(по умолчанию равен значению атрибутаtombstoneLifetime; не может быть меньше 2 дней); -
для утилизированных объектов — период хранения в базе данных определяется значением атрибута
tombstoneLifetime(по умолчанию — 180 дней; не может быть меньше 2 дней).
-
Варианты вызова подкоманды:
-
утилизация объектов:
-
для утилизации объектов за определенный период необходимо дополнительно передать дату в формате YYYY-MM-DD, от которой должен отсчитываться период, в параметре
--current-timeи сам период в днях в значении дополнительного параметра--deleted-object-lifetime:samba-tool domain tombstones expunge \ --current-time=<YYYY-MM-DD> \ --deleted-object-lifetime=<number_of_days>Рекомендуется использовать параметр --current-timeисключительно в тестовых целях. Корректность его работы в текущей версии Эллес не гарантируется. -
для утилизации всех объектов, независимо от времени их логического удаления, необходимо передать
0в значении дополнительного параметра--deleted-object-lifetime:samba-tool domain tombstones expunge \ --deleted-object-lifetime=0
При использовании параметра
--deleted-object-lifetimeучитывайте следующее:-
Значение
--deleted-object-lifetime=0не предназначено для использования в рабочей среде.
Установка атрибутаmsDS-deletedObjectLifetimeв нулевое значение инициирует немедленную утилизацию текущих логически удаленных (isDeleted=True) объектов, то есть фактически отключает предусмотренные механизмы хранения удаленных объектов и обеспечения валидности метаданных удаления, что может привести к нарушению репликационной согласованности и невозможности штатного восстановления.
Такое действие допустимо только в изолированных тестовых сценариях и не должно выполняться в условиях штатной эксплуатации Эллес! -
Уменьшение значения сокращает окно полного восстановления удаленных объектов и ускоряет их перевод в состояние утилизированных (
isRecycled=True) с очисткой атрибутов. -
Увеличение значения может способствовать росту базы данных и репликационной нагрузки.
Изменять параметр следует только с учетом требований к восстановлению и эксплуатационной нагрузки.
-
-
полное (физическое) удаление объектов:
-
для полного удаления объектов за определенный период необходимо дополнительно передать дату в формате YYYY-MM-DD, от которой должен отсчитываться период, в параметре
--current-timeи сам период в днях в значении дополнительного параметра--tombstone-lifetime:samba-tool domain tombstones expunge \ --current-time=<YYYY-MM-DD> \ --tombstone-lifetime=<number_of_days>Рекомендуется использовать параметр --current-timeисключительно в тестовых целях. Корректность его работы в текущей версии Эллес не гарантируется. -
для полного удаления всех объектов, независимо от времени их логического удаления или утилизации, необходимо передать
0в значении дополнительного параметра--tombstone-lifetime:samba-tool domain tombstones expunge \ --tombstone-lifetime=0
При использовании параметра
--tombstone-lifetimeучитывайте следующее:-
Значение
tombstoneLifetime=0не предназначено для использования в рабочей среде.
Установка этого атрибута в нулевое значение делает все объекты в состоянии tombstone (isDeleted=True) или утилизированные объекты (isRecycled=True) кандидатами на немедленное полное (физическое) удаление при следующем цикле очистки базы данных процессом сборки мусора (garbage collector), то есть фактически отключает предусмотренные механизмы хранения удаленных объектов и обеспечения валидности метаданных удаления, что может привести к нарушению репликационной согласованности и невозможности штатного восстановления.
Такое действие допустимо только в изолированных тестовых сценариях и не должно выполняться в условиях штатной эксплуатации Эллес! -
Уменьшение значения сокращает период валидности метаданных удаления и повышает риск появления «висячих» (lingering) объектов при изоляции или восстановлении контроллеров домена.
-
Увеличение значения может способствовать росту размера базы данных и репликационного трафика.
Параметр является критичным для согласованности репликации.
-
| Для запуска подкоманды требуются права суперпользователя (root/sudo). |
Параметры
Параметры вызова:
-
-H PATH|--URL=PATH— путь к локальному файлу базы данных Эллес (по умолчанию после установки пакета — /app/inno-samba/private/sam.ldb);Подкоманда работает напрямую с локальной базой данных Эллес, а не с удаленным LDAP-сервером. Поэтому указывать URL в формате ldap://илиldaps://не допускается. -
--current-time=CURRENT_TIME— время в формате YYYY-MM-DD, относительно которого должен отсчитываться период хранения удаленных или утилизированных объектов (требует указания одного из параметров--deleted-object-lifetimeи--tombstone-lifetime);Рекомендуется использовать параметр --current-timeисключительно в тестовых целях. Корректность его работы в текущей версии Эллес не гарантируется. -
--deleted-object-lifetime=DELETED_OBJECT_LIFETIME— период хранения объектов, помещенных в корзину, в базе данных службы каталогов в днях (требует указания параметра--current-time); -
--tombstone-lifetime=TOMBSTONE_LIFETIME— период хранения утилизированных объектов в базе данных службы каталогов в днях (требует указания параметра--current-time).
Примеры
Пример утилизации объектов, помещенных в корзину за 4 и более дней до указанной даты:
samba-tool domain tombstones expunge DC=elles,DC=inno,DC=tech \
--current-time=2026-02-12 \
--deleted-object-lifetime=4
...
Removed 0 objects, 0 dynamic objects, 0 links, recycled 10 objects and prolonged 0 dynamic objects successfully
Пример очистки объектов, удаленных или утилизированных за 4 и более дней до указанной даты:
samba-tool domain tombstones expunge DC=elles,DC=inno,DC=tech \
--current-time=2026-02-12 \
--tombstone-lifetime=4
...
Removed 10 objects, 0 dynamic objects, 2 links, recycled 0 objects and prolonged 0 dynamic objects successfully
Пример очистки всех объектов, независимо от фактического срока их хранения после удаления или утилизации:
| Действие допустимо только в изолированных тестовых сценариях и не должно выполняться в условиях штатной эксплуатации Эллес! |
samba-tool domain tombstones expunge DC=elles,DC=inno,DC=tech \
--tombstone-lifetime=0
...
Removed 10 objects, 0 dynamic objects, 0 links, recycled 0 objects and prolonged 0 dynamic objects successfully
Пример утилизации всех объектов, независимо от фактического срока их нахождения в корзине:
| Действие допустимо только в изолированных тестовых сценариях и не должно выполняться в условиях штатной эксплуатации Эллес! |
samba-tool domain tombstones expunge DC=elles,DC=inno,DC=tech \
--deleted-object-lifetime=0
...
Removed 0 objects, 0 dynamic objects, 0 links, recycled 10 objects and prolonged 0 dynamic objects successfully
Пример запуска стандартного процесса очистки с учетом заданных периодов хранения удаленных и утилизированных объектов или периодов по умолчанию:
samba-tool domain tombstones expunge DC=elles,DC=inno,DC=tech ... Removed 48 objects, 0 dynamic objects, 2 links, recycled 24 objects and prolonged 0 dynamic objects successfully
Просмотр и настройка периода хранения объектов в состоянии tombstone (tombstoneLifetime)
Общий формат вызова:
samba-tool domain tombstones lifetime tombstones [new_value] [options]
В качестве аргумента ожидается новое значение для атрибута tombstoneLifetime в днях.
Минимальное допустимое значение — 2 дня. При указании меньшего значения атрибут tombstoneLifetime автоматически устанавливается в 2.
Если новое значение не передается, подкоманда возвращает текущее.
Если при вызове передается дополнительный параметр -f|--force, операция выполняется без подтверждения.
| Уменьшение значения сокращает период валидности метаданных удаления и повышает риск появления «висячих» (lingering) объектов при изоляции или восстановлении контроллеров домена. Увеличение значения может способствовать росту размера базы данных и репликационного трафика. Параметр является критичным для согласованности репликации. |
| Для запуска подкоманды требуются права суперпользователя (root/sudo). |
Параметры
Параметры вызова:
-
-H PATH|--URL=PATH— путь к локальному файлу базы данных Эллес (по умолчанию после установки пакета — /app/inno-samba/private/sam.ldb);Подкоманда работает напрямую с локальной базой данных Эллес, а не с удаленным LDAP-сервером. Поэтому указывать URL в формате ldap://илиldaps://не допускается. -
-f|--force— не запрашивать подтверждение операции.
Примеры
Пример изменения периода хранения объектов в состоянии tombstone (без подтверждения):
samba-tool domain tombstones lifetime tombstones 90 --force Do you really want to set tombstoneLifetime to 90 [YES] CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech attribute tombstoneLifetime was successfully set to 90
Просмотр текущего периода хранения объектов в состоянии tombstone:
samba-tool domain tombstones lifetime tombstones CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech attribute tombstoneLifetime: 90
Просмотр и настройка периода хранения удаленных объектов (msDS-deletedObjectLifetime)
Общий формат вызова:
samba-tool domain tombstones lifetime deleted-objects [new_value] [options]
В качестве аргумента ожидается новое значение для атрибута msDS-deletedObjectLifetime в днях.
Минимальное допустимое значение — 2 дня. При указании меньшего значения атрибут msDS-deletedObjectLifetime автоматически устанавливается в 2.
Если новое значение не передается, подкоманда возвращает текущее (если оно было явно задано ранее).
Если при вызове передается дополнительный параметр -f|--force, операция выполняется без подтверждения.
Уменьшение значения сокращает окно полного восстановления удаленных объектов и ускоряет их перевод в состояние утилизированных (isRecycled=True) с очисткой атрибутов. Увеличение значения может способствовать росту базы данных и репликационной нагрузки. Изменять параметр следует только с учетом требований к восстановлению и эксплуатационной нагрузки.
|
| Для запуска подкоманды требуются права суперпользователя (root/sudo). |
Параметры
Параметры вызова:
-
-H URL|--URL=URL— путь к локальному файлу базы данных Эллес (по умолчанию после установки пакета — /app/inno-samba/private/sam.ldb);Подкоманда работает напрямую с локальной базой данных Эллес, а не с удаленным LDAP-сервером. Поэтому указывать URL в формате ldap://илиldaps://не допускается. -
-f|--force— не запрашивать подтверждение операции.
Примеры
Пример изменения периода хранения удаленных объектов (без подтверждения):
samba-tool domain tombstones lifetime deleted-objects 90 --force Do you really want to set msDS-deletedObjectLifetime to 90 [YES] CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech attribute msDS-deletedObjectLifetime was successfully set to 90
Просмотр текущего периода хранения удаленных объектов:
samba-tool domain tombstones lifetime deleted-objects CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech attribute msDS-deletedObjectLifetime: 90