Fonction JetBeginExternalBackup

S’applique à : Windows | Windows Server

Fonction JetBeginExternalBackup

La fonction JetBeginExternalBackup lance une sauvegarde externe pendant que le moteur et la base de données sont en ligne et actifs. JetBeginExternalBackup est le premier d’une série de fonctions qui doivent être appelées pour exécuter une sauvegarde en ligne (non basée sur VSS) réussie.

Une sauvegarde externe peut être utilisée pour implémenter des sauvegardes complètes, incrémentielles ou différentielles.

La sauvegarde sera approximative, car la sauvegarde sera cohérente à un seul point dans le temps dans l’historique des transactions, mais il n’est pas possible de contrôler le point exact dans le temps.

    JET_ERR JET_API JetBeginExternalBackup(
      __in          JET_GRBIT grbit
    );

Paramètres

grbit

Groupe de bits qui spécifient zéro ou plusieurs des options suivantes.

Valeur

Signification

JET_bitBackupAtomic

Cet indicateur est déconseillé. L’utilisation de ce bit entraîne le retour de JET_errInvalidgrbit.

JET_bitBackupIncremental

Crée une sauvegarde incrémentielle par opposition à une sauvegarde complète. Cela signifie que seuls les fichiers journaux depuis la dernière sauvegarde complète ou incrémentielle seront sauvegardés.

JET_bitBackupSnapshot

Réservé pour un usage futur. Défini pour Windows XP.

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_errBackupInProgress

Si une sauvegarde externe ou une sauvegarde instantané est déjà en cours, cette erreur est retournée, jusqu’à ce que JetBeginExternalBackup (ou l’une des variantes de celle-ci) soit appelée. ESE n’autorise qu’une seule sauvegarde en ligne à la fois.

JET_errBackupNotAllowedYet

Le moteur instance ou de base de données est en cours de récupération ou en phase d’arrêt ou d’arrêt.

JET_errCheckpointCorrupt

Lors d’une sauvegarde complète, le fichier de point de contrôle n’a pas pu être lu ou le fichier n’a pas pu être vérifié.

JET_errCheckpointFileNotFound

Lors d’une sauvegarde complète, le fichier de point de contrôle est introuvable.

JET_errClientRequestToStopJetService

L’opération ne peut pas se terminer, car toute l’activité sur le instance associée à la session a cessé à la suite d’un appel à JetStopService.

JET_errInstanceUnavailable

L’opération ne peut pas se terminer, car le instance associé à la session a rencontré une erreur irrécupérable qui exige que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données.

Windows XP : Cette valeur de retour est introduite dans Windows XP.

JET_errInvalidBackup

La journalisation circulaire est activée et le type de sauvegarde spécifié est JET_bitBackupIncremental. Pour plus d’informations sur le contrôle de la journalisation circulaire ou non circulaire, consultez JET_paramCircularLog dans le journal des transactions .

JET_errInvalidgrbit

Un ou plusieurs des membres grbit n’étaient pas valides.

JET_errLoggingDisabled

La récupération ou la journalisation est désactivée. Vous ne pouvez pas effectuer une sauvegarde en ligne si la journalisation est désactivée. Pour plus d’informations sur la journalisation et la récupération, consultez JET_paramRecovery.

JET_errLogWriteFail

Le moteur a cessé d’écrire sur le lecteur de journal, en raison d’erreurs d’E/S de disque ou de journal complet.

JET_errMissingFullBackup

La sauvegarde incrémentielle a été spécifiée (avec JET_bitBackupIncremental), et aucune sauvegarde complète n’a été effectuée pour l’une des bases de données jointes pour l’ensemble de journalisation.

JET_errNotInitialized

L’opération ne peut pas se terminer, car le instance associé à la session n’a pas encore été initialisé.

JET_errOutOfMemory

L’opération a échoué, car il n’est pas possible d’allouer suffisamment de mémoire pour la terminer.

JET_errRestoreInProgress

L’opération ne peut pas se terminer, car une opération de restauration est en cours sur le instance associé à la session.

