Partager via


Fonction JetRestore2

S’applique à : Windows | Windows Server

Fonction JetRestore2

JetRestore2 restaure et récupère une sauvegarde en streaming d’un instance, y compris toutes les bases de données attachées. Cette fonction est principalement destinée à la compatibilité descendante avec les moteurs de base de données Windows 2000 et antérieurs, où une seule instance d’une base de données est autorisée. Dans ce cas, le instance actif est le instance restauré.

    JET_ERR JET_API JetRestore2(
      __in          JET_PCSTR sz,
      __in_opt      JET_PCSTR szDest,
      __in          JET_PFNSTATUS pfn
    );

Paramètres

Sz

Dossier dans lequel se trouve la sauvegarde. La sauvegarde doit avoir été générée à l’aide des API JetBackup .

szDest

Nom du dossier dans lequel les fichiers de base de données du jeu de sauvegarde seront copiés et récupérés. Si cette valeur est définie sur NULL (ce qui est le cas pour le JetRestore hérité), les fichiers de base de données sont copiés et récupérés à leur emplacement d’origine.

pfn

Pointeur facultatif vers la fonction qui sera appelée en tant qu’informations de notification sur la progression de l’opération de restauration.

Valeur renvoyée

Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. Pour plus d’informations sur les erreurs ESE possibles, consultez Erreurs du moteur de stockage extensible et Paramètres de gestion des erreurs.

Code de retour

Description

JET_errSuccess

L’opération s’est terminée avec succès.

JET_errAlreadyInitialized

L’opération a échoué, car le moteur est déjà initialisé pour cette instance.

JET_errInvalidLogSequence

L’ensemble de fichiers journaux du jeu de sauvegarde et du chemin d’accès actuel du journal ne correspond pas.

JET_errInvalidParameter

L’un des paramètres fournis contenait une valeur inattendue ou contenait une valeur qui n’était pas logique lorsqu’elle était combinée à la valeur d’un autre paramètre. Cette erreur est retournée par JetRestoreInstance lorsque le moteur est en mode multi-instance et que l’épingle fait référence à un instance Windows XP et versions ultérieures non valides.

JET_errInvalidPath

L’opération a échoué car certains des chemins fournis ne sont pas valides (le chemin d’accès de sauvegarde, le chemin de destination, le chemin d’accès du journal ou du système pour le instance).

JET_errPageSizeMismatch

L’opération a échoué, car le moteur est configuré pour utiliser une taille de page de base de données (à l’aide de JetSetSystemParameter pour JET_paramDatabasePageSize) qui ne correspond pas à la taille de page de base de données utilisée pour créer les fichiers journaux des transactions ou les bases de données associées aux fichiers journaux des transactions.

JET_errRunningInMultiInstanceMode

L’opération a échoué, car les paramètres impliquent le mode instance unique (mode de compatibilité Windows 2000) et le moteur est déjà en mode multi-instance.

En cas de réussite, les fichiers de base de données du jeu de sauvegarde sont restaurés à leur emplacement et la récupération est exécutée de telle sorte que les bases de données soient dans un état de cohérence transactionnelle propre. La récupération relit les fichiers journaux à partir du jeu de sauvegarde et les fichiers journaux à partir du chemin du journal, si ces fichiers existent. Cette récupération entraîne des modifications dans le fichier de point de contrôle, les fichiers journaux des transactions et toutes les bases de données référencées par ces fichiers journaux des transactions.

En cas d’échec, le instance reste dans un état non initialisé. L’état des fichiers journaux des transactions et de toutes les bases de données référencées par ces fichiers journaux des transactions aura probablement été modifié lors de la tentative d’initialisation de la restauration et de récupération des bases de données.

Notes

Le processus de récupération reconstruit les bases de données attachées au instance pendant la sauvegarde et enregistre les modifications apportées aux fichiers de base de données. Le résultat sera des bases de données qui sont cohérentes avec les transactions. Si possible, il enregistrera également dans la base de données les modifications effectuées depuis la sauvegarde jusqu’à la modification la plus récente trouvée dans les journaux des transactions. Cela serait possible si les journaux de transactions générés depuis la sauvegarde sont toujours présents dans le répertoire du journal des transactions. Notez que si la journalisation circulaire a été activée pour le instance, les journaux de transactions générés sont réutilisés de sorte que la récupération puisse enregistrer les modifications qui ont eu lieu jusqu’au moment de la sauvegarde. Dans tous les cas, ce processus peut prendre un certain temps si le nombre de fichiers journaux des transactions à relire par rapport aux bases de données est important.

Les fonctions JetRestore doivent être appelées sur un instance avant que JetInit ne soit appelé pour cette instance.

Étant donné qu’un nombre important de pages de base de données et de journaux de transactions seront utilisés pendant la récupération, il existe toute une série d’erreurs qui peuvent être retournées par ces fonctions. Ces erreurs peuvent provenir d’échecs d’allocation de ressources temporaires comme Jet_errOutOfMemory à des erreurs représentant des altérations physiques telles que JET_errReadVerifyFailure, JET_errLogFileCorrupt ou JET_errBadPageLink. Ces erreurs sont presque toujours causées par des problèmes matériels et ne peuvent donc pas être évitées. La mauvaise gestion des fichiers se manifeste le plus souvent en tant que JET_errMissingLogFile ou JET_errAttachedDatabaseMismatch ou JET_errDatabaseSharingViolation ou JET_errInvalidLogSequence. Ces erreurs peuvent être empêchées par l’application. L’application doit veiller à protéger le dépôt de ces fichiers contre toute manipulation par des forces externes telles que l’utilisateur ou d’autres applications. Si l’application souhaite détruire un instance entièrement, tous les fichiers associés au instance doivent être supprimés. Il s’agit notamment du fichier de point de contrôle, des fichiers journaux des transactions et de tous les fichiers de base de données joints au instance.

Les différentes étapes de la récupération auront des entrées du journal des événements générées, y compris la progression de la relecture du journal des transactions et le résultat final de la restauration.

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista, Windows XP ou Windows 2000 Professionnel.

Serveur

Nécessite Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

En-tête

Déclaré dans Esent.h.

Bibliothèque

Utilisez ESENT.lib.

DLL

Nécessite ESENT.dll.

Unicode

Implémenté en tant que JetRestore2W (Unicode) et JetRestore2A (ANSI).

Voir aussi

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetInit
JetRestore
JetRestoreInstance
JetSetSystemParameter