Dans cet article, je vais vous montrer comment configurer la réplication de Postgresql 11. Commençons.
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-10Pour Postgresql 11 (actuellement en version bêta):
$ sudo apt installer postgresql-11Maintenant, 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 PostgresEntrez 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éeOuvert / etc / postgresql / 11 / main / pg_hba.confli avec nano:
$ nano / etc / postgresql / 11 / main / pg_hba.confliAjoutez la ligne suivante à l'emplacement marqué:
Réplication de la réplication de l'hôte 192.168.199.138/24 MD5Ouvrez maintenant le fichier de configuration PostgreSQL principal avec nano:
$ nano / etc / postgresql / 11 / main / postgresql.confliMaintenant, 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 'Redémarrez maintenant le serveur postgresql sur votre PG-Master serveur:
$ systemctl redémarrer postgresqlConfiguration 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 postgresqlOuvert / etc / postgresql / 11 / main / pg_hba.confli avec nano:
$ nano / etc / postgresql / 11 / main / pg_hba.confliAjoutez 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 MD5Ouvrez maintenant le fichier de configuration PostgreSQL principal avec nano:
$ nano / etc / postgresql / 11 / main / postgresql.confliMaintenant, 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 'Maintenant, allez à votre data_directory:
$ cd / var / lib / postgresql / 11 / mainSupprimer 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 -uTapez 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'Démarrer le PostgreSQL Esclave serveur:
$ systemctl start postgresqlTest 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 (Commandes SQL pour insérer des données factice dans le utilisateurs tableau:
Insérer dans les valeurs des utilisateurs («Shahriar», «BD»);Comme vous pouvez le voir, les données sont correctement ajoutées au Maître serveur PG-Master:
# \ x offMaintenant du Esclave serveur pg-esclave, Connectez-vous à la console PostgreSQL:
$ psqlEssayez 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.138Du 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.