Construcción de replicación de flujo maestro y de respaldo de Postgresql

Configuración de la replicación de secuencia maestra/en espera de la versión 12 de Postgresql (principal: pg1, copia de seguridad: pg2)
La configuración de la replicación de secuencia de la versión 12 es básicamente la misma que la versión anterior, excepto que el contenido del archivo recovery.conf original se escribe en postgresql. conf, y standby se genera en la máquina en espera El archivo de logotipo .signal.
1. Cambie el archivo de configuración pg1 postgresql.conf.Algunos parámetros están comentados de forma predeterminada y deben abrirse manualmente

listen_addresses = '*'    # 设置监听的ip,* 为允许所有
wal_level = replica    # wal日志写入级别,要使用流复制,必须使用replica或更高级别
full_page_writes = on    # 可以防止意外宕机后部分数据无法写入
wal_log_hints = on    # 没太懂这个参数的具体含义,但可能会影响后续pg_rewind的使用,所以把它打开,官方描述:also do full page writes of non-critical updates
max_wal_senders = 10    # 设置流复制链接最大值
hot_standby = on    # 打开热备
wal_keep_segments = 64    # 设置流复制保留的最log数目
unix_socket_directories = '.'     # 指定服务器用于监听来自客户端应用的连接的 Unix 域套接字目录。
unix_socket_permissions = 0777    # 设置 Unix 域套接字的访问权限。

2. Cree una réplica de usuario de replicación de secuencias con contraseña replication123

create role replica login replication encrypted password 'replication123';

3. Modifique pg_hba.conf, agregue el siguiente contenido a la última línea del archivo y reinicie la base de datos. La configuración de la biblioteca principal está completa.

host all all 0.0.0.0/0 md5
host replication replica 0.0.0.0/0 md5

4. Configure pg2 (base de datos en espera), elimine el directorio de la base de datos en la máquina en espera y ejecute el comando pg_basebackup para extraer la copia de seguridad de la base de datos maestra a la base de datos esclava.

rm -rf pg_dir  # 数据库init后生成的文件夹,即存放postgresql.conf文件的 文件夹。
pg_basebackup -F p -P -R -D $PGDATA -h 10.110.8.97 -p 5432 -U replica
# 输入 replica用户密码 :replication123

En este punto, veremos que el archivo standby.signal se genera en el directorio de datos de la base de datos en espera para identificar la máquina como la base de datos en espera, y el archivo postgresql.auto.conf agrega automáticamente la información de conexión de la base de datos principal.
Inicie la base de datos en espera, la replicación de flujo se configura correctamente y los datos insertados por la base de datos principal se sincronizarán con la base de datos en espera.

Ver información primaria y secundaria:

select pg_is_in_recovery();

La biblioteca principal es 'f'

select pg_is_in_recovery();
 pg_is_in_recovery
-------------------
 f
(1 row)

El modo de espera es 't'

select pg_is_in_recovery();
 t

Conmutación maestro-espera
Ejecute el comando pg_ctl promover en la máquina en espera para promover la
máquina principal Ejecute el comando pg_rewind en la máquina principal para alinear la línea de tiempo como la máquina en espera

おすすめ

転載: blog.csdn.net/Yy_heng/article/details/127122657