Compartir a través de


Función JetRestore

Se aplica a: Windows | Windows Server

Función JetRestore

La función JetRestore restaura y recupera una copia de seguridad de streaming de una instancia, incluidas todas las bases de datos adjuntas. Esta función es principalmente para la compatibilidad con versiones anteriores con los motores de base de datos de Windows 2000 y anteriores, donde solo se permite una instancia de una base de datos. En este caso, la instancia activa es la instancia que se restaura. Con JetRestore, no se puede especificar la ubicación de las bases de datos restauradas.

JET_ERR JET_API JetRestore(
  __in          JET_PCSTR sz,
  __in          JET_PFNSTATUS pfn
);

Parámetros

sz

Carpeta donde se encuentra la copia de seguridad. La copia de seguridad debe haberse generado mediante la función JetBackup .

pfn

Puntero opcional a la función a la que se llamará como información de notificación sobre el progreso de la operación de restauración.

Valor devuelto

Esta función devuelve el tipo de datos JET_ERR con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.

Código devuelto

Descripción

JET_errSuccess

La operación se ha completado correctamente.

JET_errAlreadyInitialized

Error en la operación porque el motor ya se ha inicializado para esta instancia.

JET_errInvalidLogSequence

El conjunto de archivos de registro del conjunto de copia de seguridad y de la ruta de acceso del registro actual no coinciden.

JET_errInvalidParameter

Uno de los parámetros proporcionados contenía un valor inesperado o contenía un valor que no tenía sentido cuando se combinaba con el valor de otro parámetro.

JET_errInvalidPath

Error en la operación porque algunas de las rutas de acceso proporcionadas no son válidas (la ruta de acceso de copia de seguridad, la ruta de acceso de destino, el registro o la ruta del sistema de la instancia).

JET_errPageSizeMismatch

Error en la operación porque el motor está configurado para usar un tamaño de página de base de datos (mediante JetSetSystemParameter para JET_paramDatabasePageSize) que no coincide con el tamaño de página de la base de datos usado para crear los archivos de registro de transacciones o las bases de datos asociadas a los archivos de registro de transacciones.

JET_errRunningInMultiInstanceMode

Error en la operación porque los parámetros implican el modo de instancia única (modo de compatibilidad de Windows 2000) y el motor ya está en modo de varias instancias.

Si se ejecuta correctamente, los archivos de base de datos del conjunto de copia de seguridad se restaurarán en su ubicación y la recuperación se ejecutará de forma que las bases de datos estén en un estado de coherencia transaccional limpio. La recuperación reproducirá los archivos de registro del conjunto de copia de seguridad y los archivos de registro de la ruta de acceso del registro si estos archivos existen. Esta recuperación dará lugar a cambios en el archivo de punto de comprobación, los archivos de registro de transacciones y las bases de datos a las que hacen referencia esos archivos de registro de transacciones.

En caso de error, la instancia permanece en un estado no inicializado. Es probable que el estado de los archivos de registro de transacciones y las bases de datos a las que hacen referencia esos archivos de registro de transacciones se hayan cambiado en el intento de inicializar la restauración y recuperar las bases de datos.

Comentarios

El proceso de recuperación reconstruirá las bases de datos adjuntas a la instancia durante la copia de seguridad y guardará los cambios en los archivos de base de datos. El resultado será bases de datos coherentes con las transacciones. Si es posible, también guardará en la base de datos los cambios realizados desde que se realizó la copia de seguridad hasta el cambio más reciente encontrado en los registros de transacciones. Esto sería posible si los registros de transacciones generados, ya que la copia de seguridad se realizó todavía está presente en el directorio del registro de transacciones. Tenga en cuenta que si se ha habilitado el registro circular para la instancia, los registros de transacciones generados se reutilizan de modo que la recuperación pueda guardar los cambios que tuvieron lugar hasta el momento de la copia de seguridad. En cualquier caso, es posible que este proceso tarde bastante tiempo si el número de archivos de registro de transacciones que se van a reproducir en las bases de datos es grande.

Se debe llamar a las funciones JetRestore en una instancia antes de que se llame a JetInit para esa instancia.

Dado que durante la recuperación se usará un número significativo de páginas de base de datos y registros de transacciones, hay una serie completa de errores que pueden devolver estas funciones. Estos errores pueden deberse a errores de asignación de recursos temporales, como Jet_errOutOfMemory a errores que representan daños físicos como JET_errReadVerifyFailure, JET_errLogFileCorrupt o JET_errBadPageLink. Estos errores casi siempre se deben a problemas de hardware y, por tanto, no se pueden evitar. La administración incorrecta de archivos se manifestará con más frecuencia como JET_errMissingLogFile o JET_errAttachedDatabaseMismatch o JET_errDatabaseSharingViolation o JET_errInvalidLogSequence. La aplicación puede evitar estos errores. La aplicación debe tener cuidado de proteger el repositorio de estos archivos frente a la manipulación por parte de fuerzas externas, como el usuario u otras aplicaciones. Si la aplicación desea destruir una instancia por completo, se deben eliminar todos los archivos asociados a la instancia. Estos incluyen el archivo de punto de comprobación, los archivos de registro de transacciones y los archivos de base de datos adjuntos a la instancia.

Los distintos pasos de la recuperación tendrán entradas del registro de eventos generadas, incluido el progreso de reproducción del registro de transacciones y el resultado final de la restauración.

Requisitos

Requisito Value

Cliente

Requiere Windows Vista, Windows XP o Windows 2000 Professional.

Servidor

Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Encabezado

Declarado en Esent.h.

Library

Use ESENT.lib.

Archivo DLL

Requiere ESENT.dll.

Unicode

Se implementa como JetRestoreW (Unicode) y JetRestoreA (ANSI).

Consulte también

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetSetSystemParameter