PostgreSQL 16 marque une mise à jour importante dans le monde des systèmes de gestion de bases de données. Officiellement publié le 14 septembre 2023, PostgreSQL 16 introduit de nombreuses nouvelles fonctionnalités et améliorations, renforçant sa position de solution de base de données robuste et polyvalente pour les utilisateurs, les administrateurs et les développeurs.
Vous trouverez ci-dessous quelques-unes des principales fonctionnalités de PostgreSQL 16 :
- Améliorations de la parallélisation: PostgreSQL 16 permet la parallélisation des jointures de hachage FULL et OUTER internes à droite, améliorant considérablement les performances des requêtes.
- Améliorations de la réplication: Il introduit la capacité de réplication logique à partir de serveurs de secours et permet aux abonnés d'appliquer des transactions volumineuses en parallèle.
- Capacités de surveillance: L'ajout de la vue pg_stat_io permet une surveillance plus approfondie des statistiques d'E/S.
- Prise en charge SQL/JSON: Cette version introduit les constructeurs SQL/JSON et les fonctions d'identité, élargissant ainsi ses capacités de gestion des données.
- Performances de congélation sous vide: PostgreSQL 16 améliore les performances de la congélation sous vide, contribuant ainsi à une maintenance efficace des bases de données.
- Correspondance d'expressions régulières: La correspondance d'expression régulière pour les noms d'utilisateur et de base de données dans pg_hba.conf et les noms d'utilisateur dans pg_ident.conf améliore la sécurité et la flexibilité.
Passons maintenant aux procédures techniques et approfondissons le processus d'installation de PostgreSQL 16.
Conditions préalables à l'installation de PostgreSQL 16
Pour installer avec succès PostgreSQL 16 sur Ubuntu, assurez-vous de remplir les conditions suivantes :
Matériel recommandé et versions Ubuntu prises en charge
Composant | Exigence |
---|---|
Processeur | Processeur compatible de 1 gigahertz (GHz) ou plus rapide |
RAM | 2 Go ou plus |
Espace disque | 512 Mo de disque dur (espace disque supplémentaire requis pour les données ou les composants de support) |
Versions prises en charge | Ubuntu 24.04 (Noble), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focale) |
Exigences supplémentaires
Exigence | Description |
---|---|
Connexion Internet | Nécessaire pour télécharger PostgreSQL 16 et les futures mises à jour. |
Conventions des terminaux | Toutes les commandes du terminal doivent être exécutées en tant qu'utilisateur régulier avec sudo privilèges. |
Commandes CLI | Utilisez l'interface de ligne de commande (CLI) pour l'installation et la configuration. |
Importer le référentiel PostgreSQL APT
Mettre à jour Ubuntu avant l'installation de PostgreSQL 16
Commencez par vous assurer que votre système Ubuntu est à jour. Cette étape est cruciale pour maintenir la stabilité et la compatibilité du système :
sudo apt update
Ensuite, mettez à niveau tous les packages obsolètes :
sudo apt upgrade
Installer les packages initiaux pour PostgreSQL 16
Pour vous aider à installer le logiciel de base de données, installez les packages suivants :
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y
Ajouter le référentiel APT PostgreSQL 16
Tout d’abord, importez la clé GPG PostgreSQL. Il s'agit de garantir que les packages que vous êtes sur le point d'installer sont authentiques et inaltérés :
curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
Choisir le bon référentiel PostgreSQL 16
Il est maintenant temps de sélectionner le référentiel PostgreSQL 16 approprié à vos besoins.
Dépôt stable pour la production/usage général
Le référentiel stable est votre référence pour la plupart des utilisateurs, en particulier dans un environnement de production. Il est régulièrement mis à jour avec des versions stables et sécurisées :
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list
Dépôts d'instantanés ou de tests pour les développeurs
Considérez les référentiels d'instantanés ou de tests si vous êtes en phase de développement ou de test. N'oubliez pas, cependant, qu'ils ne sont pas destinés à une utilisation en production en raison de leur nature moins stable.
Référentiel d'instantanés pour des tests de pointe
Prenez les derniers instantanés ici :
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Référentiel de test pour les fonctionnalités les plus récentes
Pour tester les dernières fonctionnalités, cette commande vous configurera :
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list
Installer PostgreSQL 16 via les commandes du terminal
Actualiser la liste des sources de l'index des packages APT
Après avoir ajouté le référentiel PostgreSQL stable ou testé, il est important de mettre à jour la liste des sources de votre référentiel. Cette action garantit que votre système reconnaît le référentiel PostgreSQL nouvellement ajouté :
sudo apt update
Installez PostgreSQL 16 via la commande APT
Passons maintenant à l'installation de PostgreSQL 16. Cette commande installe à la fois le client et le serveur PostgreSQL :
sudo apt install postgresql-client-16 postgresql-16
Vérification de l'installation de PostgreSQL
Une fois l'installation terminée, il est crucial de confirmer que PostgreSQL est correctement installé et exécuté. Cette commande vérifie l'état du service PostgreSQL :
systemctl status postgresql
Activation de PostgreSQL 16
Si PostgreSQL n'est pas actif, utilisez cette commande pour démarrer le service PostgreSQL. Cela garantit également que PostgreSQL démarre automatiquement avec votre système :
sudo systemctl enable postgresql --now
Gestion du service PostgreSQL 16
Arrêt du serveur PostgreSQL 16
Pour arrêter temporairement le service PostgreSQL, peut-être pour des modifications de maintenance ou de configuration, utilisez cette commande :
sudo systemctl stop postgresql
Démarrage du serveur PostgreSQL 16
Lorsque vous êtes prêt à démarrer le service PostgreSQL, notamment après un arrêt ou une première installation, cette commande s'avère pratique :
sudo systemctl start postgresql
Redémarrage du serveur PostgreSQL 16
Dans les scénarios où vous avez modifié des configurations ou des mises à jour, un redémarrage est souvent nécessaire. Cette commande redémarre le service PostgreSQL, en appliquant toutes les nouvelles modifications :
sudo systemctl restart postgresql
Rechargement du serveur PostgreSQL 16
Pour recharger le service PostgreSQL sans perturber son fonctionnement, utilisez cette commande. C'est utile lorsque vous devez appliquer des modifications de configuration mineures :
sudo systemctl reload postgresql
Vérification de l'état de PostgreSQL 16
Pour vérifier l'état opérationnel du service PostgreSQL, notamment s'il est actif et fonctionne sans problème, utilisez :
systemctl status postgresql
Activation de PostgreSQL 16 au démarrage du système
Si PostgreSQL n'est pas configuré pour démarrer automatiquement, cette commande l'activera, garantissant qu'il est actif immédiatement et lors des démarrages suivants du système :
sudo systemctl enable postgresql --now
Exemples de commandes de base avec PostgreSQL 16
Accéder au compte utilisateur Postgres
Dans PostgreSQL, l'utilisateur « postgres » est un rôle de superutilisateur par défaut. Ce compte est essentiel pour exécuter les commandes d'administration. Pour passer à ce compte, utilisez :
sudo -i -u postgres
Une fois dans le compte, entrez dans l'interface de ligne de commande PostgreSQL :
psql
L'invite postgres=#
confirme votre connexion à l'environnement PostgreSQL. Pour quitter, tapez simplement exit
.
Accès rapide à PostgreSQL sans changement d'utilisateur
Pour des opérations rapides sans changer de compte utilisateur, accédez directement à PostgreSQL :
sudo -u postgres psql
Cette commande permet de gagner du temps pour les tâches de routine. Pour quitter cette interface, tapez exit
.
Création d'un nouveau rôle utilisateur PostgreSQL
La flexibilité de PostgreSQL permet aux superutilisateurs de créer des rôles d'utilisateur. Pour établir un nouveau rôle d'utilisateur, exécutez cette commande :
sudo su - postgres -c "createuser <username>"
Remplacer <username>
avec le nom d'utilisateur souhaité.
Lancement d'une nouvelle base de données PostgreSQL
Pour configurer une nouvelle base de données pour votre utilisateur :
sudo su - postgres -c "createdb <database_name>"
Remplacer <database_name>
avec le nom prévu pour votre base de données.
Attribution de privilèges utilisateur à une base de données
Attribuez en toute sécurité l'accès à la base de données :
sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;
Remplaçant <database_name>
et <username>
comme demandé. Terminez en tapant exit
.
Configurer le pare-feu UFW pour PostgreSQL 16
Installation et activation du pare-feu UFW
Assurez-vous que l'UFW (Uncomplicated Firewall) est installé et activé sur votre système. UFW simplifie la gestion du pare-feu et est essentiel pour sécuriser le trafic réseau :
sudo apt install ufw
sudo ufw enable
Configuration des règles UFW pour PostgreSQL 16
PostgreSQL communique sur le port 5432 par défaut. Il est nécessaire de configurer UFW pour autoriser le trafic sur ce port, en particulier lors de la connexion à partir d'emplacements distants.
Autoriser l'accès au sous-réseau
Pour autoriser l'accès à une plage d'adresses IP au sein d'un sous-réseau, utilisez cette commande :
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
Remplacer 192.168.1.0/24
avec votre plage de sous-réseau spécifique.
Autoriser l'accès IP individuel
Pour accorder l'accès à PostgreSQL à partir d'une seule adresse IP, utilisez :
sudo ufw allow proto tcp from 192.168.1.0 to any port 5432
Modifier 192.168.1.0
à l'adresse IP que vous souhaitez autoriser.
Ce ne sont que des exemples de base. Vous devriez envisager de verrouiller autant que possible toute base de données publique à long terme.
Configurer PostgreSQL 16
Activer l'accès à distance dans PostgreSQL 16
Configurer PostgreSQL pour accepter les connexions distantes implique d'ajuster l'adresse d'écoute à partir de l'interface locale par défaut.
Modification de la configuration pour l'accès à distance
Accédez au fichier de configuration PostgreSQL :
sudo nano /etc/postgresql/16/main/postgresql.conf
Dans la section « Paramètres de connexion », modifiez listen_addresses = 'localhost'
à vos besoins spécifiques :
- Remplacez « localhost » par l'adresse IP souhaitée pour une seule IP.
- Pour autoriser les connexions sur toutes les interfaces, utilisez
listen_addresses = '*'
.
Après avoir apporté des modifications, enregistrez avec CTRL+O et quittez avec CTRL+X. Ensuite, redémarrez PostgreSQL :
sudo systemctl restart postgresql
Vérifiez les modifications avec :
ss -nlt | grep 5432
Dans la sortie, vous devriez voir le port 5432 actif.
Configuration de pg_hba.conf pour une sécurité améliorée
Modifier le pg_hba.conf
fichier pour un contrôle d’accès affiné :
sudo nano /etc/postgresql/16/main/pg_hba.conf
Personnalisation de l'accès des utilisateurs et des bases de données
Dans pg_hba.conf
, vous pouvez spécifier quels utilisateurs et bases de données peuvent se connecter, ainsi qu'à partir de quelles adresses. Voici quelques configurations courantes :
- Accès spécifique à l'utilisateur : Remplacez « tous » par un nom d'utilisateur spécifique pour restreindre l'accès à cet utilisateur uniquement.
- Accès spécifique à la base de données: Spécifiez une base de données particulière au lieu d'autoriser l'accès à toutes les bases de données.
- Restrictions d'adresse: Définissez des adresses ou des plages IP spécifiques (par exemple,
192.168.1.0/24
) pour limiter l'origine des connexions.
Choisir les méthodes d'authentification
PostgreSQL prend en charge diverses méthodes d'authentification :
- MD5: Nécessite un mot de passe et le crypte avec MD5.
- Mot de passe: utilise des mots de passe en texte brut (moins sécurisés, non recommandés pour la production).
- Pair : repose sur l'identité de l'utilisateur au niveau du système d'exploitation (commune pour les connexions locales).
- Identifier: Semblable à « pair », généralement utilisé pour les connexions réseau.
- SCRAM-SHA-256: Une méthode plus sécurisée, recommandée plutôt que MD5 ou mot de passe.
Optimisation des performances dans postgresql.conf
Pour optimiser les performances, tenez compte de ces paramètres dans postgresql.conf
:
- tampons_partagés: Ajuste la quantité de mémoire utilisée par PostgreSQL pour les tampons de mémoire partagée.
- travail_mem: Définit la mémoire utilisée pour les opérations de tri et de hachage internes.
- max_connections: contrôle le nombre maximum de connexions simultanées à la base de données.
Surveillance et diagnostic
Activez la journalisation détaillée pour obtenir des informations sur les performances et les problèmes de la base de données :
- journal_statement: défini sur « all » pour enregistrer chaque instruction SQL exécutée.
- durée_journal: Lorsqu'il est activé, enregistre la durée de chaque instruction SQL terminée.
Conclusion
Nous venons de parcourir un guide complet sur la configuration de PostgreSQL 16 sur Ubuntu, couvrant tout, depuis l'installation et la configuration de l'accès à distance jusqu'au renforcement de la sécurité avec les règles de pare-feu. N'oubliez pas que même s'il est formidable d'avoir PostgreSQL opérationnel, la véritable clé réside dans la maintenance régulière et les contrôles de sécurité.
Liens utiles
Voici quelques liens utiles liés à l'installation de PostgreSQL 16 sur Ubuntu Linux :
- Notes de version de PostgreSQL 16: Lisez les notes de version de PostgreSQL 16 pour en savoir plus sur les nouvelles fonctionnalités, améliorations et corrections de bogues.
- Référentiel GitHub PostgreSQL: Visitez le référentiel officiel PostgreSQL GitHub pour accéder au code source, signaler les problèmes et contribuer au développement.
- Documentation PostgreSQL: accédez à la documentation complète de PostgreSQL pour obtenir des guides détaillés d'installation, de configuration et d'utilisation.
- Communauté PostgreSQL: Rejoignez la communauté PostgreSQL pour vous connecter avec d'autres utilisateurs, participer à des discussions et obtenir de l'aide.