Fonctionnalités et cas d'utilisation de PostgreSQL
PostgreSQL est un système de gestion de base de données relationnelle objet (SGBD) open source. Il s'agit d'un système avancé de gestion et d'analyse de bases de données qui est principalement utilisé pour les plateformes de commerce électronique, les transactions de paiement et diverses solutions d'entreposage de données. Il existe depuis plus de 30 ans et est régulièrement mis à jour chaque année, prend en charge diverses fonctions SQL telles que les déclencheurs, les types et fonctions définis par l'utilisateur, les sous-requêtes, etc.
PostgreSQL est l'une des bases de données open source les plus avancées au monde. Il convient à plusieurs cas d'utilisation de production et de développement. Il offre de nombreux avantages tels que l'amélioration des performances de partitionnement et de requête (en particulier sur les grands ensembles de données), des améliorations de l'arborescence B pour une utilisation optimale de l'espace, des statistiques multi-colonnes sur la valeur la plus courante (MCV), des expressions de table communes avec inlining de requête et contrôle de la somme de contrôle.
Quelques mots sur Ubuntu 20.04 sur DigitalOcean
Ubuntu est un système d'exploitation de bureau open source populaire. Ubuntu 20.04 inclut de nombreuses fonctionnalités de pointe, telles qu'un outil pour gérer les instantanés ZFS, une bosse majeure du noyau et des améliorations de sécurité. La plate-forme cloud DigitalOcean fournit une infrastructure robuste et une disponibilité mondiale pour développer, gérer et mettre à l'échelle des applications dans le cloud. Avec ses produits de calcul, de stockage, de bases de données et de mise en réseau, les développeurs peuvent créer des applications Web et mobiles, des services de streaming, des jeux, des solutions SaaS, etc. Offrant des fonctionnalités telles que le réseau privé partagé, les outils DevOps en un clic et les disques durs SSD, DigitalOcean est un choix flexible, sécurisé et simple pour les solutions stratégiques.
Ce didacticiel fournit des instructions détaillées sur l'installation de PostgreSQL sur DigitalOcean Ubuntu 20.04. Sans plus tarder, commençons !
|
Prérequis pour installer PostgreSQL
Avant de plonger dans l'installation réelle de PostgreSQL 12 sur DigitalOcean Ubuntu 20.04, vous devez vous assurer que votre système répond aux prérequis suivants.
- Le serveur doit disposer d'au moins un pare-feu UFW de base pour garantir que seules les connexions à certains services sont autorisées.
- Le système doit être mis à jour pour une nouvelle instance de serveur et redémarré. Pour ce faire, utilisez les commandes suivantes :
sudo apt update && sudo apt upgrade –y
sudo reboot
Installer PostgreSQL sur Ubuntu 20.04 DigitalOcean
Vous pouvez installer PostgreSQL 12 à l'aide des référentiels officiels/par défaut d'Ubuntu 20.04 à l'aide du système de gestionnaire de packages apt. Avant de faire cela, vous devriez déjà avoir actualisé l'index local des packages de votre serveur (voir les prérequis ci-dessus).
Le référentiel contient différents packages (y compris des modules complémentaires tiers) tels que :
- postgresql-client
- postgresql
- libpq-dev
- postgresql-server-dev
- paquets pgadmin
Installez ensuite le package PostgreSQL 12 complet avec le module postgresql-contrib qui fournit des utilitaires et des fonctionnalités supplémentaires. Cela peut être installé en exécutant la commande suivante :
sudo apt install postgresql postgresql-contrib –y
Démarrez ensuite le service PostgreSQL au redémarrage du système en exécutant la commande suivante :
sudo systemctl start postgresql
Pour démarrer automatiquement le service PostgreSQL au démarrage du système, exécutez :
sudo systemctl enable postgresql
Vérifiez que le service PostgreSQL fonctionne comme prévu en exécutant systemctl status postgresql :
sudo systemctl status postgresql
Cela devrait renvoyer l'état du service PostgreSQL et devrait s'afficher comme actif, comme dans la capture d'écran ci-dessous.
Personnalisation de l'initialisation de PostgreSQL
Après l'installation, un cluster de bases de données peut être créé à l'aide de la commande initdb. La commande initdb doit être exécutée depuis l'utilisateur de la base de données et non depuis l'utilisateur root. L'utilisateur root peut créer un répertoire vide qui peut être chown (commande de changement de propriétaire) par l'utilisateur postgres. Ce répertoire contiendra les données sous forme de modèle, qui sera copié par défaut dans toutes les bases de données. Depuis l'utilisateur postgres, la commande suivante peut être appelée avec l'option et le nom de répertoire appropriés.
initdb [option...] [ --pgdata | -D ] directory
La commande initdb peut être exécutée en tant qu'utilisateur authentifié avec les différents drapeaux pour créer un modèle de base de données dans un répertoire donné.
Vous trouverez ci-dessous une liste d'indicateurs spécifiques, comme indiqué dans la capture d'écran ci-dessus :
--encoding UTF8
(il peut s'agir de n'importe lequel en fonction des paramètres régionaux).- L'indicateur d'encodage définit l'encodage du modèle de base de données. Toutes les bases de données créées à l'aide de ce modèle utiliseront également la même méthode de codage, sauf indication contraire. Il existe de nombreuses méthodes d'encodage disponibles pour différentes langues.
--pgdata test
(ce drapeau crée un répertoire nommé "test" pour stocker les données de la base de données).- Spécifie le répertoire dans lequel le cluster de bases de données enregistre ses données.
-A peer
(ceci spécifie la méthode d'authentification utilisée dans le fichier pg_hba.conf).- Spécifie la méthode d'authentification par défaut pour les utilisateurs locaux utilisée dans pg_hba.conf (lignes hôte et locale). initdb préremplira les entrées pg_hba.conf en utilisant la méthode d'authentification spécifiée pour les connexions de non-réplication ainsi que de réplication.
-k
(utilise la somme de contrôle des données pour vérifier les erreurs d'E/S)- Spécifie la somme de contrôle des données sur toutes les pages de données pour détecter la corruption du système d'E/S. Cependant, cela ralentit la vitesse de traitement de la base de données).
Sécuriser votre base de données PostgreSQL
Lors de l'installation, un nouvel utilisateur nommé postgres est créé automatiquement par défaut. Cet utilisateur dispose de tous les privilèges système, il est donc important de sécuriser le compte d'utilisateur avec un mot de passe fort.
sudo passwd postgres
Passez maintenant au compte d'utilisateur postgres. L'utilisateur doit avoir les privilèges sudo.
sudo su – postgres
La version de PostgreSQL peut être confirmée en exécutant
psql -c "SELECT version();"
Pour changer le mot de passe de postgres
commande d'utilisation de l'utilisateur :
psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";
Remarque :Ce mot de passe ne s'applique que lorsque le postgres
l'utilisateur se connecte à PostgreSQL via le réseau.
Pour accéder à la base de données Postgres, vous pouvez vous connecter à la base de données PostgreSQL avec :
psql postgres
Par défaut, PostgreSQL n'exige pas l'authentification par mot de passe des utilisateurs du système local pour accéder à la base de données. C'est ce qu'on appelle "l'authentification par les pairs". Cependant, l'authentification par mot de passe peut être activée depuis pg_hba.conf
fichier.
Pour modifier ce pg_hba.conf
fichier, utilisez \q
commande pour quitter le shell postgres et entrer dans le shell Linux. Depuis le shell Linux, modifiez le pg_hba.conf
dossier. Assurez-vous d'effectuer une sauvegarde avant de modifier le fichier.
sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak
Modifiez ensuite le fichier à l'aide de l'éditeur nano,
nano /etc/postgresql/12/main/pg_hba.conf
Recherchez la ligne locale sous "Unix domain socket connections only" et modifiez la METHOD
attribut de peer
à md5
.
Rechargez le service PostgreSQL pour appliquer les nouveaux paramètres.
sudo systemctl reload postgresql
Veuillez noter ici qu'il y a deux utilisateurs avec le nom postgres; l'un est l'utilisateur Linux pour se connecter et accéder à la base de données, et l'autre est l'utilisateur de la base de données utilisé pour effectuer des rôles administratifs dans la base de données.
Configuration de votre base de données PostgreSQL
PostgreSQL peut être configuré manuellement pour les adresses d'écoute et les ports en modifiant les paramètres requis dans le fichier postgresql.conf.
Par défaut, le port PostgreSQL 5432 est utilisé et écoute sur localhost. Cela peut être changé en éditant le fichier de configuration.
sudo nano /etc/postgresql/12/main/postgresql.conf
Le service sera redémarré après avoir apporté des modifications.
sudo systemctl restart postgresql
Création d'un nouveau rôle dans PostgreSQL 12
L'authentification et l'autorisation dans PostgreSQL 12 se font via le concept de "rôle". Ici, le rôle est un terme flexible qui fait référence à la fois aux utilisateurs et aux groupes.
Connectez-vous à l'utilisateur postgres à l'aide de la commande suivante :
sudo su postgres
De nouveaux rôles peuvent être créés de manière interactive à partir de la ligne de commande avec la commande createrole –interactive. Ici, l'utilisation de l'indicateur –interactive créera une invite pour le nom du nouveau rôle et si ce rôle doit se voir attribuer des autorisations de superutilisateur.
Un nouvel utilisateur peut être créé avec un nouveau rôle en dehors du shell utilisateur postgresql comme :
createuser –interactive
La sortie de la nouvelle commande utilisateur devrait ressembler à ceci.
Création et suppression d'une base de données sur votre serveur PostgreSQL
Dans PostgreSQL 12, lorsqu'un nouveau rôle est créé, une nouvelle base de données portant le même nom doit exister car le rôle tente de se connecter à la base de données par défaut. Ainsi, comme dans la section précédente, où l'utilisateur liam est créé, une base de données portant ce nom peut être créée à l'aide de la commande suivante :
createdb liam
Dans PostgreSQL 12, il existe plusieurs chemins pour créer des bases de données selon les besoins :
- Lorsque vous êtes connecté depuis le compte postgres :
postgres@server:~$ createdb liam
- Utilisez
sudo
,sudo –u postgres created liam
Pour supprimer la base de données, nous pouvons utiliser
dropdb liam
Ouvrir une invite Postgres avec le nouveau rôle
Un utilisateur Linux portant le même nom que la base de données et le rôle Postgres peut être créé pour se connecter avec une authentification basée sur l'identité.
Un utilisateur Linux peut être créé (s'il n'existe pas déjà) à partir de la ligne de commande en tapant :
sudo adduser noah
Une fois l'utilisateur créé, il peut être connecté à l'aide de la commande suivante :
sudo -u noah psql
La base de données actuelle et les informations utilisateur sont accessibles en utilisant ;
\conninfo
Gestion PostgreSQL
Créer et supprimer des tableaux
La commande SQL CREATE TABLE
peut être utilisé pour créer n'importe quelle table dans une base de données. Une liste de colonnes et un type de données pour chaque colonne doivent être spécifiés dans la commande.
CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));
Cette commande créera une table nommée "clients". La première colonne contiendra l'ID client de type entier. Les deuxième et troisième colonnes sont de type caractère et contiendront les noms et prénoms des clients avec une longueur maximale de 80 caractères.
Ce nouveau tableau peut être vu en tapant \d
.
Le tableau peut être supprimé en tapant :
DROP TABLE customers;
Insérer, sélectionner et supprimer des données dans un tableau
Les données sont ajoutées dans les tables PostgreSQL sous la forme de lignes. Chaque ligne représente un ensemble de données distinct. Les données peuvent être insérées dans la ligne à l'aide de la commande INSERT INTO. Le nom de la commande est suivi du "nom de la table" (dans l'exemple suivant, clients), du mot-clé VALUES, une liste de valeurs séparées par une virgule.
INSERT INTO customers VALUES (1, 'Owen', 'Buyer');
INSERT INTO customers VALUES (2, 'Luke', 'Seller');
Le contenu du tableau peut être visualisé à l'aide de la commande SELECT.
SELECT * FROM customers;
Une ligne peut être supprimée en utilisant le DELETE
commande. Le WHERE
mot-clé est utilisé pour sélectionner les lignes de manière conditionnelle.
DELETE FROM customers WHERE last_name = 'Seller';
Pour supprimer toutes les lignes, tapez :
SELECT * FROM customers;
Ajouter et supprimer des colonnes d'un tableau
PostgreSQL 12 offre la possibilité d'ajouter ou de supprimer facilement des colonnes dans les tables existantes.
Le ALTER TABLE
La commande est utilisée avec ADD
mot-clé pour ajouter une colonne à une table existante. Ce champ est vide pour les lignes existantes dans le tableau.
ALTER TABLE customers ADD branch_id int;
La même commande est utilisée avec le DROP
mot-clé pour supprimer la colonne spécifiée de la table.
ALTER TABLE customers DROP first_name;
Mettre à jour les données d'un tableau
Outre l'ajout et la suppression d'enregistrements dans une table, nous pouvons également les modifier. Cela peut être fait en utilisant le UPDATE
commande. Nous devons spécifier les colonnes qui doivent être modifiées avec les nouvelles valeurs.
UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';
Considérations relatives à l'environnement de production
PostgreSQL 12 peut être utilisé en toute sécurité dans un environnement de production. Cette base de données est si stable qu'on ne devrait avoir aucun problème à l'implémenter à grande échelle. Pour plus d'informations, veuillez consulter notre article précédent ici.
Conclusion
Ce tutoriel vous a montré comment configurer PostgreSQL 12 sur un serveur Ubuntu 20.04 fonctionnant sur DigitalOcean. PostgreSQL 12 est une application complexe avec de nombreuses fonctionnalités nouvelles et avancées, telles que la gestion améliorée de l'espace des index B-tree standard et la prise en charge de la reconstruction simultanée d'index et de la création d'index de couverture. La version 12 prend également en charge les requêtes WITH intégrées et les classements fournis par ICU, améliore le partitionnement et fournit une interface de stockage de table enfichable pour créer et utiliser différentes méthodes de stockage de table.
Maintenant que vous connaissez les bases de la configuration et de l'utilisation d'un serveur PostgreSQL, pourquoi ne pas essayer une alternative gérée ? Avec un service géré comme ScaleGrid, vous pouvez terminer l'ensemble du processus d'installation, d'installation et de configuration en un clic. Commencez votre essai gratuit de 30 jours aujourd'hui et voyez par vous-même ! Aucune carte de crédit n'est requise et vous pouvez configurer votre toute première base de données en quelques minutes.
Nous avons couvert les bases de l'installation ici et avons également fourni quelques instructions pour l'administration générale de la base de données. Nous espérons que vous avez trouvé ce guide utile.