JET_errRunningInMultiInstanceMode

L’opération a échoué car une tentative d’utilisation du moteur a été effectuée en mode hérité (mode de compatibilité Windows 2000) où une seule instance est prise en charge alors qu’en fait plusieurs instances existent déjà.

JET_errTermInProgress

L’opération ne peut pas se terminer, car le instance associé à la session est en cours d’arrêt.

Si la fonction réussit, une sauvegarde externe est lancée et le moteur d’état de sauvegarde est initialisé. Les API suivantes peuvent désormais être appelées pour terminer la séquence de sauvegarde externe et diffuser ou lire le fichier de base de données, le fichier correctif de base de données (si pris en charge) et le fichier journal. Un événement peut être consigné indiquant qu’une sauvegarde externe a commencé.

Si la fonction échoue, la session de sauvegarde n’est pas lancée. Si une autre session de sauvegarde est en cours, elle ne sera pas annulée.

Notes

Le processus de sauvegarde externe (tel que démarré par JetBeginExternalBackup) est conçu pour permettre une sauvegarde en ligne de transaction approximative de l’ensemble des instance sur un appareil cible en tant que flux. La sauvegarde contiendra tous les fichiers de base de données attachés au instance à l’aide de JetAttachDatabase (pour une sauvegarde complète), suivis des fichiers correctifs de base de données associés (si pris en charge) et enfin des fichiers journaux des transactions qui ont été générés pendant le processus de sauvegarde. Le résultat final sera un ensemble de fichiers qui peuvent être restaurés à partir du flux, éventuellement combinés avec des fichiers de base de données et des fichiers journaux existants, et finalement récupérés à un état cohérent.

L’ordre général des opérations pour une sauvegarde complète se compose des appels suivants. Tout d’abord, JetBeginExternalBackup est appelé pour démarrer le processus de sauvegarde. JetGetAttachInfo est ensuite appelé pour obtenir la liste des bases de données attachées au instance qui doivent être sauvegardées. Pour chacune de ces bases de données, JetOpenFile est appelé, suivi d’un certain nombre d’appels JetReadFile , puis d’un appel à JetCloseFile. JetGetLogInfo est ensuite appelé pour obtenir la liste des correctifs de base de données et des fichiers journaux à sauvegarder. Pour chacun de ces fichiers, une autre séquence d’appels JetOpenFile, JetReadFile et JetCloseFile est effectuée. Ensuite, tous les fichiers journaux des transactions indésirables sont supprimés à l’aide de JetTruncateLog. Enfin, la sauvegarde se termine par un appel à JetEndExternalBackup.

Il est également possible de modifier cet ensemble d’étapes pour effectuer une sauvegarde incrémentielle du instance. Une sauvegarde incrémentielle énumère et sauvegarde les fichiers journaux. Les sauvegardes incrémentielles ne sont possibles que si la journalisation circulaire n’est pas activée.

Il est également possible de modifier cet ensemble d’étapes pour permettre d’effectuer des sauvegardes différentielles ultérieures du instance. Pour effectuer une sauvegarde différentielle, n’appelez pas JetTruncateLog dans la sauvegarde complète ou incrémentielle précédente. En n’appelant pas JetTruncateLog, vous autorisez les sauvegardes suivantes à être différentielles par rapport à la dernière sauvegarde complète ou incrémentielle. Les sauvegardes différentielles ne sont possibles que si la journalisation circulaire n’est pas activée.

Le fichier correctif de base de données est un fichier auxiliaire spécial utilisé pour stocker des images de page de base de données dans certaines circonstances pendant la sauvegarde. Ce fichier doit être présent au même emplacement que la base de données associée lors d’une opération de restauration. Ce fichier est utilisé uniquement dans Windows 2000. Par conséquent, toute application écrite pour fonctionner sur Windows 2000 et d’autres versions doit prendre en charge les fichiers correctifs de base de données, s’ils sont présents, mais ne doit pas non plus échouer s’ils ne sont pas présents.

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.

Voir aussi

JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog