Comment sauvegarder une base de données Firebird?
Je suis en train de travailler sur mon premier WinForms application avec une base de données Firebird partagé sur un réseau. Maintenant, je me demande comment doit-je m'assurer de la base de données de sauvegarde et de restauration?
Jusqu'à maintenant, mes applications utilisées à des bases de données (SQLite), alors j'étais sûr que seul mon application a accédé à la base de données. L'application elle-même était responsable pour les sauvegardes et les restaurations. Je peux simplement copier le fichier de base de données et c'est tout.
La sauvegarde a été effectuée:
- Automatiquement à chaque démarrage de l'application
- Automatiquement chaque semaine
- Manuellement par l'utilisateur
Lorsque l'utilisateur que vous souhaitez restaurer à partir d'une sauvegarde, il pourrait le faire à tout moment et qu'il pouvait choisir n'importe quel type de sauvegarde. Le tout directement à partir de mon application.
Pour la nouvelle application, j'ai déménagé de SQLite pour Firebird. J'ai choisi Firebird parce que l'application s'exécute avec fixées à la base de données par défaut, mais peut également être utilisé avec un serveur classique. Avec Firebird, je peux utiliser à la fois intégré et serveur avec le même fichier de base de données.
Le problème est que lorsque la base de données sur un serveur, il peut y avoir plusieurs utilisateurs de travailler avec la base de données en même temps, donc je ne sais pas comment faire de la sauvegarde et de la restauration. Dois-je omettre la sauvegarde/restauration de la fonctionnalité dans mon application et de laisser l'admin de faire les sauvegardes sur le serveur? Ou mon application comprennent la sauvegarde et la restauration?
La base de données partagée est tout simplement totalement nouveau pour moi, donc je ne sais pas les meilleures pratiques. De toute façon, la base de données sera très petit et il n'y aura qu'à plusieurs utilisateurs de travailler en même temps.
Merci, Petr
OriginalL'auteur user20353 | 2009-10-01
Vous devez vous connecter pour publier un commentaire.
Ne pas copier le fichier de base de données, il va corrompre la base de données.
Firebird est une base de données relationnelle serveur. gbak est l'application officielle pour exécuter des sauvegardes à chaud.
Check this out: http://firebirdfaq.org/cat5/
OriginalL'auteur Douglas Tosi
Sur un serveur partagé, vous disposez de plusieurs options pour faire des sauvegardes:
Utiliser un fichier de sauvegarde de l'outil qui prend en charge Microsoft Volume Shadow Copy. Cela va prendre un instantané de votre base de données. Firebird a été conçu pour "survivre" de ces sauvegardes. Toutefois, la restauration de cette sauvegarde, c'est comme avoir une panne de courant, mais d'un autre côté, si vous avez besoin de charger un département de la façon de faire et de faire de la surveillance, c'est une option sérieuse.
Utilisation gbak.exe pour faire une copie de la base de données alors qu'il est en cours d'utilisation, dans un fichier de sauvegarde. Ensuite, faire une sauvegarde de ce. Cette méthode est recommandée, mais pour que cela fonctionne correctement, vous devez inspecter le code de sortie de gbak.exe pour vérifier qu'aucune erreur ne s'est passé. Pas tous les services informatiques sont en mesure de le faire.
Cependant, sur un serveur partagé, vous devez toujours être paranoïaque: la Plupart des sauvegardes dans les grandes organisations ne peuvent pas être restaurées, et, généralement, le problème est que les humains font des erreurs. Donc, je peux recommander la troisième option, qui est essentiellement la combinaison des deux premiers:
Cela devrait vous donner un joli fichier de sauvegarde à restaurer, et si gbak devrait avoir échoué et personne ne l'a remarqué, vous pouvez revenir à l'instantané brut de la base de données de fichier. Plusieurs personnes doivent faire plusieurs fautes pour que cela échoue.
OriginalL'auteur Lars D
Si vous utilisez une base de données partagée, alors vous devriez sans doute prendre le processus de sauvegarde/restauration de votre demande, sinon un utilisateur pourrait corrompre ou d'éliminer le travail d'un autre utilisateur.
OriginalL'auteur Jacob G
Vous pouvez utiliser nbackup en C# comme suit:
Dans le cas où vous souhaitez bloquer la base de données tout en faisant de la sauvegarde
N'oubliez pas de débloquer
si vous voulez fermer toutes les connexions à essayer:
FbConnection.ClearAllPools();
OriginalL'auteur Carlos Alberto Flores Onofre