Compartir a través de


Función JetRestoreInstance

Se aplica a: Windows | Windows Server

Función JetRestoreInstance

La función JetRestoreInstance restaura y recupera una copia de seguridad de streaming de una instancia, incluidas todas las bases de datos adjuntas. Está diseñado para trabajar con una copia de seguridad creada con la función JetBackupInstance . Esta es la función de restauración más sencilla y encapsulada.

Windows XP:JetRestoreInstance se introduce en Windows XP.

    JET_ERR JET_API JetRestoreInstance(
      __in          JET_INSTANCE instance,
      __in          JET_PCSTR sz,
      __in_opt      JET_PCSTR szDest,
      __in          JET_PFNSTATUS pfn
    );

Parámetros

instance

Especifica la instancia que se va a usar para esta llamada.

Para Windows XP y versiones posteriores, el uso de este parámetro depende del modo de funcionamiento del motor. Si el motor funciona en modo heredado (modo de compatibilidad de Windows 2000), donde solo se admite una instancia, este parámetro puede ser NULL o se puede establecer en un búfer de salida válido que contenga NULL o JET_instanceNil que devolverá el identificador de instancia global creado como efecto secundario de la inicialización. A continuación, este identificador de instancia se puede pasar a cualquier otra API que tome una instancia. Si el motor funciona en modo de varias instancias, este parámetro debe establecerse en un búfer de entrada válido que contenga el identificador de instancia devuelto por JetCreateInstance que se está inicializando.

sz

Carpeta donde se encuentra la copia de seguridad. La copia de seguridad debe haberse generado mediante las API de JetBackup .

szDest

Nombre de la carpeta donde se copiarán y recuperarán los archivos de base de datos del conjunto de copia de seguridad. Si se establece en NULL (que es el caso de JetRestore heredado), los archivos de base de datos se copiarán y recuperarán en su ubicación original.

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 JET_ERR tipo de datos 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. JetRestoreInstance devolverá este error cuando el motor se encuentra en modo de varias instancias y la pinstancia hace referencia a una instancia no válida de Windows XP y versiones posteriores.

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 se ejecutará la recuperación para 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.

Si se produce un error, la instancia permanece en un estado no inicializado. Es probable que se haya cambiado 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 en el intento de inicializar la restauración y recuperar las bases de datos.

Observaciones

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á las 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 el registro circular se ha habilitado 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 JetRestoreInstance en una instancia que ya se creó mediante JetCreateInstance.

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 estas funciones podrían devolver. 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 son casi siempre causados por problemas de hardware y, por tanto, no se pueden evitar. La administración incorrecta de archivos se manifiesta 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 de .

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 o Windows XP.

Servidor

Requiere Windows Server 2008 o Windows Server 2003.

Encabezado

Declarado en Esent.h.

Library

Use ESENT.lib.

Archivo DLL

Requiere ESENT.dll.

Unicode

Se implementa como JetRestoreInstanceW (Unicode) y JetRestoreInstanceA (ANSI).

Consulte también

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetSetSystemParameter