Event ID 1046 DHCP-Server: error while cleaning up the database
Симптомы сбоя базы данных DHCP (Event ID 1046)
В системном журнале Windows Server регистрируется ошибка службы DHCP с кодом Event ID 1046:
The DHCP service encountered the following error while cleaning up the database: An error occurred while accessing the DHCP database. Error code: 0x0 / 0x1F.
Характерные признаки сбоя:
- Служба DHCP Server периодически аварийно останавливается или зависает в цикле автоматической фоновой очистки (Database Scavenging).
- Новые аренды не записываются в файл
dhcp.mdb, что приводит к выдаче одного и того же IP-адреса двум разным клиентам. - Консоль
dhcpmgmt.mscотображает красный значок на сервере или зависает при открытии списка адресов. - Размер файла базы данных
C:\Windows\System32\dhcp\dhcp.mdbнепрерывно растет.
Что происходит под капотом: Служба DHCP хранит все настройки и аренды в реляционной базе данных движка Microsoft JET (ESE). Каждые 60 минут служба запускает фоновую очистку истекших записей. Если в индексных таблицах базы dhcp.mdb возникли повреждения, процедура сбора мусора падает с Event ID 1046.
Пошаговое восстановление и дефрагментация базы DHCP
Остановка службы DHCP и создание резервной копии
Перед любыми манипуляциями обязательно сохраните текущее состояние папки DHCP:
Stop-Service -Name DHCPServer Copy-Item -Path "C:\Windows\System32\dhcp" -Destination "C:\dhcp_backup" -Recurse -ForceАвтономная дефрагментация и проверка целостности утилитой Jetpack
В командной строке (CMD) от имени Администратора выполните сжатие и восстановление базы:
cd C:\Windows\System32\dhcp jetpack dhcp.mdb temp.mdb(Утилита
jetpackвосстановит поврежденные страницы, создаст временный файл temp.mdb, а затем заменит им основной dhcp.mdb).Восстановление базы из автоматического снимка (Backup)
Если jetpack сообщает о неустранимом повреждении, восстановите базу из встроенного системного бекапа:
- Удалите поврежденный файл
C:\Windows\System32\dhcp\dhcp.mdb. - Скопируйте резервный файл из папки
C:\Windows\System32\dhcp\backup\new\dhcp.mdbв папкуC:\Windows\System32\dhcp\. - Запустите службу:
Start-Service -Name DHCPServer.
- Удалите поврежденный файл
Принудительная сверка базы данных (Reconcile All Scopes)
После запуска службы синхронизируйте базу с реестром:
# Сверка всех областей DHCP: Reconcile-DhcpServerv4IPRecord -ScopeId 192.168.1.0 -ReportOnly
Частые вопросы (FAQ)
Что такое утилита jetpack.exe?
Jetpack — это специализированная консольная утилита Microsoft для дефрагментации, проверки целостности и сжатия баз данных ESE/JET (используется для DHCP и WINS).
Где Windows Server хранит автоматические резервные копии DHCP?
По умолчанию автоматический снимок базы создается каждые 60 минут в каталоге C:\Windows\System32\dhcp\backup\.
Можно ли полностью пересоздать базу DHCP без потери настроек?
Да, можно экспортировать конфигурацию командой Export-DhcpServer -File C:\dhcp.xml -Leases, очистить папку DHCP и затем восстановить все настройки через Import-DhcpServer.
Влияет ли антивирус на возникновение ошибки 1046?
Да, если антивирус сканирует файл dhcp.mdb и лог-файлы j50.log в момент процедуры очистки, служба DHCP блокируется и выдает ошибку доступа.