Comment configurer la réplication du Top 10 du PostgreSQL

Comment configurer la réplication du Top 10 du PostgreSQL
PostgreSQL est un système de gestion de base de données relationnel open source (RDBM). C'est l'une des bases de données les plus avancées du marché.

Dans cet article, je vais vous montrer comment configurer la réplication de Postgresql 11. Commençons.

Comment fonctionne la réplication dans PostgreSQL:

Dans une configuration de réplication postgresql, vous avez 2 types de serveurs. Le Maître serveur et le Esclave serveur.

La base de données enregistre du Maître le serveur est dupliqué au Esclave les serveurs. Vous pouvez lire à partir du Esclave serveurs utilisant les adresses IP du Esclave les serveurs. Mais vous ajoutez de nouvelles données uniquement au Maître serveur. Les serveurs sont tous synchronisés. Donc, si l'un des Maître Le serveur échoue, l'un des serveurs esclaves peut prendre le relais et devenir un nouveau maître. C'est ainsi que PostgreSQL peut gérer la demande de base de données sans aucune interruption, même si certains serveurs échouent dans un Maître/ /Esclave configuration.

Diagramme de réseau:

Ceci est le diagramme de réseau pour le postgresql Maître/ /Esclave Configuration de la réplication. Ici j'ai deux serveurs, PG-Master est le Maître Server postgresql et pg-esclave est le Esclave Serveur postgresql. Bien sûr, vous pouvez en avoir plus Esclave serveur, mais pour la simplicité, je vais en avoir un Esclave serveur.

Mon PG-Master Postgresql Maître Le serveur a l'adresse IP 192.168.199.137 et le pg-esclave Postgresql Esclave Le serveur a l'adresse IP 192.168.199.138. N'oubliez pas ceux-ci et apportez des modifications si nécessaire pour votre configuration.

Installation de PostgreSQL:

Pour la démonstration, j'utilise Ubuntu 18.04 serveur LTS. Vous pouvez utiliser n'importe quelle distribution Linux souhaitée. Les commandes sont un peu différentes. C'est tout.

Vous devez installer PostgreSQL sur tous les serveurs qui feront partie de la configuration de la réplication. Dans mon cas, les deux serveurs PG-Master, et pg-esclave.

Je vais vous montrer comment installer PostgreSQL sur PG-Master machine. Les étapes sont les mêmes pour le Machines PG-Slave aussi.

Sur le PG-Master serveur:

Vous devez d'abord ajouter le référentiel de package postgresql sur votre machine Ubuntu. Pour ce faire, exécutez la commande suivante:

$ echo "deb http: // apt.postgresql.org / pub / repos / apt / $ (lsb_release -cs) -pgdg Main 11 "|
TEE SUDO / ETC / APT / SOURCES.liste.d / pgsql.liste

Le référentiel de package postgresql doit être ajouté.

Exécutez maintenant la commande suivante pour ajouter la clé GPG du référentiel de package PostgreSQL:

$ wget --quiet -o - https: // www.postgresql.org / média / clés / accc4cf8.ASC | sudo apt-key ajouter -

La clé GPG doit être ajoutée.

Maintenant, mettez à jour le APTE Cache du référentiel de package avec la commande suivante:

$ sudo apt mise à jour

Le APTE Le cache du référentiel de packages doit être mis à jour.

Installez maintenant le serveur de base de données PostgreSQL avec la commande suivante:

Pour PostgreSQL 10 (dernière écurie):

$ sudo apt install postgresql-10

Pour Postgresql 11 (actuellement en version bêta):

$ sudo apt installer postgresql-11

Maintenant, appuyez sur y Et puis appuyez sur continuer.

PostgreSQL doit être installé.

Définir le mot de passe pour le postgres Utilisateur avec la commande suivante:

$ sudo passwd Postgres

Entrez maintenant le mot de passe. Il doit être réglé.\

N'oubliez pas de faire de même pg-esclave serveur avant de continuer.

Configuration du serveur Master PostgreSQL:

Maintenant, connectez-vous comme le postgres utilisateur:

$ su - Postgres

Créez maintenant un nouvel utilisateur réplication:

$ psql -c "Créer la réplication de la réplication de l'utilisateur Limite de connexion de connexion 1 cryptée
Mot de passe 'your_password'; "

Ouvert / etc / postgresql / 11 / main / pg_hba.confli avec nano:

$ nano / etc / postgresql / 11 / main / pg_hba.confli

Ajoutez la ligne suivante à l'emplacement marqué:

Réplication de la réplication de l'hôte 192.168.199.138/24 MD5

Ouvrez maintenant le fichier de configuration PostgreSQL principal avec nano:

$ nano / etc / postgresql / 11 / main / postgresql.confli

Maintenant, trouvez et modifiez les paramètres suivants. Si une ligne est commentée, l'inconvénient (en supprimant #) comme nécessaire.

écouter_address = 'localhost, 192.168.199.137 '
wal_level = réplique
max_wal_senders = 10
wal_keep_segments = 64

Redémarrez maintenant le serveur postgresql sur votre PG-Master serveur:

$ systemctl redémarrer postgresql

Configuration du serveur esclave:

Sur le pg-esclave Connexion du serveur comme postgres utilisateur:

$ su - Postgres

Arrêtez le service postgresql sur le pg-esclave serveur:

$ systemctl stop postgresql

Ouvert / etc / postgresql / 11 / main / pg_hba.confli avec nano:

$ nano / etc / postgresql / 11 / main / pg_hba.confli

Ajoutez la ligne suivante comme vous l'avez fait sur le PG-Master serveur:

Réplication de la réplication de l'hôte 192.168.199.137/24 MD5

Ouvrez maintenant le fichier de configuration PostgreSQL principal avec nano:

$ nano / etc / postgresql / 11 / main / postgresql.confli

Maintenant, trouvez et modifiez les paramètres suivants. Si une ligne est commentée, l'inconvénient (en supprimant #) comme nécessaire.

écouter_address = 'localhost, 192.168.199.138 '
wal_level = réplique
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = on

Maintenant, allez à votre data_directory:

$ cd / var / lib / postgresql / 11 / main

Supprimer tout de ce répertoire:

$ rm -rfv *

Copiez maintenant les données de la PG-Master serveur au pg-esclave les serveurs data_directory:

$ pg_basebackup -h 192.168.199.137 -d / var / lib / postgresql / 11 / main / -p -u
réplication --wal-méthode = récupérer

Tapez le mot de passe pour le postgres Utilisateur du PG-Master serveur et appuyez sur .

Créez maintenant un récupération.confli fichier dans le data_directory avec nano:

$ Nano Recovery.confli

Ajoutez maintenant la ligne suivante:

standby_mode = 'on'
primaire_conninfo = 'host = 192.168.199.137 port = 5432 utilisateur = mot de passe de réplication = 123 '
Trigger_file = '/ tmp / masternow'

Démarrer le PostgreSQL Esclave serveur:

$ systemctl start postgresql

Test de réplication:

Maintenant sur le PG-Master serveur, vous pouvez voir que le Esclave Le serveur est détecté.

Commande SQL pour la création utilisateurs tableau:

Créer des utilisateurs de table (
Nom Varchar (30),
pays varchar (2)
));

Commandes SQL pour insérer des données factice dans le utilisateurs tableau:

Insérer dans les valeurs des utilisateurs («Shahriar», «BD»);
Insérer dans les valeurs des utilisateurs («shovon», «bd»);
Insérer dans les valeurs des utilisateurs («Kelly», «nous»);
Insérer dans les valeurs des utilisateurs («nina», «in»);
Insérer dans les valeurs des utilisateurs («Kesha», «CA»);

Comme vous pouvez le voir, les données sont correctement ajoutées au Maître serveur PG-Master:

# \ x off
# select * chez les utilisateurs;

Maintenant du Esclave serveur pg-esclave, Connectez-vous à la console PostgreSQL:

$ psql

Essayez maintenant de sélectionner les données que nous venons d'ajouter:

$ select * chez les utilisateurs;

Comme vous pouvez le voir, les données s'affichent dans le Esclave serveur. Cela signifie que la réplication fonctionne parfaitement.

Génération de touches SSH:

Vous pouvez vous connecter au Maître serveur du Esclave serveur et vice versa sans mot de passe si vous générez et copiez des clés SSH aux serveurs opposés. Ceci est utile à des fins d'administration.

Je vous montre seulement comment le faire sur le Maître serveur. Les procédures sont les mêmes.

Générer une clé ssh sur le Maître et Esclave les serveurs lorsqu'ils se sont connectés comme postgres utilisateur.

$ ssh-keygen

Continuez à appuyer . La clé SSH doit être générée.

Du PG-Master serveur, copiez votre clé SSH dans le pg-esclave serveur:

$ ssh-copy-id 192.168.199.138

Du pg-esclave serveur, copiez votre clé SSH dans le PG-Master serveur:

$ ssh-copy-id 192.168.199.137

Tapez Oui Et puis appuyez sur .

Tapez maintenant le mot de passe du serveur auquel vous vous connectez pour le postgres utilisateur et appuyez sur .

C'est comme ça que vous configurez Maître/ /Esclave réplication sur PostgreSQL 11. Merci d'avoir lu cet article.