IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Sauvegarde et restauration
        Pourquoi gbak est si lent ?
        Pourquoi la taille du fichier de backup change même si la base de données n'a pas été utilisée ?
        Pourquoi ai-je le message 'object XYZ is in use' en cours de restauration ?
        Pourquoi 'gbak -r' écrase ma base de données ?
        Taille incorrecte ou manquante pour le fichier database.fdb
        Des problèmes lors de la restauration de grosses base de données sous Linux ?
        Est-ce sans danger de copier le fichier base de données?
        Est-il possible de restaurer une seule table ?



Pourquoi gbak est si lent ?
auteur : SergioMaster
GBAK est un outil de backup, mais ses performances sont identiques à celles de tout autre client Firebird. Il lit toute la base de données et la sauvegarde. A la restauration, il restaure la base entière.
si vous recherchez une solution de backup incrémenté, jetez un ?il à l'utilitaire NBACKUP, disponible avec Firebird 2.

Par défaut, GBAK fait un nettoyage de la base au cours du backup. Comme le backup et le nettoyage sont des opérations de maintenance et que les deux parcourent la base entière, c'est une bonne idée de le faire en même temps.
Si la vitesse est votre principal objectif, vous pouvez désactiver le nettoyage avec l'option -G (ou l'option appropriée de votre outil d'administration)
Traduction réalisée depuis http://www.firebirdfaq.org/faq85/


