- JetDelete Function
- JetDelete Function
- Parameters
- Return Value
- Remarks
- Requirements
- Устранение ошибок базы данных Jet и этапы восстановления
- Аннотация
- Сообщения об ошибках
- -501 JET_errLogFileCorrupt
- Причина
- Решение
- -510 JET_errLogWriteFail / Отказ записи для входа в файл
- Причина
- Решение
- -528 JET_errMissingLogFile
- Причина
- Решение
- -543 JET_errRequiredLogFilesMissing
- Причина
- -550 JET_errDatabaseDirtyShutdown
- Причина
- -551 JET_errConsistentTimeMismatch
- Причина
- -567 JET_errDbTimeTooNew
- Причина
- Решение
- -1018 JET_errReadVerifyFailure / Ошибка Checksum на странице базы данных
- Причина
- Решение
- -1019 JET_errPageNotInitialized / Пустая страница базы данных
- Причина
- Решение
- -1021 JET_errDiskReadVerificationFailure / ОС возвращается ERROR_CRC из IO файла
- Причина
- Решение
- -1022 JET_errDiskIO / ошибка IO диска
- Причина
- Решение
- -1206 JET_errDatabaseCorrupted
- Причина
- -1216 JET_errAttachedDatabaseMismatch
- Причина
- -1605 JET_errKeyDuplicate / Незаконный дубликат ключа
- Причина
- Решение
- Причина
- Устранение неполадок
- Дополнительная информация
- Что такое потерянное IO / Lost Flush
JetDelete Function
Applies to: WindowsВ | Windows Server
JetDelete Function
The JetDelete function deletes the current record in a database table.
Parameters
The database session context that will be used for the API call.
The cursor on a database table. The current row will be deleted.
Return Value
This function returns the JET_ERR datatype with one of the following return codes. For more information about the possible ESE errors, see Extensible Storage Engine Errors and Error Handling Parameters.
The operation completed successfully.
The callback function failed in some manner. For example, access violations in callback functions are caught and translated into JET_errCallbackFailed. This error will only be returned by WindowsВ XP and later.
It is not possible to complete the operation because all activity on the instance associated with the session has ceased as a result of a call to JetStopService.
The cursor specified by tableid does not support deletion. See the Remarks section.
It is not possible to complete the operation because the instance associated with the session has encountered a fatal error that requires that access to all data be revoked to protect the integrity of that data. This error will only be returned by WindowsВ XP and later releases.
The cursor specified by tableid is not on a record.
It is not possible to complete the operation because the instance associated with the session has not been initialized yet.
It is not possible to complete the operation because a restore operation is in progress on the instance associated with the session.
The database engine does not have sufficient permissions to delete the record. This may happen if the database file was opened with read-only access.
An update buffer (see JetPrepareUpdate) exists, but not all of the changes made to columns of type JET_coltypLongText and/or columns of type JET_coltypLongBinary could be rolled back.
It is illegal to use the same session from more than one thread at the same time. This error will only be returned by WindowsВ XP and later releases.
It is not possible to complete the operation because the instance associated with the session is being shut down.
The transaction is a read-only transaction, and does not support deletes.
The operation failed because there is not enough memory to retain transactional information about the update.
Another session has previously locked the record for update. The update attempted by this session will fail.
On success, the currency is left just before the next record. If the deleted record was the last in the table, the currency is left at the end of the table (that is, after the new last record). If the deleted record was the only record in the table, the currency is set to the beginning.
The appropriate indexes are automatically updated.
If an update is prepared (using JetPrepareUpdate), it will be canceled. The update buffer will be reset.
On failure, the currency remains unchanged. If an update is prepared (see JetPrepareUpdate), the update buffer may be reset.
Remarks
Not all tables support deletion of rows. A temporary table does not normally support deletion of rows. Deletion of records may be enabled on temporary tables for many reasons, some of which are:
JET_bitTTUpdatable was specified during creation.
Large temporary tables can support deletion if they were created with JET_bitTTScrollable or JET_bitTTIndexed. The threshold at which a temporary table becomes «large» is currently 64 kilobytes, but it may be changed in future releases.
WindowsВ XP and later. Callback functions can be invoked by JetDelete, including JET_cbtypBeforeDelete and JET_cbtypAfterDelete.
It is important to understand the impact of performing a large number of update operations inside of a single transaction. Each update to the database must be tracked by the database engine in the version store. The version store holds a live record of all the different versions of each record or index entry in the database that can be seen by all active transactions. These versions are used to support the multi-versioned concurrency control in use by the database engine to support transactions using snapshot isolation. Once the database engine has exhausted the resources used to store these versions then it can no longer accept further changes until some transactions have concluded to allow these resources to be reclaimed. When the engine is in this state, all updates will fail with JET_errVersionStoreOutOfMemory. The resources available to the database engine to store these versions can be controlled using JetSetSystemParameter with JET_paramMaxVerPages and JET_paramGlobalMinVerPages.
Requirements
Client
Requires WindowsВ Vista, WindowsВ XP or Windows 2000 Professional.
Server
Requires Windows ServerВ 2008, Windows ServerВ 2003, or Windows 2000 Server.
Устранение ошибок базы данных Jet и этапы восстановления
В этой статье вводится сообщение об ошибках базы данных Jet и действия по устранению неполадок.
Оригинальная версия продукта: Windows Server 2012 R2
Исходный номер КБ: 4042791
Аннотация
Во время запуска операционной системы, установки контроллера домена или репликации Active Directory вы можете столкнуться с сообщениями об ошибках Jet. В этой статье вводится сообщение об ошибках Jet и их решения.
Сообщения об ошибках
-501 JET_errLogFileCorrupt
Причина
Аппаратное обеспечение повребляли I/O при написании, или потерянный флеш-компьютер привел к непригодности журнала. Обычно база данных (DB) остается в поврежденном состоянии.
Решение
Восстановление базы данных из известной хорошей резервной копии или переустановка контроллера домена (DC).
-510 JET_errLogWriteFail / Отказ записи для входа в файл
Причина
Произошел сбой записи журнала. Эта проблема может быть вызвана любым из следующих ниже.
- Контроллер, жесткий диск или другое оборудование перестали отвечать на команды дисков.
- Программное обеспечение, например антивирусное программное обеспечение, создало блокировки в файлах журнала Active Directory.
Решение
Перезапуск сервера восстановит доступ, если это проблема оборудования. Если проблема возникает часто, в этом порядке можно обновить прошивку, заменить контроллер или заменить диск.
Для проблемы, которая вызвана программным обеспечением, остановите службы, создав блокировки файлов в файловой системе. Например, определите, вызывает ли антивирусное программное обеспечение блокировки в файлах журнала Active Directory. Убедитесь, что соответствующие файлы были добавлены в список исключений антивирусов. Windows Server 2016 автоматически исключает некоторые файлы и папки из антивирусного сканирования, см. список автоматических исключений. В Windows Server 2012 R2 см.:
Если действия 1 и 2 не устраняют проблему, определите, вызывает ли это приложение или служба, не включающие Майкрософт. Для этого выполните следующие действия:
- Нажмите клавишу Windows + R. Введите MSCONFIG и нажмите кнопку ОК. На вкладке Services выберите Скрыть все службы Майкрософт. Очистить поле для сторонних служб.
- Отключить все элементы запуска с включенной поддержкой.
- Перезапустите сервер.
-528 JET_errMissingLogFile
Причина
Это может быть связано с неожиданным отключением, вызванным отключением электроэнергии или другим неожиданным отключением. К другим причинам относятся изменения администратора в файлах журналов (например, копирование старой копии) или поврежденное программное обеспечение резервного копирования или восстановления (если сразу после восстановления).
Решение
Восстановим базу данных из хорошо известной резервной копии или переустановим dc.
-543 JET_errRequiredLogFilesMissing
См. -528 /JET_errMissingLogFile (см. выше).
Причина
Администратор изменил журналы или потерял флеш-данные при остановке.
-550 JET_errDatabaseDirtyShutdown
Причина
Администратор изменил журналы или потерял флеш-данные при остановке.
-551 JET_errConsistentTimeMismatch
Причина
Администратор изменил журналы или потерял флеш-данные при остановке.
-567 JET_errDbTimeTooNew
Причина
Дисковая подсистема потеряла I/O, вероятно, при зависанию или внеплановом отключении.
Решение
Проверка резервного копирования батареи на дисковый кэш.
-1018 JET_errReadVerifyFailure / Ошибка Checksum на странице базы данных
Причина
DB поврежден из-за сбоя оборудования.
Решение
- Оцените стек диска, включая материнскую доску/контроллер, прошивку, соединители кабели и физические диски, а также свяжитесь с соответствующими поставщиками по известным вопросам. Сравните текущую конфигурацию с справочной конфигурацией поставщиков.
- Оцените, можно ли устранить проблему с помощью последних обновлений прошивки или она была вызвана недавним обновлением прошивки.
- Если некоторые DCs logging -1018s в то время как другие DCs в той же среде нет, и посмотрите на различия в конфигурациях оборудования.
- Базы данных, которые регистрируют эту ошибку, не могут быть восстановлены или восстановлены проверкой целостности или семантическим анализом базы данных в NTDSUTIL или ESENTUTL.
- Автономные дефрагмы могут устранить проблему в маловероятном случае, если проблема вызвана проблемой согласованности индекса.
- Попробуйте автономный defrag. Или восстановим резервное копирование состояния системы, предосудив его. Или усилие-демотируйте, выполните полную очистку метаданных и репромот. Если появится ошибка -1018, повторите ее до тех пор, пока не будет устранена корневая причина аппаратного обеспечения.
При ошибке Jet -1018s на виртуализированных DCs, работающих на одном виртуальном хосте только на компьютерах, использующих контроллер рейда на борту, ошибка может возникнуть из-за отсутствия бесперебойного питания (UPS) недостаточной мощности для бортовых рейдовых контроллеров для фиксации изменений на диске после потери электроэнергии. Обходным решением является настройка программного обеспечения UPS для отключения виртуализированных гостей при потере электроэнергии. Серверы, которые имеют выделенные (не на борту) контроллеры рейда с собственными резервными копиями батареи, не испытывают ошибку JET -1018.
-1019 JET_errPageNotInitialized / Пустая страница базы данных
Причина
Это похоже на ошибку -1018, но из-за потерянного флеша страницы.
Потерянный флеш может представлять критическое изменение USN. Если одно и то же изменение не будет применяться к локальным DCs или к транзитным партнерам репликации, это может быть вредным, если существует один путь репликации.
Решение
Развертывание ОС на компонентах оборудования и дисковых подсистем класса сервера.
- Установка UPS на хост-компьютере.
- Установка контроллера диска с резервной копией батареи на борту.
- Отключите кэш записи на контроллере диска.
- Избегайте размещения NTDS. DIT и LOG-файлы на дисках IDE.
Базы данных, которые регистрируют эту ошибку, не могут быть восстановлены или восстановлены проверкой целостности или семантическим анализом базы данных в NTDSUTIL или ESENTUTL.
Автономные defrags могут разрешить проблему в маловероятном случае, если проблема вызвана проблемой согласованности индекса.
Попробуйте автономный defrag. Или восстановим резервное копирование состояния системы, предосудив его. Или принудить к понижению, выполнить полную очистку метаданных, а затем перепромит. Повторите до тех пор, пока не будет устранена корневая причина аппаратного обеспечения.
-1021 JET_errDiskReadVerificationFailure / ОС возвращается ERROR_CRC из IO файла
Ошибка jet -1021 была новой по Windows Server 2008 R2. Версии Windows, которые находятся раньше Windows Server 2008 R2-1022 вместо них.
-1021 определяет ошибку -1018, которая произошла на уровне диска. Другими словами, -1021 указывает, что диск возвращает ошибку суммы проверки и является конкретным источником проблемы в стеке диска.
Причина
Проблема может быть вызвана плохими блоками на жестком диске, которые жесткий диск может отслеживать.
Решение
Удаление и переустановка Active Directory на контроллере домена может вызвать хранение данных на здоровых блоках.
-1022 JET_errDiskIO / ошибка IO диска
Причина
Общая ошибка диска. Ошибки IO диска означают, что при доступе к диску осмия столкнулась с неконкретной ошибкой. Эта ошибка может быть внесена в журнал, когда контроллеры возвращают общие ошибки, такие как «устройство не работает». Некоторые диски и версии Jet возвращают эту ошибку из-за проблем с CRC.
Решение
Проверьте весь стек драйвера.
-1206 JET_errDatabaseCorrupted
Причина
Эта ошибка такая же, как отсутствующий/поврежденный файл журнала. Эта ошибка указывает на то, что произошел потерянный флеш.
-1216 JET_errAttachedDatabaseMismatch
Причина
Администратор изменил журналы или потерял флеш-данные при остановке.
-1605 JET_errKeyDuplicate / Незаконный дубликат ключа
Причина
Спорадическая ошибка. Эта ошибка может быть вызвана коррупцией индекса.
Решение
Удаление и переустановка Active Directory в dc. Запустите семантический анализ базы данных NTDUSITL. Если проблема сохраняется, выполните автономное дефрагма.
Причина
Администратор изменил журналы или потерял флеш-данные при остановке.
Устранение неполадок
Эти методы можно использовать для устранения ошибок базы данных Jet:
Убедитесь, что все базы данных Active Directory и файлы журналов развернуты на подходящем оборудовании.
Многие, но не все диски SATA и IDE не поддерживают команду флеш-записи. Диски SAS поддерживают его.
Базы данных Active Directory и файлы журналов должны использовать диски SAS на контроллерах SAS, которые имеют резервное копирование батареи на любом элементе кэширования записи.
Если 0xc00002e1 (c00002e1) и 0xc00002e2 (c00002e2) — это виртуальные контроллеры домена для гостей, работающие на хостах Windows Server 2012 Hyper-V, установите исправление из потери согласованности с виртуальными жесткими дисками, присоединенными к IDE, когда на сервере хостов Hyper-V происходит незапланированная перезагрузка хостов и гостевых компьютеров, как это необходимо.
Проверьте, указывают ли ошибки загрузки LSASS 0xc00002e1 (c00002e1) и 0xc00002e2 (c00002e2).
- Незаплановый отключение электроэнергии.
- Система зависает.
- Установка обновлений Windows или установок пакета служб.
- Добавление или удаление дисков, томов или разделов в локализованную систему.
- Отказ жесткого диска.
- NTDS. DIT или один или несколько файлов журнала были скопированы с другого компьютера или даже с предыдущей точки в этой жизни DCs.
- Неизвестно
Запустите компьютер в режим восстановления служб каталогов.
Лучшая практика. Сделайте резервное копирование системного состояния, чтобы можно было откатать все изменения, внесенные во время сеанса восстановления.
Передовая практика. Попросите администратора на переднем фронте найти последнее резервное копирование состояния системы, чтобы можно было учитывать наличие или несуществоство резервных копий системного состояния в планы восстановления. Если возможно, администратор делегирует расположение любых резервных копий.
Запустите NTDSUTIL->-> Info.
путь к NTDS. DIT и файлы журналов.
Убедитесь, что диск, на котором размещены NTDS. DIT или файлы журнала доступны в запуске ОС.
Откройте Обозреватель Windows и убедитесь, что NTDS. DIT и файлы журналов присутствуют на пути файла журнала, сообщаемом на шаге 7.
Если файлы присутствуют, приступить к шагу 10.
Если файлов нет, поиск всех доступных дисков и томов для NTDS. DIT и файлы журнала, которые относятся к этому экземпляру Active Directory.
Может быть несколько NTDS. DIT и файлы журнала, присутствующие на локальных дисках. Чтобы найти правильный экземпляр, используйте марки даты и времени.
Исправление путей для баз данных и путей файлов журнала по мере необходимости.
Проверка разрешений файлов для версии ОС, о чем идет речь.
ОС требуется достаточное количество разрешений на Windows Server 2003.
Счет | Разрешения: | Наследование |
---|---|---|
Системные | Полный доступ | Эта папка, подмостки и файлы |
Администраторы | Полный доступ | Эта папка, подмостки и файлы |
Владелец создателя | Полный доступ | Только подмостки и файлы |
Локализованная служба | Создание папок и данных приложения | Эта папка и подмостки |
- Корень тома, на который размещена NTDS. Файлы журналов DIT и NTDS (система требует полного контроля)
- Папка %windir% (например, c: \ windows или c: \ winnnt) (система требует полного контроля)
- Папка, в которую размещены NTDS. Файлы журналов DIT и NTDS (см. таблицу разрешений ниже)
- Сами файлы журнала NTDS (см. таблицу perms ниже)
Убедитесь, что правильные файлы журнала находятся в каталоге файлов журнала:
NTDSUTIL /FILES определит каталог баз данных и каталог файлов журналов, если они отличаются. NTDSUTIL /MH определит, какие файлы журналов необходимы в каталоге файлов журнала.
Ни при каких обстоятельствах не следует скопировать базу данных или файлы журнала из одного DC в другой dc, чтобы сделать второй dc функциональным.
Подтверждение того, что сжатие диска или файла не включено ни в томе, где размещена NTDS. Том файла DIT или журнала.
Проверка состояния базы данных в NTDS. DIT снизу вверх.
Проверка состояния базы данных Jet снизу вверх. Переходите к следующему слою только в том случае, если его первый уровень завершается без ошибки.
Устранение неполадок, о чем сообщает ESE, логической или логической последовательности приложения при отсутствии физической согласованности приведет вас к неправильному пути устранения неполадок.
Эквивалентные команды NTDSUTIL и ESENTUTL для каждой более поздней команды показаны ниже:
Уровень | Команда NTDSUTIL | Эквивалентная команда ESENTUTL |
---|---|---|
1. Физическая последовательность | нет эквивалента | ESENTUTL /K |
2. Логическая согласованность ESE | ЦЕЛОСТНОСТЬ ФАЙЛОВ NTDSUTIL | ESENTUTL /G |
3. Логическая согласованность приложения | Анализ семантической базы данных >NTDSUTIL->базы данных NTDSUTIL -> автономной defrag | Нет эквивалента. Запуск NTDSUTIL-> SDA ESENTUTL / D |
Просмотр действия пользователя для первой ошибки с ошибкой Jet, с которой столкнулся во время шага 13. Выполните исправление по возможности.
Ремонт базы данных Jet:
- Некоторые ошибки базы данных Jet можно устранить с помощью NTDSUTIL и ESENTUTL.
- Некоторые ошибки базы данных Jet не могут быть восстановлены, и любые попытки их устранить не удастся. В таких случаях единственным обращением может быть восстановление резервного копирования системного состояния, предоплачиваемая до повреждения, или создание нового сервера. Если дик-компьютеры реплики устарели, вы должны продвигать дополнительные реплики в домен после попытки устранить корневую причину ошибок, связанных с оборудованием или программным обеспечением.
Ошибка Jet, возвращаемая в общем событии NTDS 1168, является ошибкой уровня приложения. Не действуйте по этой ошибке Jet, если только проверка логической согласованности Jet Physical и Application (проверенная в этом порядке) не пройдет без ошибок.
Дополнительная информация
Дополнительные сведения см. в следующей статье Microsoft:
Что такое потерянное IO / Lost Flush
Когда приложение записывает данные на диск, диск указывает на успешность письменной операции. Однако, когда приложение пытается прочитать только что написаные данные, данные не существуют. Эта проблема называется потерянным I/O или потерянным флешом.