Uno, instalación de la base de datos
Elija la instalación y el funcionamiento de acuerdo con su propio entorno
1, instalación de directorio especificado por yum
https://blog.csdn.net/llwy1428/article/details/105143053
2, yum instalar directamente
https://blog.csdn.net/llwy1428/article/details/102486414
3. Compila e instala
https://blog.csdn.net/llwy1428/article/details/95444151
4. Funcionamiento básico de PostgreSql
https://blog.csdn.net/llwy1428/article/details/102598732
5. Instalación de Centos7 yum, configuración PgAdmin4
https://blog.csdn.net/llwy1428/article/details/102486511
6, extensión de instalación de la base de datos Centos7 PostgreSql
https://blog.csdn.net/llwy1428/article/details/105167524
7. La base de datos Centos7 PostgreSql utiliza la extensión FDW
https://blog.csdn.net/llwy1428/article/details/106291669
8. Centos7 postgresql v11 instala la base de datos de escala de tiempo TimescaleDB
https://blog.csdn.net/llwy1428/article/details/106357900
9. Windows 10 usa PgAdmin para hacer una copia de seguridad de la base de datos PostgreSql
https://blog.csdn.net/llwy1428/article/details/107031697
Dos, instalación y configuración de máquinas virtuales
1. Seleccione (o instale) dos máquinas virtuales Centos7.x
Descarga del sistema: http://archive.kernel.org/centos-vault/7.4.1708/isos/x86_64/
2. Instalación del sistema: https://blog.csdn.net/llwy1428/article/details/89328381
3. Configuración de red: https://blog.csdn.net/llwy1428/article/details/85058028
Nota: aquí 192.168.11.11 es el nodo de la base de datos maestra; 192.168.11.12 es el nodo de la base de datos esclava
4. Cortafuegos: https://blog.csdn.net/llwy1428/article/details/99676257
Ambos firewalls de máquinas virtuales abren el puerto: 5432
]# firewall-cmd --add-port=5432/tcp --permanent
]# firewall-cmd --reload
Tres, instalación, configuración
Nota: Aquí, 192.168.11.11 es la base de datos maestra; 192.168.11.12 es la base de datos esclava
1. Instale la base de datos
Instale la base de datos PostgreSql en el nodo principal
Proceso de instalación: https://blog.csdn.net/llwy1428/article/details/105143053
2. Cree una cuenta de respaldo y establezca una contraseña en la base de datos principal 192.168.11.11
El sistema cambia al usuario de postgres
[root@localhost ~]# su - postgres
Abra la línea de comando
-bash-4.2$ psql
Cree un usuario de base de datos y establezca una contraseña (las letras del nombre de usuario deben estar en minúsculas)
CREAR USUARIO [nombre de usuario] REPLICACIÓN INICIAR SESIÓN CONEXIÓN LÍMITE 3 CONTRASEÑA CIFRADA '[CONTRASEÑA]';
postgres=# CREATE USER dbbak REPLICATION LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD '123456';
3. Modifique el archivo de configuración postgresql.conf
Parámetros a modificar:
(1) replicación de transmisión de wal_level réplica de nivel más alto
(2) max_wal_senders la cantidad de procesos de replicación de transmisión, generalmente el host
(3) wal_keep_segments mantiene el número de WAL, que se puede aumentar o disminuir según haya escritura por lotes
(4) hot_standby yes / no permite consultas durante la recuperación
Explicación de otros parámetros
Cambiar de usuario y editar archivos de configuración
[root@localhost ~]# su - postgres
-bash-4.2$ vim /data/pgdata/postgresql.conf
wal_level = réplica
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = encendido
4. Edite la asignación de hosts
[root@localhost ~]# vim /etc/hosts
5. Modifique el archivo de configuración pg_hda.conf
-bash-4.2$ vim /data/pgdata/pg_hba.conf
Agregar configuración de conexión para el usuario dbbak en espera activa
Nota: Esto debe limitarse a la conexión del nodo esclavo. La tercera columna de esta configuración es el usuario de reserva activa creado en el artículo anterior: "dbbak"
host replication dbbak db.slave.bak md5
Nota: La cuarta columna de la última fila es la asignación entre el nombre de host y la IP del nodo esclavo configurado en / etc / hosts
6. Reinicie el servicio de base de datos del servidor principal.
[root@localhost ~]# systemctl restart postgresql-11
7. Instale el servicio de base de datos PostgreSql en el nodo esclavo
Cree un directorio y otorgue permisos (no es necesario inicializar la base de datos)
8. Utilice el comando para sincronizar el archivo de datos del nodo maestro con el nodo esclavo.
/ usr / pgsql-11 / bin / pg_basebackup -h [Dirección del servidor maestro] -p [Puerto del servidor maestro] -D [Directorio de datos del servidor esclavo] -P -U [Usuario de respaldo activo del servidor maestro]
Cambiar de usuario de nodo
[root@localhost ~]# su - postgres
Ejecutar en el nodo esclavo
-bash-4.2$ /usr/pgsql-11/bin/pg_basebackup -h 192.168.11.11 -p 5432 -D /data/pgdata/ -P -U dbbak
Ingrese la contraseña del servidor del nodo maestro
Contraseña: ***********
Ver el directorio de datos del nodo esclavo:
-bash-4.2$ ll /data/pgdata/
9. Modifique el archivo de configuración postgresql.conf en el nodo esclavo (opcional)
-bash-4.2$ vim /data/pgdata/postgresql.conf
Modifique el puerto de la base de datos del nodo esclavo a 5433
10. Cree el archivo de configuración recovery.conf
-bash-4.2$ vim /data/pgdata/recovery.conf
Escribe contenido
standby_mode ='on'
primary_conninfo ='host=192.168.11.11 port=5432 user=dbbak password=123456'
trigger_file ='/tmp/pgsql_master'
Descripción: 'host = 192.168.11.11 port = 5432 user = dbbak password = 123456' es la información de conexión y de usuario en espera activa del nodo maestro
11. Inicie el servicio de base de datos desde el nodo.
[root@localhost ~]# systemctl start postgresql-11
12. La subtabla verifica el estado de inicio de la base de datos en los nodos maestro y esclavo:
Nodo maestro:
Nodo esclavo:
13. Ejecute comandos en el nodo principal para verificar el resultado de la construcción:
[root@localhost ~]# su - postgres
-bash-4.2$ psql
postgres=# \x on
postgres=# select * from pg_stat_activity where usename = 'dbbak';
Cuatro, prueba:
1. Cree una base de datos en el nodo principal:
postgres=# create database dbtest owner postgres;
2. Ver en el nodo esclavo:
En este punto, el entorno de sincronización maestro-esclavo de la base de datos Centos7.x PostgreSql se ha configurado y configurado.