NTDS (820) NTDSA: База данных C:\Windows\NTDS\ntds.dit: индекс INDEX_00020078 таблицы datatable поврежден (0).

Технический пост.

Проблема на контроллере домена Windows Server 2008. В логах появилось сообщение:

NTDS (820) NTDSA: База данных C:\Windows\NTDS\ntds.dit: индекс INDEX_00020078 таблицы datatable поврежден (0).

Вот действия по восстановлению, после которых и AD и DNS пришли в чувства. Для начала тормозим NTDS через оснастку, потом запускаем cmd. А дальше смотрим, что я вводил и что получилось:

dcdiag

Запуск проверки: Connectivity
……………………. K-3790 – пройдена проверка Connectivity

Выполнение основных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: Advertising
Неустранимая ошибка: сбой при вызове DsGetDcName (K-3790), ошибка 1355
Локатору не удается найти сервер.
……………………. K-3790 – не пройдена проверка Advertising

Выполнение проверок разделов на: ForestDnsZones

Выполнение проверок разделов на: DomainDnsZones

Выполнение проверок разделов на: Schema

Выполнение проверок разделов на: Configuration

Выполнение проверок разделов на: kazanova

Выполнение проверок предприятия на: kazanova.local

C:\Windows\system32>dcdiag /fix /test:netlogons

Диагностика сервера каталогов

Выполнение начальной настройки:
Выполняется попытка поиска основного сервера…
Основной сервер = K-3790
* Идентифицирован лес AD.
Сбор начальных данных завершен.

Выполнение обязательных начальных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: Connectivity
……………………. K-3790 – пройдена проверка Connectivity

Выполнение основных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: NetLogons
Не удается подключиться к общему ресурсу NETLOGON. (\\K-3790\netlogon)
[K-3790] Сбой операции net use или LsaPolicy с ошибкой 67,
Не найдено сетевое имя..
……………………. K-3790 – не пройдена проверка NetLogons

Выполнение проверок разделов на: ForestDnsZones

Выполнение проверок разделов на: DomainDnsZones

Выполнение проверок разделов на: Schema

Выполнение проверок разделов на: Configuration

Выполнение проверок разделов на: kazanova

Выполнение проверок предприятия на: kazanova.local

C:\Windows\system32>net share

Общее имя   Ресурс                        Заметки

——————————————————————————-
ADMIN$       C:\Windows                      Удаленный Admin
C$           C:\                             Стандартный общий ресурс
IPC$                                         Удаленный IPC
E$           E:\                             Стандартный общий ресурс
D$           D:\                             Стандартный общий ресурс
common       D:\common
D            D:\
Frontol_Exchange
D:\common\Frontol_Exchange
Kazanova_FS  D:\common\Kazanova_FS
KLSHARE      C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center\Shar
e

Users        C:\Users
Команда выполнена успешно.

Внимание! Нет шары SYSVOL! Идем сюда и делаем то, что в конце написано.
C:\Windows\system32>net share

Общее имя   Ресурс                        Заметки

——————————————————————————-
C$           C:\                             Стандартный общий ресурс
E$           E:\                             Стандартный общий ресурс
IPC$                                         Удаленный IPC
D$           D:\                             Стандартный общий ресурс
ADMIN$       C:\Windows                      Удаленный Admin
common       D:\common
D            D:\
Frontol_Exchange
D:\common\Frontol_Exchange
Kazanova_FS  D:\common\Kazanova_FS
KLSHARE      C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center\Shar
e

SYSVOL       C:\Windows\SYSVOL\sysvol        Общий сервер входа
Users        C:\Users
Команда выполнена успешно.

C:\Windows\system32>dcdiag /fix /test:netlogons

Диагностика сервера каталогов

Выполнение начальной настройки:
Выполняется попытка поиска основного сервера…
Основной сервер = K-3790
* Идентифицирован лес AD.
Сбор начальных данных завершен.

Выполнение обязательных начальных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: Connectivity
……………………. K-3790 – пройдена проверка Connectivity

Выполнение основных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: NetLogons
Не удается подключиться к общему ресурсу NETLOGON. (\\K-3790\netlogon)
[K-3790] Сбой операции net use или LsaPolicy с ошибкой 67,
Не найдено сетевое имя..
……………………. K-3790 – не пройдена проверка NetLogons

Выполнение проверок разделов на: ForestDnsZones

Выполнение проверок разделов на: DomainDnsZones

Выполнение проверок разделов на: Schema

Выполнение проверок разделов на: Configuration

Выполнение проверок разделов на: kazanova

Выполнение проверок предприятия на: kazanova.local

