Функция JetInit3
Применимо к: Windows | Windows Server
Функция JetInit3
Функция JetInit3 переводит ядро СУБД в состояние, в котором оно может поддерживать использование приложениями файлов базы данных. Подсистема уже должна быть правильно настроена для инициализации, которую можно выполнить с помощью функции JetSetSystemParameter . Обратите внимание, что аварийное восстановление базы данных происходит автоматически в процессе инициализации.
Windows Vista:JetInit3 появилась в Windows Vista.
JET_ERR JET_API JetInit3(
__in_out_opt JET_INSTANCE* pinstance,
__in_opt JET_RSTINFO* prstInfo,
__in JET_GRBIT grbit
);
Параметры
pinstance
Экземпляр, используемый для определенного вызова. Использование этого параметра зависит от режима работы подсистемы. Если подсистема работает в устаревшем режиме (режим совместимости Windows 2000), в котором поддерживается только один экземпляр, можно задать для этого параметра значение NULL или допустимый выходной буфер, содержащий значение NULL или JET_instanceNil, который возвращает дескриптор глобального экземпляра, созданный как побочный эффект инициализации. Затем этот дескриптор экземпляра можно передать в любой другой API, который принимает экземпляр . Если подсистема работает в режиме нескольких экземпляров, необходимо задать для этого параметра допустимый входной буфер, содержащий дескриптор экземпляра, возвращаемый инициализируемым функцией JetCreateInstance .
prstInfo
Дополнительные параметры восстановления, используемые для переназначивания баз данных во время восстановления, для задания позиции остановки восстановления или для определения текущего состояния восстановления.
grbit
Группа битов, задающая ноль или несколько параметров, перечисленных и определенных в следующей таблице.
Значение |
Значение |
---|---|
JET_bitReplayReplicatedLogFiles |
Это значение зарезервировано для использования в будущем. |
JET_bitCreateSFSVolumeIfNotExist |
Это значение зарезервировано для использования в будущем. |
JET_bitReplayIgnoreMissingDB |
Это значение позволяет пользователю выполнять восстановление в наборе файлов журнала даже при отсутствии баз данных, которые в какой-то момент были присоединены к набору файлов журнала. |
JET_bitRecoveryWithoutUndo |
Это значение позволяет пользователю выполнять восстановление, но только до (и не включая) этап отмены. Используя это значение, можно скопировать и применить дополнительные журналы транзакций. |
JET_bitTruncateLogsAfterRecovery |
Это значение приводит к усечению файлов журнала во время успешного обратимого восстановления. |
JET_bitReplayMissingMapEntryDB |
Это значение приводит к тому, что отсутствует запись карты базы данных по умолчанию в том же расположении. |
JET_bitReplayIgnoreLostLogs |
Это значение приводит к тому, что журналы, потерянные в конце потока журналов, игнорируются во время восстановления. Windows 7:JET_bitReplayIgnoreLostLogs появилась в Windows 7. |
Возвращаемое значение
Эта функция возвращает JET_ERR тип данных с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках расширяемого обработчика хранилища (ESE) см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Комментарии
Экземпляр необходимо инициализировать с помощью вызова функции JetInit3 , прежде чем его можно будет использовать чем-либо, кроме функции JetSetSystemParameter .
Экземпляр уничтожается вызовом функции JetTerm , даже если этот экземпляр никогда не инициализировался с помощью функции JetInit . Экземпляр — это единица возможности восстановления для ядра СУБД. Он управляет жизненным циклом всех файлов, используемых для защиты целостности данных в наборе файлов базы данных. К этим файлам относятся файл контрольных точек и файлы журнала транзакций. Обратите внимание, что JetTerm не следует вызывать, если функция JetInit3 завершается сбоем. Однако jetTerm по-прежнему следует вызывать для всех экземпляров, созданных JetCreateInstance2 , если JetInit3 никогда не вызывался или если JetInit3 успешно выполняется.
Если восстановление выполняется в наборе журналов, для которых присутствуют не все связанные базы данных (которые возвращают ошибку JET_errAttachedDatabaseMismatch в обычных обстоятельствах), и клиент хочет продолжить восстановление, несмотря на отсутствующие базы данных, для продолжения восстановления доступных баз данных используется ошибка JET_bitReplayIgnoreMissingDB.
Так как аварийное восстановление обычно не выполняется на том же компьютере (и с той же конфигурацией), что и во время сбоя, расположение базы данных обычно не изменяется. В некоторых сценариях, таких как перемещение файлов на другой компьютер или восстановление snapshot резервной копии в разных расположениях, это больше не так. Функция JetInit3 позволяет указать сопоставление (с помощью структур JET_RSTINFO и JET_RSTMAP ) между старым расположением базы данных и ее новым расположением. На самом деле требуется только новое расположение, если в этом расположении находятся файлы базы данных. Как только вы узнаете расположение восстановленных баз данных, сигнатура базы данных будет использоваться для идентификации базы данных в процессе восстановления. Исходное расположение базы данных потребуется только в том случае, если необходимо повторно создать базу данных. В этом случае сигнатура известна.
Кроме того, если необходимо остановить восстановление после операции отмены, можно указать определенную позицию журнала, в которой будет остановлено восстановление. Обратите внимание, что сюда входит возможность остановиться в конце определенного создания журнала, если указанная позиция является частью создания, но находится после конца фактического журнала.
Дополнительные сведения см. в разделе "Примечания" раздела JetInit .
Требования
Требование | Значение |
---|---|
клиент |
Требуется Windows Vista. |
Сервер |
Требуется Windows Server 2008. |
Заголовок |
Объявлено в Esent.h. |
Библиотека |
Использует ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetInit3W (Юникод) и JetInit3A (ANSI). |
См. также:
Расширяемые файлы подсистемы хранилища
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_RSTINFO
JET_RSTMAP
JetCreateInstance
JetInit
JetInit2
JetSetSystemParameter
Параметры ресурсов