IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ FirebirdConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 205, dernière mise à jour : 15 septembre 2014  Ajouter une question

 

Cette faq a été réalisée à partir des questions fréquement posées sur les forums Firebird de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci

Sur ce, nous vous souhaitons une bonne lecture.
L'équipe Firebird de Developpez.com

SommaireSauvegarde et restauration (8)
précédent sommaire suivant
 

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/

Mis à jour le 3 janvier 2009 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 :

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

Mis à jour le 3 janvier 2009 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/

Mis à jour le 3 janvier 2009 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/

Mis à jour le 3 janvier 2009 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/

Mis à jour le 3 janvier 2009 SergioMaster

Lors de la restauration de grosses bases de données sous Linux, vous pouvez obtenir ce genre d'erreur :

Code text : Sélectionner tout
1
2
3
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/

Mis à jour le 3 janvier 2009 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/

Mis à jour le 3 janvier 2009 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/

Mis à jour le 3 janvier 2009 SergioMaster

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2022 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.