Firebird Documentation Index → Outil Firebird nbackup → Verrouiller et déverrouiller |
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).
Une session typique dans laquelle vous faite votre propre sauvegarde se déroule ainsi :
Verouillage la base de données avec l'interrupteur
-L
(lock) :
nbackup [-U<user>
-P<password>
] -L<database>
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.
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.
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 !
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 :
Copiez/restaurez/décompressez le fichier de sauvegarde vous même avec les outils nécessaires.
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.
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.
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 :
Connexion à la base;
Démarrage d'une transaction;
Appel d' ALTER DATABASE BEGIN BACKUP (cette instruction a été décrite dans Quelques mots sur le fonctionnement interne);
Commit de la transaction;
Déconnexion de la base.
nbackup -N
suit les
mêmes étapes, mais avec « ...END
BACKUP » à l'étape 3.
nbackup -F
fonctionne
comme suit :
La base restaurée est ouverte;
Pour ce fichier, l'état passe de verrouillé
(nbak_state_stalled
) à normal
(nbak_state_normal
);
Le fichier est fermé.
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.
Firebird Documentation Index → Outil Firebird nbackup → Verrouiller et déverrouiller |