Compartir a través de


Función JetExternalRestore

Se aplica a: Windows | Windows Server

Función JetExternalRestore

La función JetExternalRestore restaura una copia de seguridad externa que se realizó con las API de copia de seguridad externas y especifica un intervalo de números de archivo de registro que se van a reproducir durante el proceso de restauración. Esto se conoce como recuperación dura, que es similar a pero diferente de la recuperación temporal realizada por la función JetInit .

JET_ERR JET_API JetExternalRestore(
  __in          JET_PSTR szCheckpointFilePath,
  __in          JET_PSTR szLogPath,
  __in_opt      JET_RSTMAP* rgrstmap,
  __in          long crstfilemap,
  __in          JET_PSTR szBackupLogPath,
  __in          long genLow,
  __in          long genHigh,
  __in          JET_PFNSTATUS pfn
);

Parámetros

szCheckpointFilePath

Ruta de acceso del archivo de punto de comprobación que se va a usar durante la recuperación si no se especifica szTargetInstanceCheckpointPath o ya tiene una instancia activa o en ejecución.

szLogPath

Ruta de acceso o directorio para los registros de la fase final (deshacer) de recuperación y, posiblemente, para los registros de puesta al día. Esta ruta de acceso puede ser la misma que szBackupLogPath.

rgrstmap

Se trata de una matriz de estructuras de JET_RSTMAP . Se trata de un mapa de rutas de acceso o nombres de base de datos antiguos y nuevos. Esto se usa porque es posible que las bases de datos deban recuperarse en una ubicación distinta de la ubicación desde la que se ha hecho una copia de seguridad. En el caso de que se adjunte varias bases de datos a un único conjunto de registro, el mapa de restauración puede especificar un subconjunto de bases de datos que se van a restaurar.

crstfilemap

Número de entradas en el parámetro de matriz rgrstmap .

szBackupLogPath

Ruta de acceso al directorio donde se restauran los archivos de registro. Estos son los registros que se leyeron durante la secuencia de copia de seguridad externa. Esta ruta de acceso puede ser la misma que szLogPath.

genLow

Número de archivo de registro más bajo que se va a reproducir desde szBackupLogPath. Se debe conservar la fidelidad total de un long sin signo, pero en las versiones actuales del motor, este número es un número hexadecimal en el intervalo de 0x00000 a 0xFFFFF. Esto puede cambiar en versiones futuras.

genHigh

Número de archivo de registro más alto que se va a reproducir desde szBackupLogPath. Se debe conservar la fidelidad total de un long sin signo, pero en las versiones actuales del motor, este número es un número hexadecimal en el intervalo de 0x00000 a 0xFFFFF. Esto puede cambiar en versiones futuras.

pfn

Devolución de llamada de estado para notificar el progreso de la recuperació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_errOutOfMemory

Error en la operación porque no se pudo asignar suficiente memoria para completarla.

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. Esto puede ocurrir para JetExternalRestore, etc. cuando szTargetCheckpointPath y szTargetInstanceLogPath no se especifican o no ambos no se especifican. Es decir, deben coincidir y ser especificados o no especificados.

JET_errDatabaseCorrupted

Esto indica que la base de datos estaba dañada o un archivo no reconocido.

JET_errFileNotFound

Error en la operación porque no se pudo abrir el archivo solicitado porque no se encontró en la ruta de acceso especificada.

JET_errInvalidPath

Error en la operación porque no se encontró la ruta de acceso especificada.

JET_errRestoreOfNonBackupDatabase

Este error se devuelve si el archivo de base de datos especificado durante la restauración no es una base de datos de la que se ha realizado una copia de seguridad con una copia de seguridad externa.

JET_errStartingRestoreLogTooHigh

Este error se devuelve si uno de los archivos de registro de szBackupLogPath tiene una generación de registros por debajo de la especificada por genLow o pLogInfo.ulGenLow.

JET_errEndingRestoreLogTooLow

Este error se devuelve si uno de los archivos de registro de szBackupLogPath tiene una generación de registros anterior que se especificó en genHigh o pLogInfo.ulGenHigh.

JET_errBadRestoreTargetInstance

El valor de szTargetInstanceLogPath especificado no pertenece a una instancia inicializada. Este error solo se devolverá en Windows XP y versiones posteriores.

JET_errRunningInOneInstanceMode

El motor de base de datos no puede ejecutar la restauración externa ni la recuperación en modo de instancia única. Este error solo se devolverá en Windows XP y versiones posteriores.

Si se ejecuta correctamente, todas las bases de datos del mapa rgrstmap se recuperan completamente y tienen un estado limpio o coherente. En este momento, la base de datos se puede volver a montar en una instancia existente.

En caso de error, el motor no pudo recuperar la base de datos. La base de datos está en un estado no válido y para volver a intentar la recuperación completa de la base de datos debe restaurarse de nuevo. Normalmente, el origen de esta situación es daños en el disco o en el registro, o en algún otro tipo de administración incorrecta del registro o en un conjunto de registros no continuo.

Comentarios

Para comprender cómo funciona una recuperación "difícil", debe comprender que hay tres fases de recuperación y la segunda fase puede tener dos partes. En la fase I, los registros deben llevar una base de datos de copia de seguridad a la coherencia (o se puede usar un conjunto inicial de registros incrementales). En la fase II, los registros de puesta al día adicionales que están disponibles se consumen para que la base de datos sea coherente. También hay una reproducción de los registros de puesta al día adicionales. La fase III es la fase de deshacer la recuperación.

Fase I: se realiza la reproducción del conjunto de registros que se deben restaurar para que la base de datos se lleve a un estado coherente (o un conjunto inicial de archivos de registro). Básicamente, esta es la reproducción del conjunto de archivos de registro que no son opcionales para las bases de datos que se restauran. Si faltan registros de este intervalo de registros, se producirá un error en la restauración. Estos registros deben colocarse en el directorio especificado en el parámetro szBackupLogPath .

Fase II: Opcionalmente, puede haber algunos conjuntos de archivos de registro que son archivos de registro reenviados que proceden de copias de seguridad incrementales o diferenciales y de los archivos de registro de una instancia activa. En el caso de los archivos de registro de copias de seguridad incrementales o diferenciales, los archivos de registro se pueden colocar en los directorios especificados en los parámetros szBackupLogPath o szTargetInstanceLogPath , siendo el primero el directorio recomendado. Los registros usados para la fase de puesta al día (fase II) deben provenir de la misma serie de registros que se reproducen durante la fase I y deben haber incrementado continuamente los números de registro sin espacios en los registros de la fase I. Para reproducir una base de datos para que esté totalmente actualizada con los archivos de registro que usa actualmente una instancia activa, se deben especificar los parámetros szTargetInstanceLogPath y szTargetInstanceCheckpointPath . Esto se puede hacer incluso mientras se adjuntan otras bases de datos a ese conjunto de registros.

Fase III: en la fase final de recuperación, las transacciones no confirmadas se revierten, lo que requiere generar nuevos archivos de registro y actualizar el archivo de punto de comprobación. Esta fase se conoce a veces como "deshacer". La ruta de acceso del archivo de punto de comprobación que se usará durante esta fase es la ruta de acceso análoga a la ubicación del registro de la fase III, es decir, si se usa szCheckpointFilePath, si se usa szTargetInstanceLogPath para la fase III de la recuperación szTargetInstanceCheckpointPath.

Para comprender cómo funcionan las rutas de acceso, use este gráfico de flujo:

ESE_Documentation_ese1 ESE_Documentation_ese1

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 JetExternalRestoreW (Unicode) y JetExternalRestoreA (ANSI).

Consulte también

JET_ERR
JET_PFNSTATUS
JET_RSTMAP
JET_LOGINFO
JetBeginExternalBackup
JetInit