
|
Aperçu rapide |
|
|
Catalogue |
Système |
|
Catégorie |
Appliances de base de données |
|
Volumes d'utilisateur |
Oui |
|
Min. mémoire |
160 Mo |
|
SE |
Linux |
|
Contraintes |
non |
|
Questions/commentaires |
|
Important : PGSQL n'est pas disponible dans CA AppLogic 2.8 et ses versions ultérieures, utilisez plutôt PGSQL64 à la place.
PGSQL64 est une appliance de base de données basée sur le moteur de base de données PostgreSQL (http://www.mysql.org). Elle permet d'ajouter facilement une base de données quelle que soit l'application. PGSQL64 est une appliance de base de données de style entreprise utilisant de nombreuses fonctionnalités que les appliances MYSQLx ne prennent actuellement pas en charge. Parmi ces fonctionnalités, citons les procédures stockées, les déclencheurs, les vues et les types de données définis par l'utilisateur.
PGSQL64 stocke la base de données sur un volume défini par l'application que vous pouvez configurer sur chaque instance PGSQ64L. PGSQL64 crée éventuellement une base de données vide lorsqu'elle démarre sur un volume vide. Vous ne pouvez pas partager le volume de base de données de PGSQL64 entre plusieurs instances PGSQL (un volume de base de données par instance PGSQL).
Les clients PGSQL64 accèdent à la base de données configurée à l'aide du terminal in. Les requêtes de base de données sont traitées et effectuées via le même terminal. PGSQL64 permet aux utilisateurs Postgres valides d'accéder à la base de données via le terminal in. (L'appliance a un rôle de superutilisateur préconfiguré : la norme "postgres"). Vous pouvez configurer PGSQL64 avec le nombre maximum de connexions simultanées prises en charge par le terminal in.
PGSQL64 peut également assurer la maintenance d'un journal de base de données accessible via le terminal log. Le journal permet d'effectuer un suivi des informations de base de données de suivi et de consigner les erreurs. Vous pouvez configurer le chemin d'accès au journal, son nom, sa durée de conservation ainsi que son contenu. Par ailleurs, diverses statistiques de base de données et informations de débogage peuvent également être activées pour aider à établir le profil des modèles d'accès à la base de données et à diagnostiquer des problèmes ou des erreurs.
PGSQL64 est généralement utilisé pour des applications de base de données Web universelles (petites bases de données avec un grand nombre d'utilisateurs qui exécutent des requêtes simples) ou des bases de données décisionnelles (grandes bases de données avec un petit nombre d'utilisateurs qui exécutent des requêtes complexes).
|
Nom |
Dernière version |
SE |
PostgreSQL |
Commentaires |
|
PGSQL64 |
2.0.2-1 |
CentOS 5.5 |
9.0.1 |
|
|
Ressource |
Minimum |
Maximum |
Valeur par défaut |
|
UC |
0.1 |
16 |
0.4 |
|
Mémoire |
160 Mo |
32 Go |
512 Mo |
|
Bande passante |
1 Mbit/s |
2 Gbits/s |
250 Mbits/s |
Remarque : La mémoire devrait être augmentée en fonction de deux facteurs principaux : le nombre d'utilisateurs simultanés et la taille de la base de données. Généralement, PGSQL peut prendre en charge environ 80 utilisateurs simultanés par 128 Mo de mémoire. Plus la base de données est volumineuse, plus PGSQL devrait disposer de mémoire. Par exemple, PGSQL devrait être configuré avec au minimum 1 Go de mémoire pour une base de données de 10 Go. Plus d'1 Go pour de meilleures performances.
|
Nom |
Dir. |
Protocole |
Description |
|
in |
in |
PGSQL |
Reçoit les requêtes de base de données PostgreSQL des clients. |
|
log |
sortie |
CIFS |
Permet d'accéder à un système de fichiers distant pour stocker des journaux d'erreurs. Si ce terminal n'est pas utilisé, il peut rester déconnecté. |
|
MON |
sortie |
CCE |
Envoie des statistiques de performances et d'utilisation des ressources. Ce terminal peut rester déconnecté. |
L'interface par défaut est activée. Elle est destinée au diagnostic et au dépannage (via SSH). Les versions futures de cette appliance peuvent désactiver l'accès SSH.
|
Volume |
Description |
|
données |
Volume pour le stockage des données de la base de données. |
Important : Le volume de données doit être exclusivement dédié à l'instance de PGSQL (il ne peut pas être partagé avec d'autres appliances).
Remarque : Aucune des propriétés PGSQL n'est sensible à la casse à l'exception des noms de fichier et des chemins d'accès.
|
Nom de propriété |
Type |
Description |
|
auto_create |
Chaîne |
Indique si la base de données doit être créée lorsqu'elle n'existe pas. Valeurs possibles : yes pour la créer et no pour empêcher sa création automatique (pour éviter tout écrasement accidentel en cas de volumes endommagés). Si cette propriété est définie sur no et qu'aucune base de données n'existe sur le volume d'utilisateur, l'appliance démarre en mode Maintenance (le démon PostgreSQL ne démarre pas). |
|
read_only |
Chaîne |
La base de données accessible via le terminal in est en lecture seule. Les valeurs possibles sont yes pour la lecture seule et no pour la lecture/l'écriture. Cette propriété est utilisée par PGSQL uniquement pour optimiser les performances pour la base de données. (Les bases de données en lecture seule n'ont pas besoin du nettoyage de la mémoire, etc.). |
|
max_connections |
Nombre entier |
Le nombre maximum de connexions à la base de données actives simultanément que PGSQL doit gérer par le biais du terminal in. PGSQL utilise cette valeur dans des calculs avancés pour la gestion de mémoire. En général, PGSQL a besoin de 128 Go de mémoire pour 80 connexions simultanées. Une fois la limite de connexion atteinte, PGSQL refuse toutes les connexions ultérieures. |
|
query_complexity |
Chaîne |
Cette propriété spécifie la complexité générale des requêtes que les utilisateurs doivent exécuter sur la base de données utilisée avec PGSQL. Les valeurs possibles sont : |
|
sync_on_write |
Chaîne |
Indique si PGSQL doit patienter pendant que les mises à jour la de base de données sont physiquement écrites sur le disque (surtout lors de la validation des transactions). Les valeurs possibles sont yes pour patienter pendant les mises à jour du disque physique ou no pour mettre en cache les mises à jour et les écrire ultérieurement, améliorant ainsi les performances (écriture retardée). La définition de cette propriété sur yes peut affecter les performances, mais veille également à ce que la base de données soit restaurée dans un état cohérent après qu'un arrêt brutal ou un échec de l'appliance. Notez que si la base de données est spécifiée en lecture seule, PGSQL désactive automatiquement cette fonctionnalité et ignore la valeur de cette propriété. |
|
timezone |
Chaîne |
Spécifie le fuseau horaire utilisé dans l'appliance. Si cette propriété est vide, le fuseau horaire reste inchangé. Une liste des fuseaux horaires pris en charge est disponible ici. Valeur par défaut : vide |
|
Nom de propriété |
Type |
Description |
|
log_filename |
Chaîne |
Nom du fichier journal de la base de données relatif au système de fichiers accessible via le terminal de journal (par exemple, postgresql.log pour /mnt/log/postgresql.log, ou /pgsql_logs/postgresql.log pour /mnt/log/pgsql_logs/postgresql.log). Si aucun nom n'est spécifié, la journalisation est désactivée. %-escapes peut être spécifié dans le nom du fichier journal (sur la base du modèle Linux strftime. Pour obtenir une liste complète des propriétés %-escapes, reportez-vous à la section Référence à la fin de cette rubrique). Si aucune propriété %-escapes n'est utilisée, PGSQL ajoute l'heure de la création du fichier journal. La valeur par défaut est (vide). |
|
log_age |
Nombre entier |
Durée de vie maximum du fichier journal, spécifiée en minutes. Une fois le nombre de minutes écoulé, un nouveau fichier journal est créé à l'aide de la propriété log_filename. PGSQL tronque le fichier journal s'il existe déjà ; cela permet la rotation des journaux. Définissez la valeur sur 0 pour désactiver la création de nouveaux fichiers journaux basés sur l'heure. |
|
log_size |
Nombre entier |
Taille maximum d'un fichier journal spécifiée en mégaoctets. Lorsque le fichier journal atteint la taille spécifiée, un nouveau fichier journal est créé à l'aide de la propriété log_filename. PGSQL tronque le fichier journal s'il existe déjà ; cela permet la rotation des journaux. Définissez la valeur sur 0 pour désactiver la création de nouveaux fichiers journaux basés sur la taille. |
|
log_level |
Chaîne |
Niveau de journalisation de la base de données. Les valeurs possibles sont : |
|
log_cmd_stats |
Chaîne |
Indique s'il convient de journaliser les statistiques lors de l'exécution des commandes SQL dans PGSQL (avec l'heure de début de l'exécution des commandes). Les valeurs possibles sont yes pour activer la journalisation et no pour la désactiver. Vous pouvez accéder aux statistiques à l'aide de la vue système pg_stat_activity dans PGSQL. Si elle est définie sur no, les compteurs personnalisés de PGSQL sont désactivés. |
Important : L'appliance PGSQL ne parvient pas à démarrer si la journalisation est activée et le terminal de journal n'est pas connecté.
L'appliance PGSQL signale les compteurs personnalisés suivants via le terminal mon, pour autant que la propriété log_cmd_stats soit définie sur yes. Ces compteurs appartiennent au groupe de compteurs PostgreSQL :
|
Nom du compteur |
Description |
|
Processus actifs |
Nombre de processus de serveur actifs pour le serveur |
|
Transactions validées |
Transactions validées sur le serveur |
|
Restauré |
Transactions restaurées sur le serveur |
|
DB Block fetch requests |
Nombre de requêtes de récupérations de blocs de disque pour le serveur |
|
DB Block fetch hits |
Nombre de requêtes de récupérations de blocs de disque trouvées dans le cache pour le serveur |
En cas d'échec de démarrage de l'appliance, les erreurs suivantes peuvent être consignées dans le journal système :
|
Message d'erreur |
Description |
|
ERROR: Failed to update the postgres.conf configuration file, possibly due to low disk space on the boot volume. |
PGSQL n'a pas pu mettre à jour le fichier de configuration postgres.conf. Cause probable : Le volume de démarrage est complet, problème d'autorisation. |
|
ERROR: Unexpected internal error: missing postgres.conf.tmpl file, please contact CA Technical Support |
Le fichier modèle postgresql.conf.tmpl n'existe pas ou ne peut pas être lu. Contactez le support CA |
|
ERROR: Unable to access the specified log file; please check that the log_filename property contains the proper path and that the log terminal is connected. |
PGSQL n'est pas parvenu à déterminer le répertoire de fichiers journaux. Cause probable : La valeur n'est pas valide. |
|
ERROR: Unable to write into the specified log file; please check that the specified log directory is writable. |
Impossible d'écrire le fichier journal de PostgreSQL. |
|
ERROR: Unknown log level has been specified for the log_level property |
La valeur log_level spécifiée n'est pas valide. Les valeurs valides sont none, error, warn, notice et debug. |
|
ERROR: log_cmd_stats cannot be enabled since the database is specified as read-only |
log_cmd_stats requiert que la base de données soit en lecture-écriture. |
|
ERROR: Failed to mount the user's database volume. Vérifiez que le volume a été formaté avec un système de fichiers valide. |
PGSQL n'est pas parvenu à monter le volume spécifié avec les fichiers de base de données. Vérifiez que le volume existe et st formaté avec un système de fichiers ext3. |
|
ERROR: PGSQL started in maintenance mode due to unrecognized PostgreSQL database on supplied database volume |
Le volume de base de données spécifié ne contient pas de base de données valide et auto_create est défini sur no. L'appliance démarrera en mode maintenance |
|
ERROR: Failed to create a new database on the supplied database volume. Reportez-vous au fichier /var/log/appliance/log de PGSQL pour plus d'informations sur l'échec. |
PGSQL n'est pas parvenu à vider le répertoire de base de données ou à en créer un nouveau. |
|
ERROR: Failed to start the PostgreSQL server. Please see the /var/log/appliance/log log file in PGSQL for more details on the failure |
PGSQL n'est pas parvenu à lancer le serveur PostgreSQL. Pour plus d'informations, reportez-vous aux fichiers /var/log/pgstartup.log et /var/log/appliance/log. |
|
ERROR: log_filename is specified but log terminal is not connected. |
La propriété log_filename n'est pas vide, mais le terminal log de PGSQL n'est pas connecté. |
|
ERROR: log_filename is specified but log device is not mounted. |
La propriété log_filename n'est pas vide, mais PGSQL n'est pas parvenu à accéder au périphérique de journalisation. La cause probable est que PGSQL a été démarré avant NAS. |
En cas d'erreurs critiques nécessitant l'attention de l'utilisateur, PGSQL journalise des messages dans le tableau de bord de la grille comme suit :
|
Message |
Description |
|
Data volume has less than 5% of free disk space |
L'espace disque disponible sur le volume de donnée de l'appliance PGSQL est inférieur à 5 %. Il est conseillé d'augmenter la taille du volume. |
|
Data volume has less than 1% of free disk space |
L'espace disponible sur le volume de données de l'appliance PGSQL est inférieur à 1 %. Faites attention car vous risquez de perdre des données. |
Ces messages ne sont consignés qu'une seule fois lorsque la quantité d'espace libre sur le disque passe sous le seuil défini.
Les performances de PGSQL sont considérablement influencées par les valeurs de propriétés sync_on_write, log_filename et log_cmd_stats. Pour obtenir les meilleures performances possibles, désactivez fsync, la journalisation et les statistiques (sync_on_write=no, log_filename="" log_cmd_stats=no). Le tableau ci-dessous contient des exemples de résultats de test pgbench (exprimés en tps - transactions par seconde) lorsque ces fonctionnalités sont activées et désactivées. pgbench est un utilitaire fourni avec PostgreSQL qui permet de mesurer les performances de la base de données.
|
Configuration de test pgbench |
activé |
désactivé |
|
1 client, 100 requêtes |
40-70 tps |
650 tps |
|
10 clients, 100 requêtes |
60-90 tps |
1100 tps |
|
100 clients, 100 requêtes |
70-110 tps |
1200 tps |
Le diagramme suivant affiche une utilisation standard de l'appliance PGSQL dans une application Web à deux niveaux adaptée à de nombreux utilisateurs exécutant des requêtes simples :

Appliances en cours d'utilisation :
Les requêtes client arrivent sur la passerelle utilisateur. La passerelle envoie les requêtes au serveur Web, qui les traite. Lorsque le script (par exemple, Perl ou PHP) sur IIS doit accéder à des données permanentes, il utilise l'appliance dbase via le terminal db.
Dans cet exemple, la base de données utilisée avec dbase n'est pas en lecture seule et de nombreux utilisateurs peuvent y accéder via srv pour exécuter des requêtes simples. L'appliance dbase proprement dite est configurée pour utiliser 256 Mo de mémoire. Par ailleurs, la base de données ne conserve aucun fichier journal d'erreurs de base de données (le terminal de journal n'est pas connecté).
Exemple de configuration de propriété :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
auto_create |
Oui |
Crée la base de données si le volume de données est vide. |
|
read_only |
non |
La base de données n'est pas en lecture seule. Elle peut être modifiée. |
|
query_complexity |
Simple |
Les utilisateurs exécutent généralement des requêtes simples. |
|
sync_on_write |
Oui |
Attend que les mises à jour de base de données soient physiquement écrites sur le disque. |
Remarque : Le volume de données doit également être configuré sur dbase et le volume de contenu doit être configuré sur web. Pour créer des volumes virtuels d'application pouvant être utilisés ici, reportez-vous au Manuel de l'utilisateur de la grille.
Le diagramme suivant affiche une utilisation standard de l'appliance PGSQL dans une application Web à deux niveaux dans laquelle la base de données est utilisée pour partager l'état et les données entre plusieurs serveurs Web à charge équilibrée (destinée à de nombreux utilisateurs exécutant des requêtes simples). Par ailleurs, dans cet exemple, il existe une entrée distincte pour la maintenance, via laquelle un administrateur peut se connecter et accéder à la base de données à des fins de maintenance, ainsi qu'une autre entrée via laquelle un administrateur peut se connecter et afficher le journal d'erreurs PostgreSQL.

Appliances en cours d'utilisation :
Les requêtes client arrivent sur la passerelle utilisateur. Cette dernière envoie les requêtes à l'équilibreur de charge Web, qui les transmet à un des serveurs Web (srv1 ou srv2 ). Lorsque des scripts (par exemple, Perl ou PHP) sur les serveurs Web doivent accéder à des données permanentes, ils utilisent l'appliance SQL via leurs terminaux db.
La base de données dbase écrit son journal d'erreurs dans l'appliance de journaux via le terminal de journal. Un administrateur peut, par ailleurs, se connecter à l'appliance de journaux via la passerelle de journal et afficher les fichiers journaux d'erreurs de base de données (ainsi que les fichiers journaux du serveur Web).
En outre, un administrateur peut se connecter via SSH au serveur admin, par le biais de la passerelle maint. A partir du serveur admin, l'administrateur peut accéder à la base de données dbase pour consulter des statistiques ou modifier le schéma de base de données. Le serveur admin peut accéder à Internet via la passerelle gway pour, par exemple, télécharger une version plus récente des bibliothèques ou le schéma de base de données.
Dans cet exemple, la base de données utilisée avec dbase n'est pas en lecture seule et de nombreux utilisateurs peuvent y accéder via les serveurs Web pour exécuter des requêtes simples. L'appliance dbase proprement dite est configurée pour utiliser 256 Mo de mémoire. La base de données est également configurée pour conserver les fichiers journaux pendant une semaine, à raison de un par jour (après chaque semaine, les fichiers journaux sont écrasés).
Exemple de configuration de propriété :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
auto_create |
Oui |
Crée la base de données si le volume de données est vide. |
|
read_only |
non |
La base de données n'est pas en lecture seule. Elle peut être modifiée. |
|
query_complexity |
Simple |
Les utilisateurs exécutent généralement des requêtes simples. |
|
sync_on_write |
Oui |
Attend que les mises à jour de base de données soient physiquement écrites sur le disque. |
|
log_filename |
dblog.%a |
Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données de journaux - un par jour. |
|
log_age |
1440 |
Chaque fichier journal correspond à un jour, par exemple dblog.Mon. |
|
log_level |
error |
Niveau de journalisation des erreurs. |
Remarques :
Le diagramme suivant affiche une utilisation standard de l'appliance PGSQL dans une application Web à deux niveaux implémentant un système de prise en charge de décision pour quelques utilisateurs exécutant des requêtes complexes sur une grande base de données d'une taille de plusieurs Go.