C:\Windows\system32>dcdiag /fix /test:advertising

Диагностика сервера каталогов

Выполнение начальной настройки:
Выполняется попытка поиска основного сервера…
Основной сервер = K-3790
* Идентифицирован лес AD.
Сбор начальных данных завершен.

Выполнение обязательных начальных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: Connectivity
……………………. K-3790 – пройдена проверка Connectivity

Выполнение основных проверок

Сервер проверки: Default-First-Site\K-3790
Запуск проверки: Advertising
……………………. K-3790 – пройдена проверка Advertising

Выполнение проверок разделов на: ForestDnsZones

Выполнение проверок разделов на: DomainDnsZones

Выполнение проверок разделов на: Schema

Выполнение проверок разделов на: Configuration

Выполнение проверок разделов на: kazanova

Выполнение проверок предприятия на: kazanova.local

C:\Windows\system32>dcdiag /f:d:\full_log2.txt

C:\Windows\system32>nsdsutil
“nsdsutil” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Windows\system32>ntdsutil
ntdsutil: files
Не задан активный экземпляр. Для задания активного экземпляра используется коман
да “Активировать экземпляр”.
ntdsutil: activate instance ntds
Активный экземпляр – “ntds”.
ntdsutil: files
Служба “NTDS” запущена. Остановите эту службу перед привязкой к данной базе данн
ых Active Directory.
ntdsutil: files
file maintenance: checksum
Проверка контрольной суммы для базы данных: C:\Windows\NTDS\ntds.dit.

File: C:\Windows\NTDS\ntds.dit

Checksum Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Просмотрено страниц: 2562.
Неправильных контрольных сумм: 0.
Исправимых контрольных сумм: 0
Неинициализированных страниц: 400.
Неправильных номеров страниц: 0.
0x19180f наивысшее время dbtime (страница 0x602)

321 операций чтения выполнено.
Прочитано 20 МБ.
Потребовалось секунд: 1.
20 МБ/сек.
Потребовалось миллисекунд: 18396.
57 миллисекунд на операцию чтения.
109 миллисекунд на самую медленную операцию чтения.
0 миллисекунд на самую быструю операцию чтения.

file maintenance: ?

?                             – Вывод этой справочной информации
Checkpoint                    – Дамп файла контрольной точки JET
Checksum                      – Проверка физической целостности Jet
Compact to %s                 – Уплотнение БД в указанную папку
Dump page %d                  – Дамп страницы %d базы данных JET
Header                        – Дамп заголовка базы данных Jet
Help                          – Вывод этой справочной информации
Info                          – Возврат информации о файлах DS
Integrity                     – Выполнение проверки логической целостности Jet
Logfile %s                    – Дамп файла журнала JET %s. %s может быть абсолю
тным
путем или просто именем файла журнала в папке ж
урналов.
Metadata                      – Дамп метаданных базы данных JET
Move DB to %s                 – Перемещение БД в указанную папку
Move logs to %s               – Перемещение файлов журналов в указанную папку
Quit                          – Возврат к предыдущему меню
Recover                       – Выполнение “мягкого” восстановления базы данных

Set backup exclusion key      – Установите ключ исключения архивации для AD DS/
LDS.
Set default folder security   – Установка стандартных значений
параметров безопасности для папок NTDS
Set path backup %s            – Задает путь к оперативной архивной папке
Set path DB %s                – Задает путь к файлам БД
Set path logs %s              – Задает путь к папке журналов
Set path working dir %s       – Задание пути рабочего каталога для DS/LDS AD
Space usage                   – Дамп использования пространства базой данных JE
T

file maintenance: integrity
Выполнение проверки целостности для базы данных: C:\Windows\NTDS\ntds.dit.

Checking database integrity.

Scanning  Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Integrity check completed.
Database is CORRUPTED, the last full backup of this database was on 01/17/2016 2
1:00:36
Операция прекращена с ошибкой -1206( JET_errDatabaseCorrupted, Non database file
or corrupted db ).
file maintenance: recover

Запуск режима ВОССТАНОВЛЕНИЯ…
Файлы журнала: C:\Windows\NTDS.
Системные файлы: C:\Windows\NTDS.

Выполнение “мягкого” восстановления…

База данных успешно восстановлена.

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

file maintenance: q
ntdsutil: ?

?                             – Вывод этой справочной информации
Activate Instance %s          – Устанавливает “NTDS” или определенный экземпляр
AD LDS
в качестве активного экземпляра.
Authoritative restore         – Принудительно восстановить базу данных DIT
Change Service Account %s1 %s2 – Измените учетную запись службы AD DS/LDS на
имя пользователя %s1 и пароль %s2.
Используйте “NULL” для пустого пароля или “*” дл
я
ввода пароля с консоли.
Configurable Settings         – Управление настраиваемыми параметрами
DS Behavior                   – Просмотр и изменение режима работы AD DS/LDS
Files                         – Управление файлами DS/LDS-базы данных AD
Group Membership Evaluation   – Оцените идентификаторы безопасности в токене дл
я
данного пользователя или группы
Help                          – Вывод этой справочной информации
IFM                           – Создание носителя IFM
LDAP policies                 – Управление политиками протокола LDAP
LDAP Port %d                  – Настройка порта LDAP для экземпляра AD LDS.
List Instances                – Составьте список всех экземпляров AD LDS, устан
овленных
на этом компьютере.
Local Roles                   – Управление локальными ролями RODC
Metadata cleanup              – Очистка объектов ликвидированных серверов
Partition management          – Управление разделами каталогов
Popups off                    – Запретить всплывающие окна
Popups on                     – Разрешить всплывающие окна
Quit                          – Выход из программы
Roles                         – Токены владельца управления ролью NTDS
Security account management   – Управление базой данных учетных записей –
очистка повторяющихся SID
Semantic database analysis    – Проверка семантики
Set DSRM Password             – Сброс пароля администратора для режима
восстановления службы каталогов

Snapshot                      – Управление снимком
SSL Port %d                   – Настройка порта SSL для экземпляра AD LDS.

ntdsutil: semantic database analysis
semantic checker: ?

?                             – Вывод этой справочной информации
Check Quota                   – Проверки целостности таблицы отслеживания квот
Get %d                        – Получить информацию о записи с данным DNT
Go                            – Запуск проверки семантики без исправлений
Go Fixup                      – Запуск проверки семантики с исправлением
Help                          – Вывод этой справочной информации
Quit                          – Возврат к предыдущему меню
Rebuild Quota                 – Принудительная асинхронная перестройка таблицы

отслеживания квот
Verbose %s                    – Включение/выключение режима подробной информаци
и

semantic checker: go fixup
Режим исправления изменен на on

Открытие базы данных DIT… Выполнено.

Выполнено.

……Выполнено.

Запись сводной информации в файл журнала dsdit.dmp.1
Просмотрено SD:            153
Сканировано записей:       3724
Обрабатываются записи..Готово. Прошло секунд: 2.

semantic checker: q
ntdsutil: q

C:\Windows\system32>ntdsutil
ntdsutil: files
Не задан активный экземпляр. Для задания активного экземпляра используется коман
да “Активировать экземпляр”.
ntdsutil: activate instance ntds
Активный экземпляр – “ntds”.
ntdsutil: files
file maintenance: ?

?                             – Вывод этой справочной информации
Checkpoint                    – Дамп файла контрольной точки JET
Checksum                      – Проверка физической целостности Jet
Compact to %s                 – Уплотнение БД в указанную папку
Dump page %d                  – Дамп страницы %d базы данных JET
Header                        – Дамп заголовка базы данных Jet
Help                          – Вывод этой справочной информации
Info                          – Возврат информации о файлах DS
Integrity                     – Выполнение проверки логической целостности Jet
Logfile %s                    – Дамп файла журнала JET %s. %s может быть абсолю
тным
путем или просто именем файла журнала в папке ж
урналов.
Metadata                      – Дамп метаданных базы данных JET
Move DB to %s                 – Перемещение БД в указанную папку
Move logs to %s               – Перемещение файлов журналов в указанную папку
Quit                          – Возврат к предыдущему меню
Recover                       – Выполнение “мягкого” восстановления базы данных

Set backup exclusion key      – Установите ключ исключения архивации для AD DS/
LDS.
Set default folder security   – Установка стандартных значений
параметров безопасности для папок NTDS
Set path backup %s            – Задает путь к оперативной архивной папке
Set path DB %s                – Задает путь к файлам БД
Set path logs %s              – Задает путь к папке журналов
Set path working dir %s       – Задание пути рабочего каталога для DS/LDS AD
Space usage                   – Дамп использования пространства базой данных JE
T

file maintenance: integrity
Выполнение проверки целостности для базы данных: C:\Windows\NTDS\ntds.dit.

Checking database integrity.

Scanning  Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Integrity check completed.
Database is CORRUPTED, the last full backup of this database was on 01/17/2016 2
1:00:36
Операция прекращена с ошибкой -1206( JET_errDatabaseCorrupted, Non database file
or corrupted db ).
file maintenance: recover

