Cómo configurar la replicación de PostgreSQL Top 10

Cómo configurar la replicación de PostgreSQL Top 10
PostgreSQL es un sistema de gestión de bases de datos relacionales de código abierto (RDBMS). Es una de las bases de datos más avanzadas que existen.

En este artículo, le mostraré cómo configurar PostgreSQL 11 replicación. Empecemos.

¿Cómo funciona la replicación en PostgreSQL?

En una configuración de replicación PostgreSQL, tiene 2 tipos de servidores. El Maestro servidor y el Esclavo servidor.

Los registros de la base de datos del Maestro el servidor se duplican al Esclavo servidor. Puedes leer desde el Esclavo servidores que usan las direcciones IP del Esclavo servidor. Pero agrega nuevos datos solo al Maestro servidor. Los servidores están todos sincronizados. Entonces, si alguno de los Maestro El servidor falla, uno de los servidores de esclavos puede hacerse cargo y convertirse en un nuevo maestro. Así es como PostgreSQL puede manejar la solicitud de la base de datos sin ninguna interrupción, incluso si algunos de los servidores fallan en un Maestro/Esclavo configuración.

Diagrama de Red:

Este es el diagrama de red para el postgresql Maestro/Esclavo configuración de replicación. Aquí tengo dos servidores, maestro de pg es el Maestro Servidor postgreSQL y esclavo de PG es el Esclavo Servidor postgreSQL. Por supuesto, puedes tener más Esclavo servidor, pero en aras de la simplicidad voy a tener uno Esclavo servidor.

Mi maestro de pg Postgresql Maestro El servidor tiene la dirección IP 192.168.199.137 y el esclavo de PG Postgresql Esclavo El servidor tiene la dirección IP 192.168.199.138. Recuerde estos y realice cambios cuando sea necesario para su configuración.

Instalación de PostgreSQL:

Para la demostración, estoy usando Ubuntu 18.04 servidor LTS. Puede usar cualquier distribución de Linux que desee. Solo los comandos son un poco diferentes. Eso es todo.

Debe instalar PostgreSQL en todos los servidores que serán parte de la configuración de replicación. En mi caso, los dos servidores maestro de pg, y esclavo de PG.

Te mostraré cómo instalar PostgreSQL en maestro de pg máquina. Los pasos son los mismos para el Máquinas PG-Slave también.

Sobre el maestro de pg servidor:

Primero debe agregar el repositorio de paquetes PostgreSQL en su máquina Ubuntu. Para hacer eso, ejecute el siguiente comando:

$ echo "Deb http: // apt.postgresql.org/pub/repos/apt/$ (lsb_release -cs) -pgdg principal 11 "|
Sudo Tee/etc/apt/fuentes.lista.D/PGSQL.lista

Se debe agregar el repositorio de paquetes PostgreSQL.

Ahora ejecute el siguiente comando para agregar la tecla GPG del repositorio de paquetes PostgreSQL:

$ wget --quiet -o -https: // www.postgresql.org/Media/Keys/ACCC4CF8.ASC | sudo apt-key agregar -

Se debe agregar la tecla GPG.

Ahora actualice el APTO caché del repositorio de paquetes con el siguiente comando:

$ sudo apt actualización

El APTO El caché del repositorio de paquetes debe actualizarse.

Ahora instale el servidor de base de datos PostgreSQL con el siguiente comando:

Para PostgreSQL 10 (último establo):

$ sudo apt instalación postgresql-10

Para PostgreSQL 11 (actualmente en Beta):

$ sudo apt instalación postgresql-11

Ahora presiona Y y luego presiona continuar.

Se debe instalar PostgreSQL.

Establecer contraseña para el post -put Usuario con el siguiente comando:

$ sudo passwd Postgres

Ahora ingrese la contraseña. Debe estar configurado.\

Ahora recuerda hacer lo mismo con el esclavo de PG servidor antes de continuar.

Configuración del servidor maestro PostgreSQL:

Ahora inicie sesión como el post -put usuario:

$ SU - Postgres

Ahora crea un nuevo usuario replicación:

$ PSQL -C "Crear replicación de usuario Replicación Iniciar sesión Límite de conexión 1 encriptado
Contraseña 'Your_Password'; "

Ahora abierto /etc/postgresql/11/main/PG_HBA.confusión con nano:

$ nano/etc/postgresql/11/main/pg_hba.confusión

Agregue la siguiente línea a la ubicación marcada:

Replicación de replicación del huésped 192.168.199.138/24 MD5