Appliances en cours d'utilisation :
Les requêtes client arrivent sur la passerelle utilisateur. La passerelle envoie les requêtes au serveur srv, qui les traite. Lorsque les scripts (par exemple, Perl ou PHP) sur srv doit accéder à des données permanentes, il utilise l'appliance dbase via le terminal db. L'appliance dbase est configurée pour stocker ses fichiers journaux dans le répertoire racine du partage fourni par les journaux.
Les administrateurs se connectent à la passerelle admin à l'aide d'un navigateur pour afficher les fichiers journaux PostgreSQL. La passerelle admin envoie les requêtes à l'appliance NAS de journaux.
Dans cet exemple, la base de données utilisée avec dbase n'est pas en lecture seule et les utilisateurs peuvent y accéder via srv en exécutant des requêtes complexes (requêtes volumineuses accédant à des millions de lignes). L'appliance dbase proprement dite est configurée pour utiliser 1536 Mo de mémoire. La base de données est également configurée pour conserver les fichiers journaux pendant une semaine, à raison de un par jour (après chaque semaine, les fichiers journaux sont écrasés).
Exemple de configuration de propriété :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
auto_create |
Oui |
Crée la base de données si le volume de données est vide. |
|
max_connections |
25 |
La base de données est limitée à 25 utilisateurs simultanés. |
|
read_only |
non |
La base de données n'est pas en lecture seule. Elle peut être modifiée. |
|
query_complexity |
complex |
Les utilisateurs exécutent généralement des requêtes complexes. |
|
sync_on_write |
Oui |
Attend que les mises à jour de base de données soient physiquement écrites sur le disque. |
|
log_filename |
dblog.%a |
Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données de journaux - un par jour. |
|
log_age |
1440 |
Chaque fichier journal correspond à un jour, par exemple dblog.Mon. |
|
log_level |
error |
Niveau de journalisation des erreurs. |
Remarque : Le volume de données doit également être configuré sur l'appliance dbase ainsi que sur l'appliance de journaux.
Une utilisation moins courante de l'appliance PGSQL est celle en tant qu'application Web à deux niveaux à l'aide d'une base de données en lecture seule. Il s'agit de la même que pour les exemples précédents d'applications simples si ce n'est que la base de données est en lecture seule (aucune modification n'est autorisée). Il est important de paramétrer PGSQL de façon à utiliser une base de données en lecture seule afin de désactiver diverses fonctionnalités PostgreSQL qui ne sont pas nécessaires pour les bases de données en lecture seule. Les performances seront ainsi améliorées (vidage automatique de la base de données, statistiques de modification de la base de données, etc.).
Exemple de configuration de propriété :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
auto_create |
non |
La base de données sur le volume de données doit déjà exister. |
|
read_only |
Oui |
La base de données est en lecture seule. Les modifications ne sont pas autorisées. |
|
query_complexity |
Simple |
Les utilisateurs exécutent généralement des requêtes simples. |
|
log_filename |
dblog.%a |
Nom de fichier journal d'erreurs qui doit être stocké sur le volume de données de journaux - un par jour. |
|
log_age |
1440 |
Chaque fichier journal correspond à un jour, par exemple dblog.Mon. |
|
log_level |
error |
Niveau de journalisation des erreurs. |
PGSQL présente des propriétés pour activer le débogage d'une base de données à l'aide du fichier journal paramétré (log_filename). Cette propriété est par exemple utile lorsque vous devez suivre des instructions SQL, voir la durée d'exécution des instructions SQL, voir pourquoi une instruction SQL échoue, etc. Les informations de débogage sont les suivantes :
Pour déboguer une base de données, les propriétés suivantes sont généralement configurées :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
log_level |
debug |
Niveau de journalisation de débogage. |
|
log_cmd_stats |
Oui |
Consigne les statistiques de commande SQL (délai, traitement, exécution, etc.). |
Les informations de débogage sont soit stockées dans le journal d'erreurs accessible via le terminal de journal ou sont disponibles via les vues de statistiques PostgreSQL : http://www.postgresql.org/docs/8.3/static/monitoring-stats.html.
Mise en garde :
Les logiciels Open Source tiers suivants sont utilisés en plus des logiciels disponibles sur la classe de base d'appliance (LUX64 est la classe de base de PGSQL64).
|
Logiciel |
Version |
Modifié |
Licence |
Commentaires |
|
libgcrypt |
1.4.4-5.el5 |
Non |
GPLv2 |
N/D |
|
libgpg-error |
1.4-2 |
Non |
GPLv2 |
N/D |
|
libxslt |
1.1.17-2.el5_2.2 |
Non |
GPLv2 |
N/D |
|
postgresql |
9.0.1-1PGDG |
Non |
BSD |
N/D |
|
postgresql-libs |
9.0.1-1PGDG |
Non |
BSD |
N/D |
|
postgresql-server |
9.0.1-1PGDG |
Non |
BSD |
N/D |
|
postgresql-test |
9.0.1-1PGDG |
Non |
BSD |
N/D |
|
samba-client |
3.0.28-1.el5_2.1 |
Non |
GPLv3 |
N/D |
|
samba-common |
3.0.28-1.el5_2.1 |
Non |
GPLv3 |
N/D |
| Copyright © 2012 CA. Tous droits réservés. |
|