Запуск режима ВОССТАНОВЛЕНИЯ…
Файлы журнала: C:\Windows\NTDS.
Системные файлы: C:\Windows\NTDS.

Выполнение “мягкого” восстановления…

База данных успешно восстановлена.

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

file maintenance: integrity
Выполнение проверки целостности для базы данных: C:\Windows\NTDS\ntds.dit.

Checking database integrity.

Scanning  Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Integrity check completed.
Database is CORRUPTED, the last full backup of this database was on 01/17/2016 2
1:00:36
Операция прекращена с ошибкой -1206( JET_errDatabaseCorrupted, Non database file
or corrupted db ).
file maintenance: q
ntdsutil: q

C:\Windows\system32>esentutl

Usage Error: No mode specified.

Extensible Storage Engine Utilities for Microsoft(R) Windows(R)
Version 6.1
Copyright (C) Microsoft Corporation. All Rights Reserved.

DESCRIPTION:  Database utilities for the Extensible Storage Engine for Microsoft
(R) Windows(R).

MODES OF OPERATION:
Defragmentation:  ESENTUTL /d <database name> [options]
Recovery:  ESENTUTL /r <logfile base name> [options]
Integrity:  ESENTUTL /g <database name> [options]
Checksum:  ESENTUTL /k <file name> [options]
Repair:  ESENTUTL /p <database name> [options]
File Dump:  ESENTUTL /m[mode-modifier] <filename>
Copy File:  ESENTUTL /y <source file> [options]

<<<<<  Press a key for more help  >>>>>
D=Defragmentation, R=Recovery, G=inteGrity, K=checKsum,
P=rePair, M=file duMp, Y=copY file
=>

INTEGRITY:
DESCRIPTION:  Verifies integrity of a database.
SYNTAX:  ESENTUTL /g <database name> [options]
PARAMETERS:  <database name> – filename of database to verify
OPTIONS:  zero or more of the following switches, separated by a space:
/t<db>    – set temp. database name (default: TEMPINTEG*.EDB)
/f<name>  – set prefix to use for name of report files
(default: <database>.integ.raw)
/2        – set 2k database page size (default: auto-detect)
/4        – set 4k database page size (default: auto-detect)
/8        – set 8k database page size (default: auto-detect)
/16       – set 16k database page size (default: auto-detect)
/32       – set 32k database page size (default: auto-detect)
/o        – suppress logo
NOTES:  1) Integrity-check does not run database recovery. If a
database is in a “Dirty Shutdown” state it is strongly
recommended that before proceeding with an integrity-
check, recovery is first run to properly complete
database operations for the previous shutdown.

C:\Windows\system32>esentutl /g C:\Windows\NTDS\ntds.dit

Extensible Storage Engine Utilities for Microsoft(R) Windows(R)
Version 6.1
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating INTEGRITY mode…
Database: C:\Windows\NTDS\ntds.dit
Temp. Database: TEMPINTEG6172.EDB

Checking database integrity.

Scanning Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Integrity check completed.
Database is CORRUPTED, the last full backup of this database was on 01/17/2016 2
1:00:36

Operation terminated with error -1206 (JET_errDatabaseCorrupted, Non database fi
le or corrupted db) after 2.293 seconds.

C:\Windows\system32>esentutl /p C:\Windows\NTDS\ntds.dit

Extensible Storage Engine Utilities for Microsoft(R) Windows(R)
Version 6.1
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating REPAIR mode…
Database: C:\Windows\NTDS\ntds.dit
Temp. Database: TEMPREPAIR10996.EDB

Checking database integrity.

Scanning Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Initiating DEFRAGMENTATION mode…
Database: C:\Windows\NTDS\ntds.dit

Defragmentation Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Moving ‘TEMPREPAIR10996.EDB’ to ‘C:\Windows\NTDS\ntds.dit’… DONE!

Note:
It is recommended that you immediately perform a full backup
of this database. If you restore a backup made before the
defragmentation, the database will be rolled back to the state
it was in at the time of that backup.

Operation completed successfully in 16.115 seconds.

C:\Windows\system32>esentutl /g C:\Windows\NTDS\ntds.dit

Extensible Storage Engine Utilities for Microsoft(R) Windows(R)
Version 6.1
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating INTEGRITY mode…
Database: C:\Windows\NTDS\ntds.dit
Temp. Database: TEMPINTEG8252.EDB

Checking database integrity.

Scanning Status (% complete)

0    10   20   30   40   50   60   70   80   90  100
|—-|—-|—-|—-|—-|—-|—-|—-|—-|—-|
……………………………………………

Integrity check successful.

Operation completed successfully in 2.308 seconds.

C:\Windows\system32>