Ensemble Firebird DocFirebird DocsOutil Firebird nbackup → Sauvegarder et restaurer
Firebird home Firebird home Précédent: Un aperçu des fonctionnalités de nbackupSommaire: Ensemble Firebird DocNiveau supérieur: Outil Firebird nbackupSuivant: Verrouiller et déverrouiller

Sauvegarder et restaurer

Sauvegardes complètes
Sauvegardes incrémentales
Application pratique
Continuer la lecture ?

Pour commencer : nbackup.exe est dans le sous-répertoire bin de votre répertoire Firebird. Par défaut : C:\Program Files\Firebird\Firebird_2_0\bin (Windows) ou /opt/firebird/bin (Linux). Comme les autres outils livrés avec Firebird, nbackup n'a pas d'interface graphique; vous devez le lancer depuis l'invite de commande (ou depuis un fichier batch, un script shell ou une application).

Sauvegardes complètes

Faire une sauvegarde complète

Pour faire une sauvegarde complète d'une base, la syntaxe est:

nbackup [-U <user> -P <password>] -B 0 <database> [<backupfile>]

Par exemple:

C:\Databases> nbackup -B 0 inventory.fdb inventory_1-Mar-2006.nbk

Commentaires:

  • Le paramètre -B signifie backup (sauvegarde) . Le niveau de sauvegarde 0 indique une sauvegarde complète. Les niveaux de sauvegarde plus grands que 0 sont utilisés pour les sauvegardes incrémentales; nous en parlerons plus loin.

  • Vous pouvez aussi utiliser un alias à la place du nom du fichier de base de données.

  • Au lieu d'un fichier de sauvegarde vous pouvez aussi utiliser stdout. Cela va envoyer la sauvegarde vers la sortie standard, ainsi vous pourrez rediriger ce flux vers un outil de sauvegarde sur bande ou un outil de compression.

  • Les paramètres -U (utilisateur) et -P (mot de passe) ne sont pas obligatoires si :

    • vous êtes connecté en tant qu'administreur de la machine (root, Administrator...), ou

    • si les variables d'environnement ISC_USER et ISC_PASSWORD sont renseignées.

    Par soucis de clarté et de simplification, ces paramètres ne sont pas utilisés dans les examples.

  • Les différents paramètres (-B, -U et -P) peuvent être utilisé dans n'importe quel ordre. Bien sûr, ils doivent être suivis immédiatement par leur propre(s) argument(s). Dans le cas de -B il y en a trois : le niveau de sauvegarde, la base de données, et le fichier de sauvegarde - dans cet ordre !

  • Si le paramètre -B est le dernier, vous pouvez ne pas renseigner le nom du fichier de sauvegarde. Dans ce cas nbackup créera un nom de fichier à partir du nom de la base de données , du niveau de sauvegarde, et de la date et l'heure courante. Cela peut créer un conflit de nom (et une erreur de sauvegarde) si deux sauvegardes de même niveau de la même base sont lancées dans la même minute.

Avertissement

N'utilisez pas nbackup pour les bases multifichiers . Cela peut créer des corruptions et des pertes de données, en dépit du fait que nbackup ne vous enverra aucun message d'avertissement.

Quelques mots sur le fonctionnement interne

Note: les connaissances suivantes ne sont pas nécessaires pour utiliser nbackup. Cela vous donne juste un aperçu de ce qui ce passe pendant le travail de nbackup -B:

  1. En premier lieu, le fichier principal de la base de données est verrouillé par un changement d'état d'un drapeau interne. A partir de ce moment, toutes les modifications de la base de données sont écrites dans un fichier temporaire - le fichier des différences ou le fichier delta.

  2. Ensuite la sauvegarde est faite. Ce n'est pas une simple copie de fichier; la restauration doit aussi être faite par nbackup.

  3. Quand la sauvegarde est terminée, le contenu du fichier delta est intégré au fichier principal de la base de données. Ensuite, la base de données est dévérouillée (le drapeau revient au statut « normal ») et le fichier delta est effacé.

