Affichage des articles dont le libellé est PostGreSQL. Afficher tous les articles
Affichage des articles dont le libellé est PostGreSQL. Afficher tous les articles

vendredi 30 septembre 2016

PostGreSQL - How to stop a query

Afficher les processus en cours


SELECT * from pg_stat_activity; 

 datid |   datname   |  pid  | usesysid | usename  |          application_name           | client_addr | client_hostname | client_port |         backend_start         |          xact_start           |          query_start          |         state_change          | waiting | state  |                                                      query
-------+-------------+-------+----------+----------+-------------------------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------
 12035 | postgres    | 21105 |    16384 | xxxxxxxx | pgAdmin III - Navigateur            | 127.0.0.1   |                 |       33104 | 2016-09-30 08:45:24.639032+02 |                               | 2016-09-30 08:45:32.628846+02 | 2016-09-30 08:45:32.629749+02 | f       | idle   | SELECT count(*) FROM pg_attribute WHERE attrelid = 'pg_catalog.pg_proc'::regclass AND attname = 'proargdefaults'



Stopper le processus concerné

  • Repérerer le pid de la requête à stopper
  • Utiliser la commande suivante :
SELECT pg_cancel_backend(pid of the postgres process);

dans notre exemple, c'est le processus 21105 qui doit être stoppé :
SELECT pg_cancel_backend(21105 );

Résultat :
 pg_cancel_backend
-------------------
 t
(1 ligne)




Have Fun !

lundi 20 juin 2016

Désactiver MySQL / PostGreSQL sur Debian

Il peut arriver d'avoir besoin de désactiver un serveur MySQL ou  PostGreSQL


pour cela, il suffit d'agir sur le démon qui contrôle le service

MySQL


Arrêter le serveur MySQL avec la commande classique :
root@----:~# /etc/init.d/mysql stop
[ ok ] Stopping MySQL database server: mysqld.


(ré)Activer ou désactiver un démon (avec sa configuration par défaut et ses niveaux d'exécution (avec sa configuration par défaut et ses niveaux d'exécution) :

root@----:~#  update-rc.d mysql disable [| enable]
update-rc.d: using dependency based boot sequencing
insserv: warning: current start runlevel(s) (empty) of script `mysql' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `mysql' overrides LSB defaults (0 1 6).


That's all !!

PostGreSQL

Arret du serveur PostGreSQL:

root@----:~# /etc/init.d/postgresql stop 

Désactivation du démon PostGreSQL :

root@----:~#  update-rc.d postgresql disable

Plus d'info sur le wiki Debian - Daemon

mercredi 23 septembre 2015

Mémo PostGreSQL-PostGis

PostgreSQL

 

Mémo des principales commandes PostgreSQL

 

 

Créer un utilisateur PostgreSQL

1- Création de l'utilisateur + attribution mdp

CREATE USER mon_utilisateur WITH ENCRYPTED PASSWORD 'UnMotDePasseQuiDéchire';

2- Autoriser l'user à se connecter à une base spécifique (existante)

GRANT CONNECT ON DATABASE LaBase TO mon_utilisateur;

3- Droits génériques : accès au schéma public

REVOKE ALL ON SCHEMA public FROM mon_utilisateur;
GRANT USAGE ON SCHEMA public TO mon_utilisateur;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mon_utilisateur;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO mon_utilisateur;
...

4- Ajuster les droits spécifiques d'un utilisateur

REVOKE ALL ON ALL TABLES IN SCHEMA mon_schéma FROM mon_utilisateur ;
GRANT SELECT ON ALL TABLES IN SCHEMA mon_schéma TO mon_utilisateur ;

En préparation :

Créer une base de données PostGresql
 

lundi 21 septembre 2015

PostGreSQL/PostGIS Broken Package - liblwgeom-2.1.7

Logo PostGIS
Retour d’expérience sur un problème de mise à jour PostGreSQL-9.3/PostGIS-2.1 sur debian.


Si vous êtes confronté à un problème avec la librairie liblwgeom-2.1.7 lors de la mise à jour de PostGreSQL(9.3)PostGIS(2.1) depuis le dépôt officiel, voici une solution rapide et efficace.