Ahora abra el archivo de configuración principal de PostgreSQL con nano:

$ nano/etc/postgresql/11/main/postgresql.confusión

Ahora busque y cambie la siguiente configuración. Si se comenta alguna línea, lo descompone (eliminando #) según sea necesario.

escuchar_addresses = 'Localhost, 192.168.199.137 '
wal_level = réplica
max_wal_senders = 10
wal_keep_segments = 64

Ahora reinicie el servidor PostgreSQL en su maestro de pg servidor:

$ systemctl reiniciar postgresql

Configuración del servidor de esclavos:

Sobre el esclavo de PG Iniciar sesión en el servidor como post -put usuario:

$ SU - Postgres

Detener el servicio PostgreSQL en el esclavo de PG servidor:

$ SystemCTL Stop PostgreSQL

Ahora abierto /etc/postgresql/11/main/PG_HBA.confusión con nano:

$ nano/etc/postgresql/11/main/pg_hba.confusión

Agregue la siguiente línea como lo hizo en el maestro de pg servidor:

Replicación de replicación del huésped 192.168.199.137/24 MD5

Ahora abra el archivo de configuración principal de PostgreSQL con nano:

$ nano/etc/postgresql/11/main/postgresql.confusión

Ahora busque y cambie la siguiente configuración. Si se comenta alguna línea, lo descompone (eliminando #) según sea necesario.

escuchar_addresses = 'Localhost, 192.168.199.138 '
wal_level = réplica
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = on

Ahora ve a tu directorio de datos:

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

Eliminar todo de ese directorio:

$ rm -rfv *

Ahora copie los datos del maestro de pg servidor al esclavo de PG servidor directorio de datos:

$ PG_BASEBACKUP -H 192.168.199.137 -d/var/lib/postgresql/11/main/-p -u
Replicación--Wal-Method = Fetch

Escriba la contraseña para el post -put usuario de la maestro de pg servidor y presione .

Ahora crea un recuperación.confusión archivo en el directorio de datos con nano:

$ Nano Recovery.confusión

Ahora agregue la siguiente línea:

standby_mode = 'on'
primario_conninfo = 'host = 192.168.199.137 puerto = 5432 usuario = contraseña de replicación = 123 '
trigger_file = '/tmp/masternow'

Iniciar el PostgreSQL Esclavo servidor:

$ systemctl iniciar postgresql

Replicación de prueba:

Ahora en el maestro de pg servidor, puede ver que el Esclavo Se detecta el servidor.

Comando SQL para crear usuarios mesa:

Crear usuarios de tabla (
Nombre Varchar (30),
Varchar país (2)
);

Comandos SQL para insertar datos ficticios en el usuarios mesa:

Insertar en los valores de los usuarios ('shahriar', 'bd');
Insertar en los valores de los usuarios ('Shovon', 'BD');
Insertar en los valores de los usuarios ('kelly', 'nosotros');
Insertar en los valores de los usuarios ('nina', 'in');
Insertar en los valores de los usuarios ('kesha', 'ca');

Como puede ver, los datos se agregan correctamente al Maestro servidor maestro de pg:

# \ x Off
# Seleccionar * de los usuarios;

Ahora de la Esclavo servidor esclavo de PG, Inicie sesión en la consola PostgreSQL:

$ psql

Ahora intente seleccionar los datos que acabamos de agregar:

$ select * de los usuarios;

Como puede ver, los datos se muestran en el Esclavo servidor. Significa que la replicación funciona perfectamente.

Generando claves SSH:

Puedes iniciar sesión en el Maestro servidor desde el Esclavo servidor y viceversa sin contraseña si genera y copia las claves SSH a servidores opuestos. Esto es útil para fines de administración.

Solo te estoy mostrando cómo hacerlo en el Maestro servidor. Los procedimientos son los mismos.

Generar la tecla SSH en el Maestro y Esclavo servidores mientras se registra como post -put usuario.

$ ssh-keygen

Seguir presionando . La tecla SSH debe generarse.

Desde el maestro de pg servidor, copie su tecla SSH para el esclavo de PG servidor:

$ ssh-copy-id 192.168.199.138

Desde el esclavo de PG servidor, copie su tecla SSH para el maestro de pg servidor:

$ ssh-copy-id 192.168.199.137

Escribir y luego presiona .

Ahora escriba la contraseña para el servidor al que se está conectando para el post -put usuario y presione .

Así es como se configura Maestro/Esclavo Replicación en PostgreSQL 11. Gracias por leer este artículo.