Les fonctionnalités des étapes 1 et 3 sont disponibles par deux nouvelles instructions SQL : ALTER DATABASE BEGIN BACKUP et ALTER DATABASE END BACKUP. Contrairement à ce que le nom suggère, ces deux instructions ne réalisent pas la sauvegarde; en fait, elles créent les conditions dans lesquelles le fichier principal de la base de données peut être effectivement sauvegardé. Et pour être clair : vous n'avez pas besoin d'utiliser ces commandes vous même; nbackup le fera pour vous, au bon moment.

Restaurer une sauvegarde complète

Une sauvegarde complète est restaurée comme suit :

nbackup [-U <user> -P <password>] -R <database> [<backupfile>]

Par exemple:

C:\Databases> nbackup -R inventory.fdb inventory_1-Mar-2006.nbk

Commentaires:

  • On ne spécifie pas un niveau de restauration.

  • Quand on restaure, le paramètre -R doit être le dernier, pour des raisons qui deviendront claires plus loin.

  • Si la base spécifiée existe déjà et qu'il n'y a pas de connections actives, elle sera remplacée sans aucun avertissement ! Si des utilisateurs sont connectés, la restauration échoue et vous obtiendrez un message d'erreur.

  • Ici aussi, vous pouvez oublier de mentionner le nom du fichier de sauvegarde. Si vous le faites, nbackup vous le demandera ensuite. Toutefois, à ce point dans le developement de Firebird 2 - l'étape alpha 3 - cela provoque une erreur (au moins sous Windows) et la restauration échoue.

Sauvegardes incrémentales

Faire des sauvegardes incrémentales

Pour faire des sauvegardes incrémentales (« différentielles ») nous spécifions un niveau de sauvegarde plus grand que 0. Une sauvegarde incrémentale de niveau N contient toujours les modifications depuis le niveau N-1 de sauvegarde le plus récent.

Exemples:

Un jour après la sauvegarde complète (niveau 0), vous faites une sauvegarde avec le niveau 1:

C:\Databases> nbackup -B 1 inventory.fdb inventory_2-Mar-2006.nbk

Cette sauvegarde contiendra seulement les changements du dernier jour.

Un jour plus tard, vous faites une autre sauvegarde de niveau 1:

C:\Databases> nbackup -B 1 inventory.fdb inventory_3-Mar-2006.nbk

Cette sauvegarde contiendra les changements des deux derniers jours, depuis la sauvegarde complète, et non pas seulement ceux intervenus depuis la précédente sauvegarde de niveau 1.

Quelques heures plus tard nous faisons une sauvegarde de niveau 2 :

C:\Databases> nbackup -B 2 inventory.fdb inventory_3-Mar-2006_2.nbk

Cette sauvegarde la plus récente contiendra alors que les changements intervenus depuis la dernière sauvegarde de niveau 1, c'est dire depuis quelques heures.

Note

Toutes les remarques qui ont été faites au sujets des sauvegardes complètes s'appliquent aux sauvegardes incrémentales.

Avertissement

Encore une fois: n'utilisez pas nbackup pour une base multi-fichiers.

Restaurer des sauvegardes incrémentales

Quand vous restaurez des sauvegardes incrémentales vous devez spécifier l'ensemble de la chaîne des fichiers de sauvegarde, depuis le niveau 0 jusqu'au point de restauration que vous voulez atteindre. La base est toujours recontruite depuis le point de départ, pas à pas. (c'est de ce processus que vient le nom de sauvegarde incrémentale).

La syntaxe est:

nbackup [-U <user> -P <password>] 
        -R <database> [<backup0> [<backup1> [...] ] ]       

Donc restaurer la sauvegarde de niveau 2 de l'exemple précédent se fait de la manière suivante :

C:\Databases> nbackup -R inventory.fdb inventory_1-Mar-2006.nbk
                inventory_3-Mar-2006.nbk inventory_3-Mar-2006_2.nbk

Bien sûr cette commande est affichée ici sur plusieures lignes seulement pour de raisons de mise en page - dans la réalité il faut entrer le commande complète et faire Entrer seulement à la fin.

Commentaires (en plus des commentaires ) sur la sauvegarde complète :

  • Parce que l'on ne connait pas à l'avance combien de noms de fichiers vont suivre l'interrupteur -R (puisque l'on ne spécifie pas de niveau quand on restaure), nbackup considère tous les arguments après -R comme des noms de fichiers de sauvegarde. C'est pour cela qu'aucun autre paramètre (-U ou -P) ne peut être placé après la liste des noms de fichiers.

  • Il n'y a pas de limite formelle au nombre de niveau de sauvegarde, mais en pratique il est raisonnable de ne pas dépasser 3 ou 4.

Chaines non connectées

Qu'arrive-t-il si accidentellement vous oubliez un fichier, ou indiquez une série de fichiers qui n'appartiennent pas à la même chaîne ? Imaginons que vous indiquiez inventory_2-Mar-2006.nbk par erreur à la place de inventory_3-Mar-2006.nbk dans l'exemple précédent. Les deux sont des sauvegardes de niveau 1, donc dans les deux cas vous avez une belle série de niveaux « 0, 1, 2 ». Mais votre fichier de niveau 2 est le complément de la sauvegarde de niveau 1 du 3 Mars, pas de celle du 2 Mars.

Heureusement une telle erreur ne générera pas une base incorrecte. Chaque fichier de sauvegarde a un ID unique. De plus, chaque fichier de sauvegarde de niveau 1 ou plus contient l'ID du fichier de sauvegarde de référence. A la restauration, nbackup vérifie ces ID; si dans la chaîne un des liens est incorrect, l' opération est abandonnée et vous obtenez un message d'erreur.

Application pratique

Une organisation de sauvegarde incrémentale peut être définie ainsi :

  • Chaque mois une sauvegarde complète (niveau 0) est faite;

  • chaque semaine une sauvegarde de niveau 1;

  • un sauvegarde quotidienne de niveau 2;

  • une sauvegarde par heure de niveau 3.

Tant que toutes les sauvegardes sont préservées, vous pouvez restaurer la base de données dans l'état où elle était dans l'heure précédente. Pour chaque action de restauration, un maximum de quatre fichiers de sauvegarde sont nécéssaires. Bien sûr, vous programmerez les choses de telle manière que la sauvegarde la plus importante, celle qui demande le plus de temps soit effectuée pendant les heures creuses. Dans ce cas, les sauvegardes de niveau 0 et 1 peuvent être effecuées les week-end, et celles de niveau 2 la nuit.

Si vous ne voulez pas tout garder pour l'éternité, vous pouvez utiliser ce calendrier de suppression :

  • Les sauvegardes de niveau 3 sont supprimées après 8 jours;

  • celles de niveau 2 après un mois;

  • celles de niveau 1 après six mois;

  • Les sauvegardes complètes après deux ans, mais la première de chaque année est conservée.

Ce n'est qu'un exemple bien sûr. Tout dépend de l'application, la taille de la base de données, son activité, etc.

Continuer la lecture ?

Maintenant vous avez toutes les connaissances nécessaires pour faire et restaurer des sauvegardes complètes et/ou incrementales avec nbackup. Vous avez besoin de continuer la lecture plus loin seulement si vous voulez utiliser l'outil de sauvegarde de votre choix pour vos bases de données Firebird.

Si vous n'en avez pas besoin : bonne chance pour votre travail avec nbackup !

Précédent: Un aperçu des fonctionnalités de nbackupSommaire: Ensemble Firebird DocNiveau supérieur: Outil Firebird nbackupSuivant: Verrouiller et déverrouiller
Ensemble Firebird DocFirebird DocsOutil Firebird nbackup → Sauvegarder et restaurer