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