Pourquoi la taille du fichier de backup change même si la base de données n'a pas été utilisée ?
auteur : SergioMaster
Si vous faites des backups réguliers, vous pourrez remarquer que la taille de la base de données comme celle du fichier de backup change, même si aucune application n'a utilisé la base.
La raison en est le backup lui-même. Quand le backup est initié via les services API ou directement avec GBAK il démarre une transaction 'cliché' pour lire les données.
Chaque transaction est enregistrée en tête de la base de données (dans l'inventaire des transactions), donc le fichier base de données va changer.
De plus, si vous exécutez GBAK sans l'option -g, il exécute un nettoyage de la base (garbage collection , littéralement ramassage des ordures) qui, lui aussi, modifie la base de données.

Si vous voulez empêcher ces changements, utilisez GFIX pour mettre la base de données en mode lecture seule, ainsi :

gfix -mode read_only database.fdb
Traduction réalisée depuis http://www.firebirdfaq.org/faq225/


Pourquoi ai-je le message 'object XYZ is in use' en cours de restauration ?
auteur : SergioMaster
C'est une combinaison de problèmes avec les anciennes versions de Firebird (1.x).
Le premier est que les utilisateurs peuvent se connecter alors que la base est en cours de restauration.
Le second est qu'il pouvait y avoir des opérations comme la création de clés étrangères requérant un accès exclusif à la base de données. Ainsi, si quelqu'un se connecte à la base alors que vous êtes en train de la restaurer, vous n'êtes plus l'unique utilisateur et la restauration des clés étrangères échoue. Des problèmes identiques peuvent survenir avec d'autres objets, toujours pour les mêmes raisons .

La pratique courante pour éviter cela est de toujours restaurer dans une base temporaire puis de la renommer une fois l'opération terminée.
Effacer ou renommer la base d'origine avant de démarrer la restauration est également recommandé car des utilisateurs peuvent essayer de travailler avec (sur la 'vieille' base) alors que vous restaurer et que les données seront alors perdues.
Désactiver les connexions au serveur en utilisant un pare-feu est également une bonne alternative, sauf si vous avez des connexions locales (à partir d'applications web ou intranet par exemple).

Firebird 2 est bien meilleur car il bloque les utilisateurs pendant que la base de données est en cours de restauration et permet également la création de clés étrangères sans le besoin d'accès exclusif.
Traduction réalisée depuis http://www.firebirdfaq.org/faq172/


Pourquoi 'gbak -r' écrase ma base de données ?
auteur : SergioMaster
Ce switch '-r' n'a jamais causé que des problèmes. L'avertissement général est de ne jamais utiliser le -r, car R est le R de 'Replace' non celui de 'Restore'


Significations de quelques options
  • gbak -b backup
  • gbak -r replace
  • gbak -c create
Il est largement préférable d'utiliser -c pour créer une nouvelle base de données à partir d'une sauvegarde puis de renommer le fichier.
Cela vous évitera beaucoup d'ennuis. Utilisez un fichier temporaire et assurez-vous que personne n'essaie d'y accéder avant que cela soit prêt.
Quand vous utilisez le switch -c, GBAK vous préviendra si le fichier base de données existe déjà et annulera la restauration.
De même , si vous utilisez le switch -r et que la restauration échoue pour une raison quelconque, la base ne sera plus fonctionnelle car la vieille aura été effacée au début de la restauration.

Ceci a été changé avec Firebird 2, maintenant -R veut dire RECREER la base de données, et cette option n'écrasera pas une base de données existante.
Si vous désirez l'ancien comportement du switch -R , vous utiliserez -REP ou -R -O, où -O veut dire OVERWRITE.
Traduction réalisée depuis http://www.firebirdfaq.org/faq181/


Taille incorrecte ou manquante pour le fichier database.fdb
auteur : SergioMaster
Vous avez probablement indiqué la taille du fichier en bits, kilo-bits ou méga-bits, alors que cela aurait du l'être en pages de base de données.
Par exemple, si votre taille de page est de 4kB, alors un fichier d'une taille de 1MB sera égal à 256 pages.
Traduction réalisée depuis http://www.firebirdfaq.org/faq146/


Des problèmes lors de la restauration de grosses base de données sous Linux ?
auteur : SergioMaster
Lors de la restauration de grosses bases de données sous Linux, vous pouvez obtenir ce genre d'erreur :


I/O error for file "/tmp/fb_sort__xxxxxx"<br/>
-Error while trying to read from file<br/>
-No such file or directory<br/>


Cela arrive généralement quand vous avez une grosse table et que cela prend longtemps de créer les index.
Firebird utilise un fichier temporaire pour cela (/tmp par défaut) et certaines distributions de Linux ont des travaux de nettoyage du répertoire planifiés.
Désactiver le crond ou changer la valeur de TempDirectories dans le fichier firebird.conf résoudra ce problème.
Traduction réalisée depuis http://www.firebirdfaq.org/faq295/


Est-ce sans danger de copier le fichier base de données?
auteur : SergioMaster
Généralement, vous pouvez copier le fichier base de données. Mais, attention

Si vous le copiez quand le serveur Firebird est éteint, il n'y aura aucun problème, c'est juste un fichier comme un autre. Même chose si aucun utilisateur n'est connecté.

Copier la base de données en cours d'utilisation , par contre est une mauvaise idée. Firebird peut très bien écrire de nouvelles transactions pendant le process de copie, votre copie risque d'être corrompue.
Il est toujours préférable de faire un backup/restore.

Si le backup/restore est trop lent à votre goût, ou si vous voulez utiliser un outil tiers ne supportant que la copie de fichier, vous pouvez résoudre le problème en utilisant l'outil nBackup de Firebird.


  • Verrouillez la base avec nbackup
  • Copiez le fichier
  • Déverrouillez la base

Le verrouillage de la base n'empêche pas la base d'être utilisable. Toutes les transactions sont écrites dans un autre endroit, et une fois la base déverrouillée, les transactions sont fusionnées dans le fichier principal.

Pour plus d'informations, lisez le manuel de nBackup
http://interbase.developpez.com/firebird/nbackup/

Traduction réalisée depuis http://www.firebirdfaq.org/faq355/


Est-il possible de restaurer une seule table ?
auteur : SergioMaster
Vous pouvez le faire avec l'outil open source FBExport (valable pour Windows et Linux)
http://www.firebirdfaq.org/fbexport.php

Traduction réalisée depuis http://www.firebirdfaq.org/faq280/



Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.