Функция JetBeginExternalBackup

Применимо к: Windows | Windows Server

Функция JetBeginExternalBackup

Функция JetBeginExternalBackup инициирует внешнее резервное копирование, когда ядро и база данных подключены и активны. JetBeginExternalBackup — это первая в серии функций, которую необходимо вызвать для успешного выполнения оперативного резервного копирования (не на основе VSS).

Внешнюю резервную копию можно использовать для реализации полных, добавочных или разностных резервных копий.

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

    JET_ERR JET_API JetBeginExternalBackup(
      __in          JET_GRBIT grbit
    );

Параметры

grbit

Группа битов, задающая ноль или более следующих параметров.

Значение

Значение

JET_bitBackupAtomic

Этот флаг является нерекомендуемой. Использование этого бита приведет к возврату JET_errInvalidgrbit.

JET_bitBackupIncremental

Создает добавочную резервную копию, а не полную резервную копию. Это означает, что будут создаваться только файлы журнала с момента последнего полного или добавочного резервного копирования.

JET_bitBackupSnapshot

Зарезервировано для последующего использования. Определяется для Windows XP.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errBackupInProgress

Если внешняя резервная копия или snapshot уже выполняется, эта ошибка будет возвращена до вызова JetBeginExternalBackup (или одного из вариантов). ESE позволяет одновременно выполнять только одно оперативное резервное копирование.

JET_errBackupNotAllowedYet

Экземпляр или ядро СУБД находится на этапе восстановления или завершения работы.

JET_errCheckpointCorrupt

При полной резервной копии не удалось прочитать файл контрольной точки или не удалось проверить файл.

JET_errCheckpointFileNotFound

В полной резервной копии не удалось найти файл контрольных точек.

JET_errClientRequestToStopJetService

Операция не может завершиться, так как все действия на экземпляре, связанном с сеансом, прекратились в результате вызова JetStopService.

JET_errInstanceUnavailable

Операция не может завершиться, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных.

Windows XP: Это возвращаемое значение появилось в Windows XP.

JET_errInvalidBackup

Циклическое ведение журнала включено, и указанный тип резервной копии JET_bitBackupIncremental. Сведения о том, как управлять циклическим или некругим ведением журнала, см. в JET_paramCircularLog в журнале транзакций .

JET_errInvalidgrbit

Один или несколько элементов grbit были недопустимы.

JET_errLoggingDisabled

Восстановление или ведение журнала отключено. Вы не сможете выполнить оперативную архивацию, если ведение журнала отключено. Дополнительные сведения о ведении журнала и восстановлении см. в разделе JET_paramRecovery.

JET_errLogWriteFail

Подсистема прекратила запись на диск журнала из-за переполнения журнала или ошибок ввода-вывода на диск.

JET_errMissingFullBackup

Была указана добавочная резервная копия (с JET_bitBackupIncremental) и никогда не была полной резервной копией, выполненной для одной из подключенных баз данных для набора ведения журнала.

JET_errNotInitialized

Операция не может завершиться, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errOutOfMemory

Операция завершилась сбоем, так как для ее завершения было выделено недостаточно памяти.

JET_errRestoreInProgress

Операция не может завершиться, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_errRunningInMultiInstanceMode

Операция завершилась сбоем, так как была предпринята попытка использовать подсистему в устаревшем режиме (режим совместимости с Windows 2000), где поддерживается только один экземпляр, если на самом деле уже существует несколько экземпляров.

JET_errTermInProgress

Операция не может завершиться, так как экземпляр, связанный с сеансом, завершает работу.

Если функция выполняется успешно, инициируется внешнее резервное копирование и инициализируется подсистема состояния резервного копирования. Последующие API теперь можно вызывать для завершения внешней последовательности резервного копирования и потоковой передачи или чтения файла базы данных, файла исправлений базы данных (если поддерживается) и файла журнала. Можно заносить в журнал событие, когда началось внешнее резервное копирование.

В случае сбоя функции сеанс резервного копирования не будет инициирован. Если выполняется еще один сеанс резервного копирования, он не будет отменен.

Комментарии

Процесс внешнего резервного копирования ( запущенный JetBeginExternalBackup) предназначен для обеспечения нечетких транзакций в оперативном режиме резервного копирования всего экземпляра на целевое устройство в виде потока. Резервная копия будет содержать все файлы базы данных, присоединенные к экземпляру с помощью JetAttachDatabase (для полной резервной копии), а затем связанные с ними файлы исправлений базы данных (если они поддерживаются) и, наконец, файлы журнала транзакций, созданные в процессе резервного копирования. Конечным результатом будет набор файлов, которые можно восстановить из потока, возможно, в сочетании с существующими файлами базы данных и журналов и, наконец, восстановить до согласованного состояния.

Общий порядок операций для полного резервного копирования состоит из следующих вызовов. Сначала вызывается JetBeginExternalBackup , чтобы запустить процесс резервного копирования. Затем вызывается JetGetAttachInfo , чтобы получить список баз данных, присоединенных к экземпляру, для которых необходимо создать резервную копию. Для каждой из этих баз данных вызывается JetOpenFile , за которым следует несколько вызовов JetReadFile , а затем вызов JetCloseFile. Затем вызывается JetGetLogInfo , чтобы получить список исправлений базы данных и файлов журналов для резервного копирования. Для каждого из этих файлов выполняется другая последовательность вызовов JetOpenFile, JetReadFile и JetCloseFile . Затем все нежелательные файлы журнала транзакций удаляются с помощью JetTruncateLog. Наконец, резервное копирование завершается вызовом JetEndExternalBackup.

Этот набор действий также можно изменить для выполнения добавочного резервного копирования экземпляра. Добавочная резервная копия перечисляет и создает резервные копии файлов журнала. Добавочное резервное копирование возможно только в том случае, если циклическое ведение журнала не включено.

Этот набор действий также можно изменить, чтобы разрешить последующие разностные резервные копии экземпляра. Чтобы выполнить разностное резервное копирование, не вызывайте JetTruncateLog в предыдущем полном или добавочном резервном копировании. Не вызывая JetTruncateLog, вы включаете разностные резервные копии по отношению к последней полной или добавочной резервной копии. Разностное резервное копирование возможно только в том случае, если циклическое ведение журнала не включено.

Файл исправлений базы данных — это специальный вспомогательный файл, который используется для хранения изображений страниц базы данных при определенных обстоятельствах во время резервного копирования. Этот файл должен находиться в том же расположении, что и связанная с ним база данных во время операции восстановления. Этот файл используется только в Windows 2000. В результате любое приложение, написанное для работы с Windows 2000 и другими выпусками, должно поддерживать файлы исправлений базы данных, если они присутствуют, но также не должно завершаться ошибкой, если они отсутствуют.

Требования

Требование Значение

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная.

Сервер

Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

См. также:

JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog