Ensemble Firebird DocFirebird DocsOutil Firebird nbackup → Verrouiller et déverrouiller
Firebird home Firebird home Précédent: Sauvegarder et restaurerSommaire: Ensemble Firebird DocNiveau supérieur: Outil Firebird nbackupSuivant: Historique du document

Verrouiller et déverrouiller

Verrouiller la base de données et la sauvegarder vous-même
Restaurer une base après l'utilisation de nbackup -L
Sous le capot

Si vous préférez utiliser votre propre outil de sauvegarde ou juste faire une copie de fichier, le mode verrouillage-déverrouillage de nbackup vous intéresse. « Verrouiller » signifie ici que le fichier principal de la base de données est figé temporairement, pas qu'aucune modification ne puisse être faite sur cette base. Comme dans le mode de sauvegarde, les changements sont dirigés vers un fichier temporaire; après le déverrouilage, le fichier des changements est fusionné avec le fichier principal de la base.

Rappel : nbackup.exe est situé dans le sous-répertoire bin de votre répertoire Firebird. Les emplacements par défaut sont : C:\Program Files\Firebird\Firebird_2_0\bin (Windows) ou /opt/firebird/bin (Linux). Il n'y a pas d'interface graphique; vous l'utilisez depuis une ligne de commande (ou depuis un fichier de commande par lot ou depuis une application).

Verrouiller la base de données et la sauvegarder vous-même

Une session typique dans laquelle vous faite votre propre sauvegarde se déroule ainsi :

  1. Verouillage la base de données avec l'interrupteur -L (lock) :

    nbackup [-U <user> -P <password>] -L <database>
  2. Puis copie/sauvegarde/compression du fichier de base de données avec l'outil de votre choix. Une simple copie de fichier est aussi possible.

  3. Déverrouillage de la base de données avec l'interrupteur -N (uNlock):

    nbackup [-U <user> -P <password>] -N <database>

La dernière commande déclenchera aussi le processus de fusion des modifications avec le fichier principal de la base de données.

La sauvegarde que vous avez alors réalisée contiendra les données telles qu'elles étaient quand la base a été verrouillée, quelque soit la durée pendant laquelle ce verrouillage existait, et quelque soit le temps que vous avez mis pour faire votre sauvegarde.

Avertissement

Tout ce qui a été dit pour la sauvegarde/restauration s'applique aussi au verouillage/déverrouilage : ne l'utilisez pas avec une base à fichiers multiples. Tant que ce comportement n'aura pas été changé, n'utilisez pas nbackup avec une base à fichiers multiples !

Restaurer une base après l'utilisation de « nbackup -L »

Une copie d'une base verrouilée est elle même une base verrouillée, vous ne pouvez donc pas seulement la copier et l'utiliser. Si votre base de données d'origine a été perdue ou endommagée et que vous voulez restaurer votre sauvegarde (ou que vous vouliez installer votre sauvegarde sur une autre machine), procédez comme suit :

  1. Copiez/restaurez/décompressez le fichier de sauvegarde vous même avec les outils nécessaires.

  2. Puis déverrouillez la base, non pas avec l'interrupteur -N, mais avec -F (fixup) :

    nbackup -F <database>

Pourquoi y a-t-il deux interrupteurs, -N et -F?

  • -N regarde d'abord si les changement intervenus depuis un verrouillage avec -L ont bien été fusionnés avec le fichier de base de données. Ensuite, la base de données revient à son mode normal de lecture/écriture et le fichier temporaire est supprimé.

  • -F change seulement l'indicateur d'état d'état de la base de donnée pour le remettre dans l'état « normal ».

Donc vous utilisez :

  • -N après avoir fait une copie/sauvegarde vous même (pour inverser l'interrupteur -L utilisé plus tôt);

  • -F après avoir restauré une telle sauvegarde vous même.

Note

Il est un peu dommage que cette interrupteur se nomme -F pour Fixup. Après tout, il ne corrige rien du tout; il déverrouille seulement la base. L'interrupteur -N (uNlock) quand à lui ne fait pas que déverrouiller, mais aussi une modification (intégration des changements dans le fichier principal). Mais nous devons vivre avec.

Sous le capot

Note: cette section ne contient pa de points à connaitre nécessairement, mais vous donne des informations qui peuvent vous aider à mieux comprendre les différents interrupteurs.

nbackup -L effectue les tâches suivantes :

  1. Connexion à la base;

  2. Démarrage d'une transaction;

  3. Appel d' ALTER DATABASE BEGIN BACKUP (cette instruction a été décrite dans Quelques mots sur le fonctionnement interne);

  4. Commit de la transaction;

  5. Déconnexion de la base.

nbackup -N suit les mêmes étapes, mais avec « ...END BACKUP » à l'étape 3.

nbackup -F fonctionne comme suit :

  1. La base restaurée est ouverte;

  2. Pour ce fichier, l'état passe de verrouillé (nbak_state_stalled) à normal (nbak_state_normal);

  3. Le fichier est fermé.

Note

nbackup -F travaille exclusivement au niveau du fichier et peut donc être utilisé même sans serveur Firebird en fonction. Tout paramêtre -U ou -P ajoutés à la commande seront ignorés.

Précédent: Sauvegarder et restaurerSommaire: Ensemble Firebird DocNiveau supérieur: Outil Firebird nbackupSuivant: Historique du document
Ensemble Firebird DocFirebird DocsOutil Firebird nbackup → Verrouiller et déverrouiller