Guide de départ pour Firebird 1.1
Transcription
Guide de départ pour Firebird 1.1
Guide de départ pour Firebird } Que contient le kit? IBPhoenix Publications Guide de départ pour Firebird Cette section est une introduction aux éléments essentiels, et qui s’adresse aux nouveaux venus qui désirent commencer rapidement l’utilisation de Firebird. Pour des détails complets à propos de la configuration ou de l’exécution de votre serveur et de la mise au point de votre installation, référezvous aux chapitres 4 à 6 du manuel Using Firebird, distribué sur le CD-ROM de IBPhoenix. Que contient le kit? Tous les kits contiennent tous les composants nécessaires pour installer le serveur Firebird : - l’exécutable du serveur Firebird - une librairie client située sur l’ordinateur serveur - les outils en ligne de commande - les librairies standards des fonctions définies par l’utilisateur (UDF) - une base de données exemple - les fichiers de déclarations C (non requis pour les débutants!) - notes de dernière minute – À LIRE SANS FAUTE! Emplacements disque par défaut La table suivante indique l’emplacement disque par défaut des composants sous Windows et Linux. L’information est fournie selon 2 versions : - les versions antérieures à la version 1.5 de Firebird - les versions à partir de la version 1.5 de Firebird ou plus récentes Ces différences sont importantes. Les versions antérieures à la version 1.5 de Firebird utilisent plusieurs des mêmes emplacements, noms de composants et liens que InterBase 6.x, et les versions antérieures de InterBase. Ainsi, il est impossible d’exécuter le serveur Firebird ainsi que le serveur InterBase sur la même machine avec ces versions. Dans les révisions de code majeures débutées à partir de v.1.5, les anciens liens aux objets InterBase furent enlevés et plusieurs des composants majeurs ont été renommés. Firebird 1.5 peut permettre la présence d’un serveur InterBase® en exécution. C’est un objectif pour Firebird 2. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 1 Guide de départ pour Firebird } Emplacements disque par défaut Tableau 1 : Composants de l’installation de Firebird Plate-forme Windows 32 bits et 64 bits Composant Serveur Firebird Outils en ligne de commande Base de données exemple Librairies des fonctions définies par l’utilisateur (UDF) Windows NT, 2000, XP Client Firebird Windows 9x, ME Client Firebird Linux et autres distributions UNIX possibles Serveur Firebird Outils en ligne de commande Librairies UDF Client Firebird © IBPHOENIX PUBLICATIONS 2002, 2003 Nom du fichier Avant v.1.5 ibserver.exe v.1.5 et plus récent fbserver.exe gbak.exe, gfix.exe, gstat.exe, etc. Employee.gdb ib_udf.dll & ib_utils.dll fbudf.dll Avant v.1.5 gds32.dll v.1.5 et plus récent lié à xxxxx.dll à travers gds32.dll Comme ci-dessus Avant v.1.5 ibserver v.1.5 et plus récent fbserver gbak, gfix, gstat, etc. Avant v.1.5 v.1.5 et plus récent Avant v.1.5 ib_udf.so v.1.5 et plus récent ib_udf.so fbudf.so Avant v.1.5 libgds.so.0 (binaire) libgds.so (lien symb.) v.1.5 et plus récent TBA GUIDE DE DÉPART POUR FIREBIRD Emplacement par défaut c:\Program Files\Firebird\bin c:\Program Files\Firebird\bin c:\Program Files\Firebird\examples c:\Program Files\Firebird\udf c:\Winnt\System32 c:\Windows /opt/interbase/bin TBA /opt/interbase/bin TBA /opt/interbase/bin TBA /usr/lib 2 Guide de départ pour Firebird } Installation de Firebird Installation de Firebird Installation sur disques Le serveur Firebird ainsi que toutes les bases de données que vous créez ou auxquelles vous vous connectez doivent résider sur un disque rigide qui est physiquement connecté à la machine hôte. Les composants du serveur, ni aucune base de données ne peuvent résider sur un lecteur réseau (unité assignée sous Windows « mapped drive »), un système de fichiers partagés ou un système de fichiers en réseau (système de fichiers NFS). Une base de données en lecture seule peut résider sur un CD-ROM mais vous ne pouvez exécuter le serveur Firebird à partir de celui-ci. Script ou programme d’installation Bien qu’il soit possible d’installer Firebird par une méthode de copie de fichiers (comme par exemple, décompresser « untar » un fichier image ou décompresser une structure de fichiers et répertoires contenus dans un fichier Winzip «.zip »), il est fortement recommandé d’utiliser le kit de distribution la première fois que vous installez Firebird. Le script d’installation exécutable de Windows, le programme rpm (RedHat Package Manager) de Linux et le fichier officiel tar.gz pour les autres plates-formes Posix accomplissent certaines tâches essentielles de l’installation. Si vous suivez les instructions correctement, vous ne devriez rien avoir à faire jusqu’à la fin de l’installation alors ouvrez une session et allez-y! Plates-formes Windows Sur les plates-formes serveur (Windows NT, 2000 et XP) le service Firebird sera en exécution à la fin de l’installation. La prochaine fois que vous redémarrerez votre serveur, le service sera démarré automatiquement. Pour savoir comment démarrer et arrêter le service manuellement, référez-vous à la section Running Firebird on Windows, p. 54, chapitre 4 du manuel Using Firebird. Les plates-formes Windows qui ne sont pas serveur (Windows 95, 98, ME) ne supportent pas les services. Le programme d’installation démarrera le serveur Firebird comme une application, protégée par une autre application connue sous le nom de Guardian. Si l’application serveur se termine anormalement pour quelque raison que ce soit, l’application Guardian tentera de la redémarrer. Une copie de la librairie client (gds32.dll) aura aussi été installée dans le répertoire system. Plates-formes Posix Dans tous les cas, lisez les notes de dernière minute qui s’appliquent à la version de Firebird que vous désirez installer. Il peut y avoir d’importantes variations d’une version à l’autre de n’importe quel système d’exploitation Posix, en particulier ceux à code source ouvert (open source). Dans la mesure du possible, les ingénieurs ont essayé de documenter tous les problèmes possibles pour chaque version de Firebird. Si vous ne pouvez trouver une copie des notes de dernière minute dans votre kit, vous pouvez en télécharger une copie à partir de la page de téléchargements du site web de Firebird à l’adresse http://firebird.sourceforge.net . © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 3 Guide de départ pour Firebird } Test de votre installation Si vous avez une distribution Linux qui supporte les installations rpm, consultez la documentation propre à votre plate-forme pour connaître les instructions à propos de l’utilisation du Redhat Package Manager. Dans la plupart des distributions, vous aurez le choix d’effectuer l’installation à partir d’un interpréteur de commandes (command shell) ou à partir d’une interface graphique. Pour les distributions Linux qui ne peuvent utiliser les programmes rpm, ainsi que pour les différentes saveurs de Unix, utilisez le kit « .tar.gz ». Vous y trouverez des instructions détaillées dans les notes de dernière minute. Des scripts « shell scripts » ont également été fournis. Dans certains cas, les notes de dernière minute peuvent vous indiquer de modifier les scripts et d’apporter quelques changements manuels. Test de votre installation Si tout fonctionne comme prévu, le processus serveur Firebird s’exécutera sur votre serveur dès la fin de l’installation. Il démarrera également automatiquement à chaque fois que vous redémarrerez votre serveur. À cette étape, nous supposons que vous utiliserez le protocole recommandé TCP/IP pour votre réseau client/serveur Firebird. Pour de l’information à propos de l’utilisation du protocole NetBEUI dans un environnement complètement Windows, référez-vous au chapitre 6, Network configuration dans le manuel Using Firebird. Les réseaux IPX/SPX ne sont pas supportés par Firebird. « Ping » du serveur Habituellement, la première chose que vous désirerez faire à la fin de l’installation est de faire un « ping » du serveur. Ce test ne fait que vous assurez que votre machine client peut voir la machine hôte dans votre réseau. Par exemple, si l’adresse IP de votre serveur dans le domaine qui est visible à votre client est 192.13.14.1, démarrez une session de commandes « command shell » et tapez la ligne de commande ping 192.13.14.1 en substituant l’adresse IP donnée en exemple par l’adresse IP que votre serveur diffuse. Si vous obtenez un message de délai d’attente, étudiez le manuel Using Firebird (Chapitre 6, Network Configuration, et chapitre 7, Troubleshooting Connections) pour plus d’informations. Notez que si vous vous connectez au serveur à partir d’un client local (un client s’exécutant sur la même machine que le serveur) vous pouvez faire un « ping » du serveur « loopback » virtuel: ping localhost ou ping 127.0.0.1 Vérifier que le serveur Firebird est en exécution © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 4 Guide de départ pour Firebird } Test de votre installation Après l’installation, le serveur Firebird devrait s’exécuter comme un service sous Windows NT, 2000, XP ou sous Linux. Windows NT4, 2000, XP Pour les plates-formes serveur Windows, démarrez le gestionnaire de Services à partir du panneau de configuration. Le serveur Firebird et le Guardian Cette illustration montre le gestionnaire de Services sous Windows NT4. L’apparence peut varier d’une version serveur de Windows à l’autre. Le Guardian Si l’application Guardian est en exécution (tel que vu dans l’illustration ci-dessous) elle peut avoir un nom de service différent à cause des changements de version. Sous Windows 2000 et XP, l’application Guardian est une commodité plutôt qu’une nécessité puisque ces deux systèmes d’exploitation peuvent surveiller et redémarrer les services. Il est recommandé de garder l’application Guardian active sous les autres platesformes si un « SYSDBA » (administrateur de bases de données) n’est pas disponible pour redémarrer le serveur manuellement dans le cas où il serait arrêté pour quelque raison que ce soit. Le panneau de configuration de Windows Les kits de distribution précédents de Firebird installaient l’application Interbase Manager dans le panneau de configuration des systèmes d’exploitation qui supportent les services. Ceci fut omis à partir de Firebird 1.0 parce qu’un nombre d’implémentations du « Firebird [Server] Manager » © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 5 Guide de départ pour Firebird } Test de votre installation spécifique à Firebird est devenu disponible à travers les canaux « open source ». Même si cette application n’est pas essentielle, elle offre une manière pratique de démarrer et arrêter le service. Si vous désirez une application FireBird Manager et que vous n’en trouvez pas d’installée dans le panneau de configuration de votre serveur Windows, téléchargez le code source Delphi à partir de la branche « addons » de l’arbre CVS Firebird ou une version compilée à partir de www.ibphoenix.com . L’apparence de l’application pour le panneau de configuration sera similaire à celle de l’illustration cidessous. Windows 9x ou ME Sous Windows 9x ou ME, le serveur Firebird devrait s’exécuter comme une application et surveillé par le Guardian. L’icône de l’application Guardian devrait apparaître dans la zone de notification (« system tray ») avec une icône verte. Si l’icône clignote ou s’affiche en rouge, ceci indique que le Guardian tente de démarrer le serveur ou a échoué à le démarrer. Si vous avez utilisé un kit d’installation qui a installé, mais n’a pas démarré automatiquement le Guardian et le serveur Firebird, vous pouvez corriger cette situation comme suit : 1. Localisez le fichier exécutable de l’application Guardian (ibguard.exe) et créez un raccourci pour ce programme dans le groupe Démarrage du menu Démarrer de votre machine. 2. Ouvrez la boîte de propriétés du raccourci et positionnez-vous dans le champ où est inscrite la ligne de commande. 3. Modifiez la ligne de commande comme suit : ibguard.exe -a 4. Sauvegardez puis fermez la boîte de propriétés. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 6 Guide de départ pour Firebird } Test de votre installation 5. Double-cliquez sur le raccourci pour démarrer Guardian. Le Guardian procédera au démarrage de ibserver.exe . Le Guardian devrait démarrer automatiquement la prochaine fois que vous démarrerez votre machine Windows 9x ou ME. Il n’y a présentement pas d’application pour le panneau de configuration qui détecte l’exécution du serveur Firebird sur ces versions de Windows non serveur. Serveurs Posix Utilisez la commande top dans une session de commandes « command shell » pour inspecter de manière interactive les processus en exécution. Si Firebird est en exécution, vous devriez voir un processus appelé ibguard (c’est le Guardian), un maître et avec ou sans processus enfants appelés ibserver ou fbserver (ceci dépend de la distribution de Firebird que vous avez installé). Les captures d’écran suivantes montrent le résultat de la commande top, restreinte par la commande grep pour montrer seulement les processus avec des noms qui commencent par les caractères ‘ib’, c’est à dire : top -A | grep ib Si votre serveur Firebird utilise l’architecture Classique (« Classic server »), le nom du processus est gds_inet_server. Il y aura une instance de ce processus pour chaque connexion. Utilisez la commande top –A | grep gds pour voir ces processus. Autres choses dont vous avez besoin Une adresse réseau pour votre serveur - Si vous êtes sur un réseau qui est géré, demandez l’adresse IP à votre administrateur de systèmes. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 7 Guide de départ pour Firebird } Autres choses que vous avez besoin - Si vous avez simplement un réseau de deux machines connectées par un câble croisé, vous pouvez configurer votre serveur avec l’adresse IP de votre choix à l’exception de l’adresse 127.0.0.1 (qui est réservée pour un serveur « loopback » local) et bien sûr de l’adresse IP que vous utilisez pour votre machine client. Si vous connaissez les adresses IP natives de vos cartes réseau, et qu’elles sont différentes, vous pouvez simplement les utiliser. - Si vous projetez de faire l’essai de l’installation du client et du serveur sur une même machine, vous devriez utiliser l’adresse locale « loopback » de votre serveur « localhost » avec l’adresse IP 127.0.0.1. Notez que sous Windows, il est possible de se connecter localement au serveur sans utiliser un « loopback » TCP/IP local. Ce n’est pas une connexion TCP/IP et ce n’est pas une manière fiable (thread-safe) de se connecter à un serveur local. Cependant, pour l’utilisation d’une simple instance des outils en ligne de commandes (gsec, gbak, etc.), cette manière fonctionne très bien. Nom d’utilisateur et mot de passe par défaut L’utilisateur SYSDBA a tous les privilèges sur le serveur. Le programme d’installation installera l’utilisateur SYSDBA avec le mot de passe masterkey . Présentement, le mot de passe est masterke, puisque les caractères après le huitième caractère sont ignorés. Si votre serveur est accessible à tous le monde à partir de Internet, vous devriez changer ce mot de passe immédiatement en utilisant l’outil en ligne de commande gsec. Comment changer le mot de passe de l’utilisateur SYSDBA Vous devez être connecté au niveau du système d’exploitation comme super utilisateur (root sous Linux) pour exécuter l’utilitaire gsec. Par exemple, si vous désirez changer le mot de passe de l’utilisateur SYSDBA pour icuryy4me. 1. Ouvrez une session en mode de commandes sur votre serveur et positionnez-vous dans le répertoire où les outils en mode de commandes sont situés. Référez-vous au tableau 1 ci-haut pour connaître cet emplacement. 2. Tapez ce qui suit (cette ligne de commandes est sensible à la case (minuscule/majuscule) sur toutes les plates-formes à l’exception de Windows) : gsec -user sysdba -password masterkey Vous devriez maintenant voir le message-guide de l’utilitaire gsec. GSEC> 3. Tapez la commande suivante © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 8 Guide de départ pour Firebird } Connexion à la base de données exemple GSEC> modify sysdba -pw icuryy4me 4. Pressez la touche « Entrée » (ENTER). Le nouveau mot de passe icuryy4me est maintenant encrypté et sauvegardé et le mot de passe masterkey n’est désormais plus valide. 5. Maintenant quittez l’utilitaire gsec : GSEC> quit Étant donné que dans un mot de passe, Firebird ignore les caractères passés le huitième caractère, la saisie de icuryy4m comme mot de passe fonctionnera aussi bien que la saisie de icuryy4monkeys . Un outil d’administration Le kit Firebird ne vient pas avec un outil d’administration graphique. Il contient une série d’outils en mode de commandes et de programmes exécutables qui sont situés dans le répertoire ./bin de votre installation Firebird. La gamme des excellents outils d’administration graphiques disponibles pour une utilisation avec un client Windows est trop étendue pour les décrire ici. Quelques outils graphiques développés à l’aide de Borland Kylix, pour une utilisation sur des machines Linux client, sont également à différentes phases d’être achevés. Consultez la page Downloads > Contributed > Admin Tools à l’adresse http://www.ibphoenix.com pour toutes les options. Vous pouvez utiliser un client Windows pour accéder un serveur Linux ou vice versa. Connexion à la base de données exemple Dans le répertoire ./examples de votre installation Firebird, il y a une base de données exemple appelée employee.gdb. Vous pouvez utiliser cette base de données pour faire des tests. Si vous exécutez le serveur sous Windows XP ou ME, assurez-vous de renommer cette base de données test sous le nom employee.fdb pour éviter des conflits avec l’utilitaire Restauration du System (System restore) de Windows qui vérifie et prend en copie en permanence les fichiers avec l’extention .gdb. Nom du serveur et chemin d’accès Si vous déplacez la base de données exemple, assurez-vous de la déplacer sur un disque rigide qui est physiquement attaché à votre serveur. Les unités partagés, les unités assignées (mapped drives) ou sous Unix les systèmes de fichier SMB (Samba) ne peuvent être utilisés pour y stocker une base de données Firebird. La même règle s’applique pour toutes les bases de données que vous créez. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 9 Guide de départ pour Firebird } Connexion à la base de données exemple Il y a deux éléments à une chaîne de connexion TCP/IP : Le nom du serveur ainsi que le chemin d’accès (disque/système de fichier). Son format est comme suit : Pour un serveur Linux: nom-du-serveur:/chemin-accès/fichier-base-de-données Exemple pour un serveur Linux ou autre serveur Posix appelé serveurxyz serveurxyz:/opt/interbase/examples/employee.gdb Pour un serveur Windows: nom-du-serveur:D:\chemin-accès\fichier-base-de-données serveurxyz:C:\Program Files\Firebird\examples\employee.gdb La commande CONNECT Se connecter à une base de données Firebird demande toujours au préalable de se connecter (login) en utilisant un nom d’utilisateur et un mot de passe valide. N’importe quel utilisateur autre que SYSDBA ou root (sur les systèmes Posix) a aussi besoin de permissions aux objets dans une base de données. Pour garder notre lecture simple, nous allons voir ici comment se connecter à l’aide de l’utilisateur SYSDBA et le mot de passe masterkey. Se connecter en utilisant ISQL Il y a plusieurs manières différentes de se connecter à une base de données en utilisant ISQL. Une de ces manières est de démarrer ISQL en mode interactif. Positionnez-vous dans le répertoire ./bin de votre installation de Firebird et tapez la commande isql : C:\Program Files\Firebird\bin>isql <Entrée> Use CONNECT or CREATE DATABASE to specify a database CONNECT "C:\Program Files\Firebird\examples\Employee.gdb" 'SYSDBA' password 'masterkey'; <Entrée> user Lors de l’utilisation de isql, assurez-vous que toutes les commandes saisies se terminent par un point-virgule. Si vous l’oubliez, le message-guide changera de SQL> à CON> et vous ne pourrez continuer jusqu’à ce que vous saisissiez le point-virgule et que vous pressez <Entrée> . Bien que les symboles simples guillemets soient la norme pour délimiter les chaînes de caractères avec Firebird, les doubles guillemets ont été utilisés pour spécifier le chemin à la base de données dans l’exemple ci-dessus. Ceci est parfois nécessaire avec quelques-uns des outils en ligne de commandes lorsque le chemin d’accès contient des espaces. Les simples guillemets devraient fonctionner pour les chemins d’accès qui ne contiennent pas d’espaces. À cette étape, isql vous informera que vous êtes connecté: DATABASE "C:\Program Files\Firebird\examples\Employee.gdb", sysdba SQL> © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD User: 10 Guide de départ pour Firebird } Création d’une base de données à l’aide de isql Vous pouvez maintenant continuer à faire des tests avec la base de données employee.gdb. Les caractères isql veulent dire interactive SQL [utility] (utilitaire SQL interactif) . Vous pouvez utiliser cet utilitaire pour faire des requêtes sur les données, obtenir de l’information à propos des métadonnées, créer des objets de bases de données, exécuter des scripts de définition de données et bien plus. Pour quitter l’utilitaire tapez : SQL> QUIT; Pour plus d’informations à propos de isql, référez-vous au chapitre 10 Interactive SQL utility (isql) (p. 152 du manuel Using Firebird). Se connecter en utilisant un client graphique Habituellement, les utilitaires client graphiques s’occupent de composer la chaîne de connexion pour vous, en utilisant le nom du serveur, le chemin d’accès, le nom d’utilisateur ainsi que le mot de passe que vous saisissez dans les différents champs. Utilisez les éléments tels que décrits dans la section précédente. Il est assez commun pour ces utilitaires de s’attendre à recevoir en une seule chaîne le nom du serveur ainsi que le chemin d’accès. Souvenez-vous que les noms de fichier et les commandes sous Linux ou autres interpréteurs de commandes Posix sont sensibles à la case (case-sensitive). Création d’une base de données à l’aide de isql Il y a plusieurs façons de créer une base de données à l’aide de isql. Ici, nous allons utiliser une manière simple de créer une base de données de façon interactive. Cependant, pour vos travaux de définition de base de données plus sérieux, vous devriez créer et maintenir vos objets métadonnées à l’aide de scripts de définition. Un chapitre complet dans le manuel Using Firebird traite de ce sujet. Démarrage de isql Pour créer une base de données de façon interactive à l’aide de isql, vous devez travailler à partir du serveur. En mode interpréteur de commandes, positionnez-vous dans le répertoire ./bin de Firebird et démarrez isql comme suit : C:\Program Files\Firebird\bin>isql <Entrée> Use CONNECT or CREATE DATABASE to specify a database La commande CREATE DATABASE Maintenant, vous pouvez créer votre nouvelle base de données de façon interactive. Supposons que vous désirez créer une base de données appelée test.fdb et la sauvegarder dans un répertoire appelé « data » sur votre disque D : © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 11 Guide de départ pour Firebird } Création d’une base de données à l’aide de isql SQL> CREATE DATABASE 'D:\data\test.fdb' page_size 8192 user 'SYSDBA' password 'masterkey'; <Entrée> La base de données sera créée, et après un court moment, le message-guide SQL réapparaîtra. Vous êtes maintenant connecté à la nouvelle base de données et pouvez procéder à la création de quelques objets test dans celle-ci. Pour vérifier qu’il y a vraiment une nouvelle base de données, tapez la requête suivante : SQL> SELECT * FROM RDB$RELATIONS; <Entrée> L’écran se remplira avec beaucoup de données. Cette requête sélectionne tous les enregistrements de la table système où Firebird garde les métadonnées des tables. En effet, une base de données vide n’est pas réellement vide. Elle contient une base de données qui se remplira de métadonnées lorsque vous commencerez à y créer des objets. Pour quitter isql et revenir à l’interpréteur de commandes, tapez : SQL> QUIT; Pour plus d’informations à propos de isql, référez-vous au chapitre 10 Interactive SQL utility (isql) (p. 152 du manuel Using Firebird). Effectuer une installation « client seulement » Chaque machine client distante a besoin de la librairie libgds.so sur les clients Posix, et gds32.dll sur les clients Windows. Ceci correspond à la version du serveur Firebird. Les versions 1.5 et plus récentes de Firebird, requièrent une librairie client additionnelle appelée libfb.so ou fb32.dll qui contient la librairie complète. Dans ces nouvelles distributions, les fichiers appelés « gds » sont distribués pour maintenir une compatibilité avec des produits tiers qui utilisent ces fichiers. De manière interne, les librairies vont automatiquement brancher aux points d’accès exacts dans les librairies qui ont été renommées. Quelques autres pièces sont également requises pour une installation « client seulement » Windows Lors de la publication, aucune installation compacte n’était disponible pour l’installation des pièces additionnelles d’un client Windows. Si vous êtes dans la situation que vous désirez accéder à un serveur Firebird Linux ou autre serveur Posix, à partir de clients Windows, vous devez télécharger le kit d’installation complet de Firebird pour Windows qui correspond à la version de Firebird que vous avez installée sur votre serveur Linux ou autre serveur Posix. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 12 Guide de départ pour Firebird } Effectuer une installation «client seulement» Heureusement, une fois que vous avez téléchargé le kit, l’installation « client seulement » est facile à effectuer. Exécutez le programme d’installation comme si vous désiriez installer le serveur, mais sélectionnez l’option CLIENT ONLY à partir du menu d’installation. Linux et autres clients Posix Une installation compacte pour les clients Linux n’est pas disponible non plus. De plus, quelques saveurs Posix (même dans la constellation Linux) ont certaines exigences pour l’emplacement des systèmes de fichiers. Pour ces raisons, ce n’est pas toutes les distributions *x pour Firebird qui contiennent une installation « client seulement ». Pour la plupart des saveurs Linux, la procédure suivante est suggérée pour les version de Firebird antérieures à la version 1.5. Connectez-vous en tant qu’utilisateur root pour ceci. 1. Recherchez le fichier libgds.so.0 dans le répertoire /opt/interbase/lib sur le serveur où le serveur Firebird est installé. Copiez ce fichier dans le répertoire /usr/lib sur le client. 2. Créez le lien symbolique (symlink) libgds.so pour ce fichier en utilisant la commande suivante : ln -s /usr/lib/libgds.so.0 /usr/lib/libgds.so 3. Copiez le fichier interbase.msg dans le dossier /opt/interbase 4. Dans le fichier profile de la coquille système par défaut (system-wide default shell profile), ou en utilisant setenv() à partir d’un interpréteur de commandes, créez la variable d’environnement INTERBASE et assignez-y /opt/interbase , pour activer les routines API pour qu’elles puissent localiser les messages. Autres choses intéressantes à connaître Ce chapitre se termine avec une petite collection de choses éclectiques que d’autres novices de Firebird auraient aimé connaître lors de leurs débuts. Firebird SQL Chaque système de gestion de bases de données a ses propres particularités dans la manière qu’il implémente SQL. Firebird se conforme au standard SQL plus rigoureusement que n’importe quel autre RDBMS (Relational DataBase Management System) à l’exception possible de son cousin InterBase®. Les développeurs qui migrent de produits qui sont moins conformes aux standards, supposent souvent et à tort, que Firebird est bizarre, alors que les supposés bizarreries ne sont en fait aucunement bizarres. Symbole de délimitation de chaînes de caractères Les chaînes de caractères dans Firebird sont délimitées par une paire de simples guillemets -‘Je suis une chaîne de caractères’- (Code ASCII 39 et non le code 96). Si vous avez utilisé des anciennes versions de Firebird, relatives à InterBase®, vous pourrez vous souvenir que les guillemets © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 13 Guide de départ pour Firebird } Autres choses intéressantes à connaître simples et doubles étaient interchangeables comme délimiteurs de chaines. Les doubles guillemets ne peuvent être utilisés comme délimiteurs de chaînes avec Firebird. Identifiants doubles guillemets Avant le standard SQL-92, il n’était pas légal d’avoir des noms d’objets (identifiants) dans une base de données qui étaient une duplication des mots clés du langage, qui étaient sensibles à la case (case-sensitive) ou qui contenaient des espaces. SQL-92 introduit un nouveau standard simple pour rendre ceci légal, à condition que les identifiants soient définis avec une paire de doubles guillemets (ASCII 34) et toujours référés en utilisant les doubles guillemets. Le but de ce « cadeau » était de rendre plus facile la migration de métadonnées d’une RDBMS non standard en RDBMS conforme. Le désavantage est que si choisissez de définir un identifiant entre doubles guillemets, la case (case-sensitivity) et les doubles guillemets forcés resteront obligatoires. Firebird permet un léger relâchement selon certaines conditions très limitées : si l’identifiant qui a été défini entre doubles guillemets 1) a été défini complètement en majuscule 2) n’est pas un mot clé et 3) ne contient aucun espace, alors il peut être utilisé en SQL sans guillemets pourvu qu’il soit utilisé tout en majuscule. À moins que vous ayez une raison très convaincante pour définir des identifiants entre guillemets, il est habituellement recommandé d’éviter cela. Firebird accepte volontiers un mélange d’identifiants entre guillemets ou non. Ainsi, si vous en avez besoin, il n’y a pas de problème à inclure un mot clé dont vous avez hérité d’une autre base de données. Certains outils d’administration de bases de données appliquent systématiquement l’utilisation de doubles guillemets. Essayez de choisir un outil qui rend l’application des doubles guillemets optionnel. Apostrophes dans les chaînes de caractères Si vous devez utiliser un caractère apostrophe dans une chaîne de caractères Firebird, vous pouvez vous en tirer en précédant l’apostrophe avec une autre apostrophe. Par exemple, la chaîne suivante donnera une erreur : 'Une vitesse de 50 km à l’heure est suffisante' puisque lorsque l’analyseur syntaxique rencontrera l’apostrophe, il interprétera la chaîne de caractères comme ’Une vitesse de 50 km à l’et ne pourra interpréter les mots suivants qui lui seront inconnus. Pour rendre cette chaîne de caractères légale, précédez l’apostrophe avec une autre apostrophe : 'Une vitesse de 50 km à l’’heure est suffisante' Notez qu’il y a DEUX simples guillemets et non un double guillemets. Concaténation de chaînes de caractères Le symbole de concaténation en SQL est deux symboles ‘pipe’ ‘||’ qui se suivent (ASCII 124, une paire sans espace). En SQL, le symbole + est un opérateur arithmétique et causera une erreur si vous tentez d’utiliser ce symbole pour la concaténation de chaînes de caractères. L’expression suivante préfixe une colonne de type caractères avec les caractères ‘Reporté par : ‘: © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 14 Guide de départ pour Firebird } Autres choses intéressantes à connaître ‘Reporté par : ‘ || LastName Faites attention lors de concaténation. Firebird produira une erreur si votre expression tente de concaténer deux ou plusieurs colonnes de type CHAR ou VARCHAR qui après concaténation pourraient excéder la longueur maximum permise d’un type CHAR ou VARCHAR soit 32K. Voir aussi les notes ci-dessous, Expressions impliquants NULL, à propos de la concaténation dans les expressions qui impliquent NULL. Division d’un entier par un entier Firebird est conforme au standard SQL en tronquant le résultat (quotient) d’un calcul entier/entier (integer/integer) au prochain entier plus petit. Ceci peut donner d’étranges résultats à moins que vous en soyez informé. Par exemple, ce calcul est correct en SQL : 1 / 3 = 0 Si vous mettez à jour une RDBMS qui résout les divisions entier/entier en un quotient de type nombre à virgule flottante (float), vous devrez modifier les expressions affectées, pour utiliser un nombre à virgule flottante ou un type numérique proportionné pour le dividende, le diviseur ou les deux. Par exemple, le calcul ci-dessus pourrait être modifié ainsi afin de produire un résultat différent de 0 : 1.000 / 3 = 0.333 Expressions impliquants NULL En SQL, NULL n’est pas une valeur. C’est une condition ou un état d’un item « donnée » dans lequel sa valeur est inconnue. Puisque la valeur est inconnue, null ne peut se comporter comme une valeur. Lorsque vous tentez d’effectuer de l’arithmétique avec null, ou impliquer null avec des valeurs dans d’autres expressions, le résultat de l’opération sera toujours NULL. Ce n’est pas zéro ou vide ou une chaîne vide et ne se comporte pas comme aucune de ces valeurs. Ainsi, voici quelques exemples du type de surprises que vous obtiendrez si vous tentez d’effectuer des calculs ou comparaison avec NULL : 1 + 2 + 3 + NULL = NULL if (a = b) then MyVariable = 'Equal' else MyVariable = 'Not equal'; retournera ‘Not equal’si les deux variables a et b sont null. if (a <> b) then MyVariable = 'Not equal' else MyVariable = 'Equal'; Retournera aussi ‘Not equal’si les deux variables a et b sont null. FirstName ||' ' || LastName retournera NULL si l’un ou l’autre FirstName ou LastName est NULL. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 15 Guide de départ pour Firebird } Autres choses intéressantes à connaître Copie de sauvegarde (Backup) Firebird vient avec son propre utilitaire pour sauvegarder ou restaurer vos bases de données. Son nom est gbak et peut être trouvé dans le répertoire ./bin de votre installation Firebird. Les bases de données Firebird peuvent être sauvegardées pendant que les utilisateurs sont connectés au système et effectue leur travaux normaux. La sauvegarde sera prise à partir d’une image de l’état de la base de données lorsque la sauvegarde commence. Des sauvegardes régulières ainsi que des restaurations occasionnelles à l’aide de gbak devraient être une partie préprogrammée de vos activités de gestion de bases de données. N’utilisez pas d’utilitaires de sauvegarde propriétaires externes ou des utilitaires de copie de fichiers comme par exemple Winzip, tar, copy, xcopy, etc… , sur une base de données qui est en cours d’utilisation. Non seulement la sauvegarde sera peu fiable, mais le blocage disque utilisé par cet utilitaire peu endommager une base de données en cours utilisation. Étudiez l’avertissement dans la prochaine section à propos de l’activité d’une base de données pendant des restaurations! Comment endommager une base de données 1. Modifier les tables de métadonnées vous-même Firebird stock et maintient toutes les métadonnées de ses propres objets ainsi que ceux que vous définissez dans une base de données Firebird! Plus précisément, il stock ceux-ci en relations (tables) directement dans la base de données elle-même. Les identifiants pour les tables système, leurs colonnes ainsi que plusieurs autres types d’objets système commencent avec les caractères ‘RDB$’. Puisqu'ils sont des objets de base de données ordinaires, ils peuvent être interrogés et manipulés comme les objets que vous définissez. Cependant, parce que vous pouvez ne veut pas nécessairement dire vous devriez. Le moteur Firebird met en application un haut niveau de sousensembles du SQL (DDL) dans le but de définir et d’opérer sur les objets métadonnées, typiquement via les commandes CREATE, ALTER et DROP. Il ne peut être recommandé trop fortement que vous utilisiez DDL (pas d’opérations directes sur les tables système) chaque fois que vous avez besoin de modifier ou d’enlever des métadonnées. Évitez les trucs et pirouettes (hot fix) jusqu'à ce que vos compétences au niveau du SQL et votre connaissance du moteur Firebird deviennent très avancées. 2. Désactiver les écritures forcées (forced writes) sous Windows Firebird est installé avec le paramètre « Forced Writes » (écritures synchrones) activé par défaut. Les nouvelles données ou modifications sont immédiatement écrites sur le disque dès leur signalement. Il est possible de configurer une base de données pour qu’elle utilise l’écriture de données asynchrone, ce qui permet de garder en mémoire cache les nouvelles données ou modifications. La mémoire cache est vidée périodiquement sur le disque par le sous-système d’entrée sortie du système d’exploitation (I/O subsystem). Le terme commun pour cette configuration est forced writes © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 16 Guide de départ pour Firebird } Autres choses intéressantes à connaître off (écritures forcées désactivées). Il peut être parfois intéressant d’y avoir recours afin d’améliorer les performances pendant de grandes opérations en lots. Le mot d’ordre ici est ne désactivez pas les écritures forcées sur un serveur Windows. Il a été observé que les plates-formes Windows serveur ne vident pas le cache (write cache) tant que le service Firebird n’est pas arrêté. À part une interruption de courant, il y a trop de choses qui peuvent mal fonctionner sur un serveur Windows. Si votre serveur Windows devait planté, le système d’entrée/sortie (I/O system) deviendrait hors de porté et le travail de vos utilisateurs sera perdu lors du processus de redémarrage. Windows 9x et ME ne supportent pas les écritures de données en différé. Désactiver les écritures forcées (forced writes) sur un serveur Linux Les serveurs Linux sont plus fiables pour exécuter une opération avec les écritures forcées désactivées temporairement. Ne les laissez pas désactivées une fois que votre opération en lot est terminée, à moins que vous ayez un système très robuste de protection de chute d’alimentation. 3. Restauration d’une sauvegarde sur une base de données en exécution Une des options de l’utilitaire gbak (gbak –r[estore]) vous permet de restaurer un fichier gbak par dessus une base de données existante. Il est possible pour ce type de restauration de s’effectuer sans avertissement pendant que les utilisateurs sont connectés à la base de données. Dans un tel cas, il est presque certain que le résultat sera l’endommagement de la base de données. Tenez compte que vous devrez concevoir vos outils d’administration ainsi que vos procédures pour prévenir toute possibilité pour tout utilisateur (y compris l’utilisateur SYSDBA) de restaurer votre base de données si des utilisateurs y sont connectés. Pour des instructions sur la commande gbak, référez-vous au chapitre 21, Database Backup and Restore (p. 390 dans le manuel Using Firebird). Pour des instructions à propos du blocage des accès aux utilisateurs, référez-vous au chapitre 14, Getting exclusive access to a database (p. 283 de Using Firebird) Si possible, il est recommandé de faire la restauration vers un autre endroit sur le disque en utilisant l’option gbak –c[reate] et de vérifier la base de données restaurée à l’aide de isql ou de votre outil d’administration préféré. Si la base de données restaurée est correcte, arrêtez le serveur Firebird. Ensuite, faites une copie de votre ancienne base de données, puis copiez le fichier restauré (ou les fichiers) par dessus les anciens. 4. Autoriser les utilisateurs à se connecter pendant une restauration Si vous ne bloquez pas l’accès aux utilisateurs pendant que vous effectuez une restauration à l’aide de gbak –r[estore] , les utilisateurs peuvent se connecter et tenter de faire certaines opérations sur les données. Dans un tel cas, la structure de la base de données deviendra endommagée. Où se référer ensuite? © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 17 Guide de départ pour Firebird } Où se référer ensuite? Comment obtenir de l’aide La communauté composée de personnes disposées à aider autour de Firebird remonte à plusieurs années avant que le code source de son ancêtre InterBase® 6, soit rendu ouvert (open source). Collectivement, la communauté Firebird a toutes les réponses! La communauté inclut même quelques personnes qui ont été impliquées dans ce projet depuis le début, lorsque ce n’était qu’un concept sur une planche à dessin dans une chambre de bain de Boston. Visitez le site officiel du projet Firebird à l’adresse http://firebird.sourceforge.net/ et adhérez aux listes d’assistance aux utilisateurs. Visitez le site d’informations de Firebird à l’adresse http://www.ibphoenix.com/ pour accéder à une vaste collection d’informations à propos de la façon de développer avec Firebird et comment utiliser Firebird. Obtenez le manuel Using Firebird et son volume compagnon The Firebird Reference Guide. Ces deux volumes sont inclus sur le cd-rom IBPhoenix en format électronique similaire à celuici. Ces deux volumes se référencent mutuellement. Lisez le manuel Firebird Reference Guide, Resources and References (ch. 10 p.399) pour une collection de ressources utiles à propos de Firebird, SQL et le développement d’applications de bases de données. Utiliser les livres de IBPhoenix Publications Les livres Using Firebird et The Firebird Reference Guide ont été conçus pour qu’ils soient facile d’utilisation et d’accès pendant vos travaux de développement. Un bouton en haut à droite de chaque page indiquera à Adobe Acrobat de commuter entre les deux volumes. Chaque page a aussi une barre de navigation avec des boutons pour vous apporter directement au listing index pour le caractère sélectionné. Tous les index ont un hyperlien à leur source. Si le lecteur configure l’affichage à une résolution de 125%, une page complète ainsi que le menu hypertexte sur le coté sera visible. Pour de plus amples informations à propos de la configuration de votre serveur et de votre réseau, référez-vous aux chapitres précédents du manuel Using Firebird. Le chapitre 7 est une référence consacrée au dépannage. Les chapitres suivants traitent des questions de conception, de langage et de développement, et fournit des instructions détaillées sur l’utilisation des outils en ligne de commandes. © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 18 Guide de départ pour Firebird } Le projet Firebird Le projet Firebird Les développeurs, concepteurs, testeurs, qui vous ont donné Firebird et plusieurs pilotes (drivers) sont membres du projet « Firebird Open Source » à SourceForge, cette extraordinaire communauté qui est la maison de milliers d’équipes de logiciels à code ouvert. L’adresse du projet Firebird est http://sourceforge.net/projects/firebird . Sur ce site, il y a l’arbre du code source (source code tree), le gestionnaire de bogues (bug tracker) et un nombre de fichiers techniques qui peuvent être téléchargés à plusieurs fins relativement au développement et au test du code. Les développeurs et testeurs du projet Firebird utilisent le forum (email list forum) [email protected] comme leur laboratoire virtuel pour communiquer entre eux à propos de leur travail, les améliorations, la correction de bogues et la production de nouvelles versions de Firebird. Toute personne qui est intéressée à observer l’évolution du projet, peuvent adhérer à ce forum. Cependant, les questions de support des utilisateurs ne sont pas les bienvenues dans ce forum. S.v.p., ne tentez pas d’envoyer vos questions de support dans ce forum! © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 19 Guide de départ pour Firebird } Index alphabétique Index alphabétique A Apostrophes dans les chaînes 14 Aide 18 B Bases de données se connecter à 9 employee.gdb 9 chemin d’accès 9 création à l’aide de isql 11 sur un cd-rom 3 en lecture seule 3 P Panneau de configuration Windows 5 Ping 4 C Copie de sauvegarde (Backup) 16 Concaténation de chaînes de caractères 14 CONNECT (commande) 10 Chemin d’accès 9 E Expressions impliquants NULL 15 F Firebird (le projet) 18 Forced Writes 16 M Mot de passe masterkey 8 par défaut 8 changer 8 N NULL 15 Nom d’utilisateur par défaut 8 SYSDBA 8 O Outils d’administration 9 Obtenir de l’aide 18 S Serveur (nom et chemin d’accès) 9 Symbole de délimitation 13 T Tables système 16 Top (utilitaire Linux) 7 V Vérification du serveur Firebird 4 G gbak 16 Guardian 5 I Installation «client seulement» 12 Identifiants doubles guillemets 14 Installation emplacements disque 1 sur disques 3 kits 1 scripts ou programmes 3 isql démarrage 11 © IBPHOENIX PUBLICATIONS 2002, 2003 GUIDE DE DÉPART POUR FIREBIRD 20