Функция JetBackup

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

Функция JetBackup

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

    JET_ERR JET_API JetBackup(
      __in          JET_PCSTR szBackupPath,
      __in          JET_GRBIT grbit,
      __in          JET_PFNSTATUS pfnStatus
    );

Параметры

szBackupPath

Каталог, в котором хранится резервная копия. Если путь резервного копирования имеет значение NULL, функция усекает журналы, если это возможно.

grbit

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

Значение

Значение

JET_bitBackupAtomic

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

JET_bitBackupIncremental

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

pfnStatus

Указатель на функцию обратного вызова JET_PFNSTATUS , которая предоставляет уведомления о ходе выполнения операции резервного копирования.

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

Функция возвращает один из кодов ошибок JET_ERR. Ниже приведены наиболее часто возвращаемые значения. (Полный список ошибок для этого API см. в разделе Расширяемые коды ошибок подсистемы хранилища.)

Код возврата

Описание

JET_errSuccess

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

JET_errBackupInProgress

Для того же экземпляра уже выполняется резервное копирование. Одновременное создание нескольких резервных копий запрещено.

JET_errBackupNotAllowedYet

Экземпляр еще не готов к резервному копированию, так как он инициализируется.

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

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

JET_errInvalidBackup

Добавочное резервное копирование не допускается, если включено циклическое ведение журнала.

JET_errInvalidGrbit

Указанные параметры недопустимы.

JET_errInvalidParameter

В API передан недопустимый параметр.

JET_errInvalidPath

Целевой путь не существует.

JET_errLoggingDisabled

Экземпляр выполняется без ведения журнала. Резервное копирование запрещено.

JET_errLogReadVerifyFailure

В файле журнала произошла ошибка проверки контрольной суммы.

JET_errLogWriteFail

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

JET_errNotInitialized

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

JET_errReadVerifyFailure

На странице базы данных произошла ошибка проверки контрольной суммы.

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

Один и тот же сеанс нельзя использовать одновременно для нескольких потоков.

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

JET_errTermInProgress

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

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

В качестве побочного эффекта резервного копирования файлы журнала, которые больше не нужны, будут усечены.

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

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

Комментарии

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

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

Каталог резервного копирования должен существовать, если для экземпляра не задан параметр JET_paramCreatePathIfNotExist . Дополнительные сведения см. в разделе Системные параметры.

Резервная копия будет выполнять проверку контрольной суммы на всех используемых страницах базы данных, а также, начиная с Windows Server 2003, в файлах журнала. Это дает возможность оценить работоспособность базы данных даже для страниц, которые не считываются во время нормальной работы. При обнаружении таких повреждений резервное копирование завершится ошибкой.

Во время резервного копирования текущий файл журнала будет завершен и будет создан новый журнал. Таким образом можно скопировать все необходимые файлы журнала, так как текущий журнал больше не будет использоваться.

Настоятельно рекомендуется не использовать резервную копию для каких-либо целей, кроме резервного копирования и восстановления на уровне ядра. Это позволит свести к минимуму вероятность возникновения ошибок во время операций резервного копирования и восстановления.

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

Юникод

Реализовано как JetBackupW (Юникод) и JetBackupA (ANSI).

См. также:

Расширяемые файлы подсистемы хранилища
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopService
Системные параметры