Mise en œuvre d’EDB (Enterprise DataBase) Postgres version 12.x
Installation et Configuration d'EDB Postgres sur Linux RHEL/CentOS/OL
Cet article fournit un guide pour effectuer une installation du logiciel de gestion de base de données EDB Postgres dans l'environnement Linux RHEL/CentOS/OL (RedHat Enterprise Linux/Community enterprise Operating System/Oracle Linux) :
- Introduction
- Pré-requis
- Installation du logiciel EDB Postgres Advanced Server
- Configuration du package d’installation
- Configuration de l'agent du service edb-pgagent-12
Introduction
EDB Postgres est une version consolidée du moteur de gestion de base de données PostgreSQL. C’est une plateforme de gestion de données de qualité professionnelle qui fournit une vraie compatibilité avec Oracle Database. L'installation des logiciels EDB sur Linux RHEL/CentOS/OL avec YUM et le gestionnaire de packages RPM nécessite la configuration du référentiel YUM pour EDB.
Site : https://www.enterprisedb.com/fr/
Pré-requis
Pour pouvoir installer les logiciels EDB Postgres sur Linux RHEL/CentOS/OL vous devez avoir un compte utilisateur sur le site EnterpriseDB et le référentiel YUM doit être configuré pour EDB. Consultez l'article EDB Postgres – Enregistrement & Référentiel YUM pour effectuer ces opérations.
Installation du logiciel EDB Postgres Advanced Server
Le guide d’installation officiel est accessible à cette adresse : https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/installation-getting-started/installation-guide-for-linux/12/toc.html
Installation de la version 12 de EDB Postgres
login as: root root@serveur's password: xxxxx
# yum install edb-as12-server
Un compte utilisateur Linux enterprisedb et un groupe enterprisedb ont été créés
Tant que la base de données n’a pas été initialisée, le directory data du user enterprisebd est vide.
Les composants du logiciel ont été installés dans /usr/edb/as12
Configuration du package d’installation
Les packages qui installent le composant serveur de base de données créent un fichier de configuration de service (sur les Linux version 6.x) ou un fichier unitaire (sur les Linux version 7.x) et des scripts de démarrage du service.
Création d'un cluster de bases de données et démarrage du service
La commande PostgreSQL initdb permet de créer le cluster de base de données ; lors de l'installation d'Advanced Server avec le package RPM, l'exécutable initdb a été installé dans /usr/edb/as12/bin. Vous devez configurer manuellement le service pour créer votre cluster en appelant initdb depuis le super user root.
Sur Linux 6.x
# service edb-as-12 initdb
Sur Linux 7.x
# export PGSETUP_INITDB_OPTIONS="-E UTF-8" # /usr/edb/as12/bin/edb-as-12-setup initdb
La base a été configurée :
Démarrage du serveur de base de données
Après avoir créé le cluster :
Sous Linux 6 utilisez la commande service pour démarrer, arrêter ou vérifier l’état du service :
# service edb-as-12 start
Vous pouvez vérifier également l’état du service depuis le directory /etc/init.d :
# cd /etc/init.d # ./edb-as-12 status
Pour activer le service de manière permanente utilisez la commande chkconfig :
# chkconfig --add edb-as-12
Sous Linux 7 utilisez systemctl pour démarrer, arrêter ou redémarrer le service :
# systemctl { start | stop | restart } edb-as-12
Vous pouvez activer les services EDB afin qu’ils démarrent automatiquement au lancement du système :
[root@ol77 ~]# systemctl list-unit-files --type service | grep edb edb-as-12.service disabled edb-pgagent-12.service disabled
# systemctl enable edb-as-12.service
Connexion à la base de données
Connexion depuis le user enterprisedb.
Enterprisedb est le « super-user » qui a été pré défini à l’installation d’une part au niveau du système d’exploitation, d’autre part dans la base de données edb qui est la base de données également définie par défaut. L’accès à la base de données sans avoir à entrer un mot de passe peut être effectué via le user enterprisedb :
# su - enterprisedb
$ edb-psql -d edb -U enterprisedb
edb-psql (12.2.3)
Saisissez « help » pour l'aide.
Connexion par défaut depuis le user système enterprisedb
# su - enterprisedb $ pwd /var/lib/edb $ cd as12/data/
Les méthodes de connexion sont définies dans le fichier pg_hba.conf.
Remarque : A chaque modification de ce fichier le serveur de base de données doit être relancé.
La méthode peer autorise la connexion à la base de données sans mot de passe mais uniquement depuis le user système enterprisedb
$ vi pg_hba.conf
... # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer ...
Connexion à la base de données edb en mode ligne de commandes avec l'utilitaire edb-psql (ou psql)
$ edb-psql -d edb -U enterprisedb edb-psql (12.2.3) Saisissez « help » pour l'aide. edb=#
Entrez quelques commandes EDB
Version du logiciel
edb=# select version(); version ------------------------------------------------------------------------------------------------------------- PostgreSQL 12.2 (EnterpriseDB Advanced Server 12.2.3) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 201 50623 (Red Hat 4.8.5-36), 64-bit (1 ligne)
Liste des bases de données
edb=# \l
Liste des schémas
edb=# \dnS
Configuration des connexions
La connexion par défaut sans mot de passe ne fonctionne que depuis le user Linux enterprisedb. Afin de pouvoir se connecter à la base de données depuis n'importe quel utilisateur du système il est nécessaire de modifier la méthode de connexion locale dans le fichier pg_hba.conf. Le fichier se situe dans le directory ~/as12/data du user enterprisedb de la base de données :
# su - enterprisedb $ pwd /var/lib/edb $ cd as12/data/
Remplacer la méthode peer par md5
$ vi pg_hba.conf
... # "local" is for Unix domain socket connections only # local all all peer # avec md5 la connexion depuis un autre user que enterprisedb fonctionne avec l'option -W local all all md5 ...
Modifier le mot de passe de enterprisedb
# su - enterprisedb $ edb-psql -d edb -U enterprisedb edb=# ALTER USER enterprisedb WITH PASSWORD 'secret'; ALTER ROLE edb=# \q $ exit
Relancer le serveur de base de données
Linux 6
# service edb-as-12 restart
Linux 7
# systemctl restart edb-as-12.service
Connexion depuis le user système root
# edb-psql -d edb -U enterprisedb -W Mot de passe : xxxxx edb-psql (12.2.3) Saisissez « help » pour l'aide. edb=# \q
Connexion depuis le user système enterprisedb
# su - enterprisedb $ edb-psql -d edb -U enterprisedb Mot de passe pour l'utilisateur enterprisedb : xxxxx psql (12.2.3) Saisissez « help » pour l'aide. edb=# \q -bash-4.2$
Configuration du fichier pg_hba.conf
Dans le fichier pg_hba.conf, les méthodes de connexion ont été configurées en md5 afin de pouvoir se connecter avec le mot de passe du user qui est défini dans la base de données
# su - enterprisedb $ pwd /var/lib/edb $ cd as12/data/ $ vi pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only # local all all peer
# avec md5 la connexion depuis un autre user que enterprisedb fonctionne avec l'option -W local all all md5 # IPv4 local connections: # host all all 127.0.0.1/0 ident map=edbas host all all 127.0.0.1/0 md5 host all all 10.0.2.15/0 md5
Remarque : Le fichier pg_ident.conf permet d'indiquer les correspondances pour les méthodes de type ident
$ vi pg_ident.conf
# MAPNAME SYSTEM-USERNAME PG-USERNAME edbas enterprisedb enterprisedb <-- pas utilisé
Configuration de l'agent du service edb-pgagent-12
Liste des services relatifs à EDB
Linux 6
# service --status-all | grep edb
Linux 7
# systemctl list-unit-files --type service | grep edb
Lancement du service edb-pgagent-12
# systemctl start edb-pgagent-12.service
Vérification du status au bout de 10 secondes :
# systemctl status edb-pgagent-12.service
Consultation du fichier log
# tail /var/log/edb/pgagent12/pgagent.log WARNING: Couldn't create the primary connection [Attempt #1]
L'agent semble ne pas être configuré dans la base de données. Le schéma pgagent doit exister et contenir les tables utilisées par l’agent.
Création du schéma pgagent et des tables de l'agent.
Le script pgagent.sql qui permet de créer ces objets dans la base de données se situe dans le directory : /usr/share/edb/pgagent12
# su – enterprisedb
$ cd /usr/share/edb/pgagent12
Exécution du script pgagent.sql
$ edb-psql -d edb -U enterprisedb -W Mot de passe : xxxxx edb-psql (12.2.3) Saisissez « help » pour l'aide. edb=# \i pgagent.sql
Vérification de l’existence du schéma pgagent
edb=# \dnS Liste des schémas Nom | Propriétaire --------------------+-------------- information_schema | enterprisedb pg_catalog | enterprisedb pg_temp_1 | enterprisedb pg_toast | enterprisedb pg_toast_temp_1 | enterprisedb pgagent | enterprisedb <--- public | enterprisedb sys | enterprisedb (8 lignes)
edb=# \q
$
Création du fichier de mot de passe du user enterprisedb ~/.pgpass
Le fichier .pgpass doit être créé dans le HOME directory du user linux enterprisedb. Ce fichier contiendra le mot de passe de connexion au super user de la base enterprisedb. Sur Unix/Linux les permissions doivent être définies à 0600 pour le fichier soit pris en compte. Le format du fichier est le suivant :
format: hostname:port:database:username:password
# su – enterprisedb $ vi ~/.pgpass
127.0.0.1:5444:edb:enterprisedb:secret
$ chmod 0600 ~/.pgpass
$ exit
#
Remarque : le numéro de port de enterprise EDB est 5444
Relancer l'agent
Linux 6.x
# cd /etc/init.d # ./edb-pgagent-12 start Starting edb-pgagent-12 [ OK ]
# ./edb-pgagent-12 status
Linux 7.x
# systemctl start edb-pgagent-12.service # systemctl status edb-pgagent-12.service