Attention, cette méthode impose l’arrêt de votre serveur de base de données.

Lors de la mise à jour de PostGreSQL (9.3) et PostGIS (2.1), c'est à dire des paquets :
liblwgeom-2.1.8 postgis postgis-doc postgresql-9.3-postgis-2.1 postgresql-9.3-postgis-scripts

vous pouvez être confronté à l'erreur suivante :
/var/cache/apt/archives/liblwgeom-2.1.8_2.1.8+dfsg-1.pgdg14.04+1_amd64.deb:
  trying to overwrite '/usr/lib/liblwgeom-2.1.8.so', which is also in
  package liblwgeom-2.1.7 2.1.8+dfsg-1~95.git18216c0.pgdg14.04+1

La librairie liblwgeom-2.1.8 ne peut être installée car la version précédente(2.1.7)ne peut être désinstallée.

Tenter de la désinstaller, n'est pas la meilleur solution à cause des dépendances :
# apt-get remove liblwgeom-2.1.7

Par contre, voici ce qui fonctionne :

# Arrêt du serveur 
service postgresql stop
 
#Suppression du paquet incriminé, sans prendre en compte des dépendances
dpkg -r liblwgeom-2.1.7
 
# Correction et poursuite de l'installation précédente
# Fix Broken Package 
apt-get -f install
 
# Restart du serveur 
service postgresql start

Tout est rentré dans l'ordre !

Origine de la solution : http://askubuntu.com/questions/675347/postgis-broken-package-unmet-dependencies-liblwgeom-2-1-8

mardi 24 avril 2012

Initialiser une base PostgreSQL/PostGIS

 

 

 

 

 

Prérequis

  • Une instance PostGreSQL fonctionnelle
  • Le cartouche PostGIS installé

Préparation de la base

su postgres
createdb mabase
createlang plpgsql mabase
psql -d mabase -f /path/to/postgresql/version/share/contrib/postgis.sql
psql -d mabase -f /path/to/postgresql/version/share/contrib/spatial_ref_sys.sql

Création des tables

psql mabase
CREATE TABLE test (id serial PRIMARY KEY,genre text);

Ajout de la colonne géométrique à la table - AddGeometryColumn()

Pour l'instant notre table est vide, nous allons lui ajouter une troisième colonne où seront stockées nos données géométriques.

Nous aurons recours pour cela à la fonction AddGeometryColumn() de PostGIS dont la synthaxe générale est :

AddGeometryColumn( Table, 
                    Colonne_Geometrique, 
                    SRID, 
                    Type_Geometrie, 
                    Dimension);

  • Table est le nom de la table à laquelle doit être ajoutée la colonne géométrique;
  • Colonne_Geometrique est le nom de la colonne géométrique;
  • Type_Geometrie est le le type de géométrie possible:
  • SRID est l'identifiant spatial de projection selon le système de projection choisi.
    A titre d'exemple pour le Lambert II Carto Etendu, srid=27852;
  • Dimension est la dimension des objets géométriques 2D ou 3D ou 4D;
Dans notre cas, nous saisirons :

SELECT AddGeometryColumn( 'test', 'geom', -1, 'GEOMETRY', 2 );
 
 
Avec cette requête, nous avons ajouté la Colonne géométrique geom à la Table 'test'.

Comme nous n'utilisons ici aucun système de projection référencé, nous restons donc dans le plan 2D orthonormal par défaut, nous précisons juste SRID=-1.

Le type de données géométriques (Type_Geometrie) que nous souhaitons enregistrer peut-être de n'importe quel type. Nous préciserons donc par défaut GEOMETRY.
Enfin, nous sommes en 2 Dimensions.

Note
Il aurait été tout à fait possible de créer la table test en faisant directement

CREATE TABLE test (id serial PRIMARY KEY,genre TEXT,geom GEOMETRY);

Mais il y aurait alors eu un perte concernant les méta-données sur les objets géométriques concernant le type, le srid, la dimension.
Il est donc préférable d'avoir recours à la fonction AddGeometryColumn() pour pouvoir tirer profit de ces métadonnées.