Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
PostgreSQL
Débuter
[modifier | modifier le wikicode]Utiliser l'utilisateur postgres pour faire les manipulation :
su - postgres
Connexion
[modifier | modifier le wikicode]Pour se connecter à une base, il faut 2 étape : se connecter à l'invite de commande postgreSQL puis se connecter à la base elle même :
$ psql dbName # connexion à l'invite postgreSQL, puis connexion à la base (ci-dessous)
postgres=# \c dbName
Remarques : les lignes commençant par > ou $ indiquent des commandes à exécuter dans le shell en tant que simple utilisateur. Celles commençants par # sont à exécuter en tant que super-utilisateur (root).
Remarques :
les lignes commençant par postgres=# indiquent des commandes à exécuter dans l'invite PostgreSQL (après avoir fait psql dbName).
Installation pour Pleade
[modifier | modifier le wikicode]Une fois connecté à l'utilisateur postgre, on créera les utilisateurs nécessaire et les bases liées.
Création de l'utilisateur
[modifier | modifier le wikicode]On créé deux utilisateurs :
- $projet-prod : un pour l'application de « production » ;
- $projet-recette et un pour l'application de « recettage » ;
createuser -P $projet-prod
createuser -P $projet-recette
On saisi le mot de passe et on donne le droit de créé des bases :
Saisir le mot de passe pour le nouveau rôle :
Le saisir de nouveau :
Le nouveau rôle est-il super-utilisateur ? (o/n) n
Le nouveau rôle est-il autorisé à créer des bases de données ? (o/n) o
Le nouveau rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n
Création de la base
[modifier | modifier le wikicode]En relations à nos utilisateurs, on créé une base pour l'application de « production » et une pour le « recettage ».
createdb -O $projet-prod db-prod
createdb -O $projet-recette db-recette
Configuration Pleade
[modifier | modifier le wikicode]Paramètres principaux : pleade-admin.properties
[modifier | modifier le wikicode]Une fois ces étapes terminé il faudra configurer Pleade de façon à ce l'application utilise la base PostgreSQL et non HSQL (par défaut). Pour cela référez-vous à la documentation paramètres Pleade, sections paramètre principaux et aux variables pleade.sdx-database, pleade.sdx-ead-repository, pleade.sdx-eac-repository.
Paramètres Base de donnée : cocoon.xconf
[modifier | modifier le wikicode]<jdbc name="db-conf-prod" logger="sdx.rdbms.pleade3">
<pool-controller min="5" max="100" />
<dburl>jdbc:postgresql://localhost/db-prod</dburl>
<!-- INFO (MP) : JDBC URL pour MySQL. La difficulté est de résoudre le
problème des pertes de connexion lorsque l'application montre une
inactivité de plus de 8 heures (valeur par défaut dans MySQL). Ici, on la
règle à 24 heures.
<dburl>jdbc:mysql://localhost/pleade3?autoReconnectForPools=true&sessionVariables=wait_timeout=86400;</dburl>-->
<user>ville-dole-prod</user>
<password>pg:/vd/pr0d</password>
</jdbc>
- <dburl> indique l'URL vers la base de données, le suffixe est donc le nom de celle-ci
- <user> et <password> indique respectivement l'utilisateur et le mot de passe postgreSQL
Commandes utiles
[modifier | modifier le wikicode]Lister toutes les bases
[modifier | modifier le wikicode]Remarques : possible limitation liée à l'utilisateur exécutant la commande.
Depuis un environnement shell :
psql -l
Depuis un environnement PostgreSQL :
postgres=# \l
Lister les tables
[modifier | modifier le wikicode]Depuis un environnement PostgreSQL :
\c dbName
\d
Supprimer toutes les tables
[modifier | modifier le wikicode]DROP TABLE module_eadeac_eac, module_eadeac_eac_docs;
DROP TABLE module_eadeac_ead;
DROP TABLE module_eadeac_ead_docs;
DROP TABLE module_eadeac_ead_oai;
DROP TABLE module_eadeac_mets, module_eadeac_mets_docs;
- d'arrêter la commande et tenter de supprimer les tables une à une;
- re-démarrer le serveur PostgreSQL et relancer la commande.
Type de données bytea sous forme XML
[modifier | modifier le wikicode]Voir les données de type bytea de la table « module_eadeac_ead_docs » sous forme de texte XML :
SELECT encode(data, 'escape') AS txt
FROM module_eadeac_ead_docs
WHERE id = 'frajlsm-pleade-test-01-fr_images-attachees';
Taille des Bases
[modifier | modifier le wikicode]Liste toutes les bases et affiche leur taille en Kb, Mb ou Gb.<ref name="size">How to find the PostgreSQL database size</ref>
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database;
Taille d'une table
[modifier | modifier le wikicode]Pour avoir la taille d'une table <ref>15 Advanced PostgreSQL Commands with Examples</ref> <ref name="size">How to find the PostgreSQL database size</ref>
SELECT pg_size_pretty(pg_relation_size('xyz'));
Export et Import
[modifier | modifier le wikicode]- les procédures de restauration dans la section Doc/Remonter une sauvegarde ;
- la tâche redmine: Import d'un dump de l'appli de recette dans celle de prod ;
- Gestion base de données postgreSQL
Exporter
[modifier | modifier le wikicode]De façon basique, on fera :
pg_dump dbname > dump-"$date".sql
Pour travailler proprement, on on compressera l'export avec gzip et on utlisera pg_dump pour l'export (respectivement pg_restore pour l'import) :
pg_dump --blobs --clean -U "$dbUser" "$dbName" | gzip > dump-"$date".sql.gz
Importer
[modifier | modifier le wikicode]psql dbname < dump.sql
Pour travailler proprement, on utlisera pg_restore et gunzip pour importer la table compressé :
gunzip -c dump.sql.gz | psql "$dbName" -U "$dbUser"
Remarques : pour plus d'informations, on consultera la page de la documentation officielle sur SQL dump.