centos虚拟机基于postgresql15的repmgr主从自动故障切换配置

Patroni高可用实战:PostgreSQL故障自动愈合与生产避坑指南 PostgreSQL高可用不是简单配置自动切换,而是围绕WAL流复制、同步模式、分布式协调(如etcd)构建的可控状态机系统。其核心原理在于通过显式状态管理(如Running/Demoting/Failed)、强一致性元数据存储和深度PostgreSQL内核感知(如pg_stat_replication、pg_rewind),保障RPO≈0与RTO<15秒。技术价值体现在规避脑裂、支持无缝角色变更、兼容连接池集成等工程刚需;典型应用场景包括金融交易库、SaaS多租户主库及物流订单中心。本文聚焦Patroni 阅读详情

项目场景:

配置centos虚拟机基于postgresql15的repmgr主从自动故障切换,出现的问题及解决方案。


环境说明

hostnameip状态
node1192.168.1.141主
node2192.168.1.142从

1.虚拟机都操作:

安装postgres15


# 获取所需依赖包
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libzstd-1.5.2-1.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
 
 
yum install -y ./libzstd-1.5.2-1.el7.x86_64.rpm 
yum install -y centos-release-scl-rh llvm5*
yum install -y epel-release


# 安装版本库的RPM
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装 PostgreSQL
sudo yum install -y postgresql15-server postgresql15-devel

# 初始化DB
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# 开机启动|启动|重启|状态|停止 命令
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
sudo systemctl restart postgresql-15
sudo systemctl status postgresql-15
sudo systemctl stop postgresql-15

安装完成后在 /var/lib/pgsql/15 下生成文件夹
在这里插入图片描述

安装repmgr

根据pg版本安装对应版本

curl https://dl.2ndquadrant.com/default/release/get/15/rpm | bash
yum install -y repmgr15

修改postgres用户密码

最好两个服务器密码一样,别忘了。

echo "自己输密码"|passwd --stdin postgres

创建流复制用户

// 创建流复制用户replicator
create user replica replication login connection limit 5 password 'replica';

// 创建repmgr数据库
create database repmgr;

// 创建repmgr用户
create user repmgr with password 'repmgr' superuser login;
alter database repmgr owner to repmgr;

修改pg_hba.conf配置文件

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.1.0/24          md5
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0               scram-sha-256
host    replication     replica         192.168.1.142/32        trust
host    replication     replica         192.168.1.141/32        trust
# all
host    replication     repmgr          192.168.1.141/32        trust
host    replication     repmgr          192.168.1.142/32        trust

修改postgresql.conf配置文件

# basic
listen_addresses = '*'                # 监听所有ip
port = 5432                           # 端口
max_connections = 1000                # 最大连接数
superuser_reserved_connections = 10   # 给超级用户预留的连接数
shared_buffers = 1GB                  # 共享内存,一般设置为内存的1/4
work_mem = 16MB                       # 设置在写入临时磁盘文件之前查询操作(例如排序或哈希表)可使用的最大内存容量
maintenance_work_mem = 256MB          # 在维护性操作(例如VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY)中使用的 最大的内存量
timezone = 'Asia/Shanghai'            # 系统时区
hot_standby = on                      # 打开热备

shared_preload_libraries = 'repmgr'
# optimizer
default_statistics_target = 500       # 默认100,ANALYZE在pg_statistic中存储的信息量,增大该值,会增加ANALYZE的时间,但会让解释计划更精准

# wal
max_wal_size = 1GB                    # 建议与shared_buffers保持一致
min_wal_size = 80MB                   # 建议max_wal_size/12.5
wal_log_hints = on                    # 控制WAL日志记录的方式,建议打开
wal_level = replica                   # wal日志写入级别,要使用流复制,必须使用replica或更高级别
wal_sender_timeout = 60s              # 设置WAL发送者在发送WAL数据时等待主服务器响应的超时时间

# archive
archive_mode = on                     # 
archive_command = 'copy "%p" /var/lib/pgsql/15/data/pg_archive/"%f"'   # 归档存储位置,自行修改

# log 近7天轮询
log_destination = 'csvlog'            # 日志格式
logging_collector = on                # 日志收集器
log_directory = 'pg_log'              # 日志目录 $PGDATA/pg_log
log_filename = 'postgresql.%a'        # 7天日志轮询
log_file_mode = 0600                  # 日志文件的权限
log_rotation_size = 0                 # 日志的最大尺寸,设置为零时将禁用基于大小创建新的日志文件
log_truncate_on_rotation = on         # 这个参数将导致PostgreSQL截断(覆盖而不是追加)任何已有的同名日志文件
log_min_duration_statement = 0        # 如果语句运行至少指定的时间量,将导致记录每一个这种完成的语句的持续时间
log_duration = on                     # 每一个完成的语句的持续时间被记录
log_lock_waits = on                   # 控制当一个会话为获得一个锁等到超过deadlock_timeout时,是否要产生一个日志消息
log_statement = 'mod'                 # 控制哪些 SQL 语句被记录。有效值是 none (off)、ddl、mod和 all(所有语句)。ddl记录所有数据定义语句,例如CREATE、ALTER和 DROP语句。mod记录所有ddl语句,外加数据修改语句例如INSERT, UPDATE、DELETE、TRUNCATE, 和COPY FROM
log_timezone = 'Asia/Shanghai'        # 设置在服务器日志中写入的时间戳的时区

# sql
statement_timeout = 300000            # 语句执行超时时间 5分钟
idle_in_transaction_session_timeout = 300000   # 事务空闲超时时间 5分钟
idle_session_timeout = 1800000        # 会话空闲超时时间 30分钟
lock_timeout = 60000                  # 等锁超时时间 1分钟

启动pg15

systemctl start postgresql-15

2.配置服务器ssh远程免密登录

// 每个虚拟机都生成秘钥
ssh-keygen -t rsa
// 都发到主服务器上
ssh-copy-id -i id_rsa.pub -p22  postgres@node1
// 发送给从秘钥
scp authorized_keys node2:$PWD

2.1设置postgres用户权限

如果根据网上ssh远程连接配置了秘钥,并且给与了该用户文件夹700权限,并且authorized_keys 600权限之后还是出现了需要密码验证。

2.2请查看SElinux是否关闭

临时关闭:

运行命令 setenforce 0,设置为permissive模式,不禁止违反安全策略的行为,但会记录在日志中。运行命令 setenforce 1,设置为enforcing模式,禁止违反安全策略的行为。

永久关闭:编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled,保存并重启机器。运行命令 getenforce,验证SELinux状态为 Disabled。

2.3 配置完成后务必测试

使用下面的代码测试,务必保证postgres能免密登录其他虚拟机的postgres,如提示需要密码,请查看上方2.1和2.2是否操作

    // node1切换postgres用户
	su postgres
	//ssh 其他虚拟机的postgres用户
	ssh node2

3.repmgr配置:

3.1主虚拟机操作

vi /etc/repmgr/15/repmgr.conf

修改repmgr.conf配置文件


ssh_options='-q -o ConnectTimeout=10'
node_id=1
node_name='192.168.1.141'
conninfo='user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path='
data_directory='/var/lib/pgsql/15/data'
pg_bindir='/usr/pgsql-15/bin/'
failover='automatic'
promote_command='/usr/pgsql-15/bin/repmgr standby promote -f /etc/repmgr/15/repmgr.conf --log-to-file'
follow_command='/usr/pgsql-15/bin/repmgr standby follow -f /etc/repmgr/15/repmgr.conf --log-to-file --upstream-node-id=%n'
log_file='/var/lib/pgsql/15/repmgrd.log'


primary_visibility_consensus = true
standby_disconnect_on_failover = true
repmgrd_service_start_command ='sudo /usr/bin/systemctl start repmgr15.service'
repmgrd_service_stop_command ='sudo /usr/bin/systemctl stop repmgr15.service'
passfile='/home/postgres/.pgpass'

# 高可用参数设置
location='location1'                   # 多数据中心时标记服务器的位置,在故障转移期间用于检查当前主节点的可见性
priority=100                                                         # 节点优先级,选主时可能使用到(lsn > priority > node_id),0代表该节点不会被提升为主节点
monitoring_history=yes                                               # 是否将监控数据写入“monitoring_history”表
reconnect_interval=5                                                 # 故障转移之前,尝试重新连接的间隔(以秒为单位)
reconnect_attempts=3                                                 # 故障转移之前,尝试重新连接的次数
monitor_interval_secs=2
use_replication_slots=true
connection_check_type=ping          # ping: repmgr 使用PQPing() 方法测试连接
//注册主节点
su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf primary register"
//查看状态
su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
//启动standby节点
systemctl start postgresql-15
//启动repmgr15
systemctl start repmgr15

3.2从虚拟机操作

vi /etc/repmgr/15/repmgr.conf

ssh_options='-q -o ConnectTimeout=10'
node_id=2
node_name='192.168.1.142'
conninfo='user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path='
data_directory='/var/lib/pgsql/15/data'
pg_bindir='/usr/pgsql-15/bin/'
failover='automatic'
promote_command='/usr/pgsql-15/bin/repmgr standby promote -f /etc/repmgr/15/repmgr.conf --log-to-file'
follow_command='/usr/pgsql-15/bin/repmgr standby follow -f /etc/repmgr/15/repmgr.conf --log-to-file --upstream-node-id=%n'
log_file='/var/lib/pgsql/15/repmgrd.log'


primary_visibility_consensus = true
standby_disconnect_on_failover = true
repmgrd_service_start_command ='sudo /usr/bin/systemctl start repmgr15.service'
repmgrd_service_stop_command ='sudo /usr/bin/systemctl stop repmgr15.service'
passfile='/home/postgres/.pgpass'

# 高可用参数设置
location='location1'                   # 多数据中心时标记服务器的位置,在故障转移期间用于检查当前主节点的可见性
priority=100                                                         # 节点优先级,选主时可能使用到(lsn > priority > node_id),0代表该节点不会被提升为主节点
monitoring_history=yes                                               # 是否将监控数据写入“monitoring_history”表
reconnect_interval=5                                                 # 故障转移之前,尝试重新连接的间隔(以秒为单位)
reconnect_attempts=3                                                 # 故障转移之前,尝试重新连接的次数
monitor_interval_secs=2
use_replication_slots=true
connection_check_type=ping          # ping: repmgr 使用PQPing() 方法测试连接
//注册从节点
su - postgres -c "/usr/pgsql-15/bin/repmgr -h 192.168.1.142 -U repmgr -d repmgr -f /etc/repmgr/15/repmgr.conf standby clone --dry-run" 
//从主节点验证是否能复制数据
su - postgres -c "/usr/pgsql-15/bin/repmgr -h 192.168.1.141 -U repmgr -d repmgr -f /etc/repmgr/15/repmgr.conf standby clone --dry-run" 
//开始复制主data数据为从节点,复制完会生成从节点的standby.signal文件
su - postgres -c "/usr/pgsql-15/bin/repmgr -h 192.168.1.141 -U repmgr -d repmgr -f /etc/repmgr/15/repmgr.conf standby clone" 

//启动standby节点
systemctl start postgresql-15
//启动repmgr15
systemctl start repmgr15
//查看状态
su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
// 成功状态
 ID | Name          | Role    | Status    | Upstream      | Location  | Priority | Timeline | Connection string                                                                                                     
----+---------------+---------+-----------+---------------+-----------+----------+----------+------------------------------------------------------------------------------------------------------------------------
 1  | 192.168.1.141 | primary | * running |               | location1 | 100      | 12       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path=
 2  | 192.168.1.142 | standby |   running | 192.168.1.141 | location1 | 100      | 12       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path=

4.主从正常运行主从切换:

正常运行时主从切换,进入到从服务器

从服务器

su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf standby switchover -U repmgr --verbose" 
//切换后
[root@node2 data]# su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
 ID | Name          | Role    | Status    | Upstream      | Location  | Priority | Timeline | Connection string                                                                                                     
----+---------------+---------+-----------+---------------+-----------+----------+----------+------------------------------------------------------------------------------------------------------------------------
 1  | 192.168.1.141 | standby |   running | 192.168.1.142 | location1 | 100      | 12       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path=
 2  | 192.168.1.142 | primary | * running |               | location1 | 100      | 13       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path=

5.测试主故障自动将从设置为主:

进入主服务器
关停postgresql-15

systemctl stop postgresql-15

主服务器显示

[root@node1 data]# su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
 ID | Name          | Role    | Status               | Upstream | Location  | Priority | Timeline | Connection string                                                                                                     
----+---------------+---------+----------------------+----------+-----------+----------+----------+------------------------------------------------------------------------------------------------------------------------
 1  | 192.168.1.141 | primary | * running            |          | location1 | 100      | 14       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path=
 2  | 192.168.1.142 | standby | ! running as primary |          | location1 | 100      | 15       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path=

从服务器显示

[root@node2 data]# su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
 ID | Name          | Role    | Status    | Upstream | Location  | Priority | Timeline | Connection string                                                                                                     
----+---------------+---------+-----------+----------+-----------+----------+----------+------------------------------------------------------------------------------------------------------------------------
 1  | 192.168.1.141 | primary | ! running |          | location1 | 100      | 14       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path=
 2  | 192.168.1.142 | primary | * running |          | location1 | 100      | 15       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path=

WARNING: following issues were detected
  - node "192.168.1.141" (ID: 1) is running but the repmgr node record is inactive

从服务器142 ip已变更为了primary(主)了
进入主服务器
将141注册为从服务加入到repmgr

// 测试是否成功
su - postgres -c "repmgr node rejoin -d 'host=192.168.1.142 dbname=repmgr user=repmgr' --force-rewind --config-files=postgresql.conf,postgresql.auto.conf --verbose --dry-run"

su - postgres -c "repmgr node rejoin -d 'host=192.168.1.142 dbname=repmgr user=repmgr' --force-rewind --config-files=postgresql.conf,postgresql.auto.conf --verbose"

//最后的提示信息为成功
INFO: node "192.168.1.141" (ID: 1) is pingable
INFO: node "192.168.1.141" (ID: 1) has attached to its upstream node
NOTICE: NODE REJOIN successful
DETAIL: node 1 is now attached to node 2

//查看状态,成功
[root@node1 data]# su - postgres -c "/usr/pgsql-15/bin/repmgr -f /etc/repmgr/15/repmgr.conf cluster show"
 ID | Name          | Role    | Status    | Upstream      | Location  | Priority | Timeline | Connection string                                                                                                     
----+---------------+---------+-----------+---------------+-----------+----------+----------+------------------------------------------------------------------------------------------------------------------------
 1  | 192.168.1.141 | standby |   running | 192.168.1.142 | location1 | 100      | 14       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.141 fallback_application_name=repmgr options=-csearch_path=
 2  | 192.168.1.142 | primary | * running |               | location1 | 100      | 15       | user=repmgr connect_timeout=2 dbname=repmgr host=192.168.1.142 fallback_application_name=repmgr options=-csearch_path=

PostgreSQL与国产数据库:技术选型、部署测试与产业实践指南 这次我们来聊聊一个在技术圈和产业界都绕不开的话题:PostgreSQL(简称PG)与中国数据库产业。标题里的“套壳”与“自主”之争,恰恰点中了当前国产数据库发展的核心矛盾与机遇。PG作为全球最先进的开源关系型数据库之一,其三十年的发展历程,不仅塑造了自身的技术生态,更在无形中深刻影响了中国数据库产业的演进路径。 对于开发者、架构师和企业技术决策者而言,理解PG与中国数据库的关系,远不止于技术选型的比较。它关乎到如何在一个“开源为基,自主为魂”的复杂生态中,做出符合业务需求、技术趋势与合规要求的明智选择。本文 阅读详情

相关推荐

PostgreSQL与国产数据库:从技术原理到选型实践

关系型数据库作为企业数据存储与管理的核心组件,其技术演进始终围绕数据一致性、事务处理与查询优化等基本原理展开。PostgreSQL凭借其成熟的MVCC(多版本并发控制)机制、WAL(预写式日志)和强大的扩展性,成为众多数据库产品的技术基石。在国产化与信创背景下,基于PostgreSQL的国产数据库产品通过架构扩展、分布式能力增强和运维工具集成,实现了从基础功能到产品化解决方案的升级。这些创新不仅满足了金融、政务等关键行业对自主可控与高性能的需求,也为开发者提供了更丰富的技术选型空间。本文通过环境搭建、功能对

weixin_30820077的博客 367

postgres主从部署(repmgr故障自动切换)

这个hba文件是为了配置repmgr用户无密码访问repmgr数据库的,所以上面创建用户的时候没有设置密码,trust就是这个意思,还有其他的配置项可以看配置文件里的解释。repmgrd 作为运行在集群中每个节点上的一个管理和监控的守护程序,可以自动进行故障转移和维护复制关系,并提供有关每个节点状态的监控信息。到此已经完成了pg的主从搭建,目前也可以故障转移,但是需要手动操作,后面接着部署repmgr自动故障切换。下面安装的是14匹配的repmgr,如果是其他版本把14换成其他版本即可。

小新没有蜡笔 1642

PG基于repmgr实现自动和手动故障切换

PG基于repmgr实现自动和手动故障切换 1、准备机器(1主2从1withness) 主库 [root@wcbpg ~]# docker rm -f wcbrepmgr64361 [root@wcbpg ~]# docker run -d --name wcbrepmgr64361 -h wcbrepmgr64361 \ --net=pg-network --ip 172.72.6.61 \ -p 64361:5432 \ -v /sys/fs/cgroup:/sys/fs/cgroup \

2176

基于 repmgr 的 PostgreSQL 15 高可用方案

以下是在 CentOS 7 系统环境中,基于 repmgr 的 PostgreSQL 15 高可用方案,使用 keepalived 配置 VIP 并包含单独仲裁节点的详细步骤:一、环境准备。

程序我世界 823

PostgreSQL+repmgr高可用部署

REPMGR 是一套在PostgreSQL服务器集群中用于管理复制和故障转移的开源工具。它支持并增强了PostgreSQL的 内置流式复制,提供单个读/写主服务器 以及一个或多个只读备用数据库,其中包含主数据库的近实时副本服务器的数据库。操作系统:Scientific Linux release 7.9 (Nitrogen)PostgreSQL版本:PostgreSQL 15.1。repmgr版本:repmgr-5.3.3。

PostgreSQL China 2220

【PG高可用】三 PostgreSQL高可用之自动故障转移-repmgrd

repmgrd的功能:丰富的配置管理方便自定义脚本见证服务器多数据中心多种探活方式监控统计数据2 repmgrd 设置和配置repmgrd是一个守护进程,在每个 PostgreSQL 节点上运行,当运行在主节点上时可以监视本地节点,当运行在从节点上 可以监控它所连接的上游节点(上游节点可以是:主节点或级联复制的另一个中间节点)。rempgrd可以配置为在主节点或上游节点变得无法访问时提供故障转移功能,向repmgr 元数据库提供监控数据。

DBA之路的博客 2184

postgresql中故障切换,主从切换,从(备)库升主

postgresql主从切换,promote,pg_rewind的使用,

weixin_73350116的博客 2620

ESP32连接PDM麦克风操作指南:新手入门必看

手把手教你如何将ESP32与PDM麦克风连接,采集音频数据并用于音频分类应用。内容涵盖硬件接线、代码配置及实际调试技巧,适合初学者快速上手esp32在声音识别场景中的使用。

weixin_42590539的博客 1329

PostgreSQL一主两从实现及主从切换

HA 实现方式: 热备份、冷备份 冷备份:物理备份,也就是文件复制。主机写完一个WAL日志文件后,才复制到standby服务器上去应用。 热备份:流复制,也就是同步复制或异步复制。主备机实时同步。 一主两从操作步骤: 在三台机器分别按照步骤1-4安装pg数据包 1、 安装 ./configure –prefix=/usr/pgsql9.3.4 –wit

fjgui的博客 1万+

2025东方财富笔试考什么?cata能力测评攻略|答题技巧真题分享

4月10日-4月20日 专业笔试(行测+金融知识混合双打) 4月25日-5月10日 面试车轮战(AI面+半结构化+压力面) 5月15日起 Offer发放(谈薪必杀技:对标同花顺/雪球)这里不仅是金融极客的乐园,更是**“年薪30万管培生计划”**的主战场——你将用代码重构K线,用算法预判市场,成为资本市场的“数字先知”。东方财富,中国金融信息服务领域的“隐形冠军”,以**“金融数据+互联网”双擎驱动**,打造了覆盖证券、基金、期货的全生态交易平台。:• “我总坚持自己的方案”(HR:团队毒药!

Dgntsj的博客 3262

DTW Barycenter Averaging(DBA)——平均序列求法

DBA该算法是用来求序列数据集SS的一致序列(平均序列)。由Franc-ois Petitjean提出的。目前,该方法求得的平均序列是最准确的。 假设一元组为S={s1,s2,⋯,sn}S={s1,s2,\cdots,sn},当SS中的元素为实数时,很容易求的SS的平均值: avg=s1+s2+⋯+snn(1) avg = \dfrac{s1 +s2+\cdots+sn}{n} \qquad\q

光怪陆离 1万+

Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作

postgresql 的yum部署其实还是有点东西的,本文就做一个小小的记录,高可用方面repmgr插件还是非常不错的,但如何部署以及部署后如何使用也是一个难点,因此,也在本文里做一个记录 环境介绍: 第一台服务器:操作系统是centos7,内核版本是3.10,IP地址是192.168.123.17 VMware虚拟机,内存4G,cpu4核,计划在此服务器上安装postgresql12.4版本以及repmgr高可用插件。该服务器是主节点 第二台服务器:操作系统是centos7,内核版本是3.10,I

zsk_john的技术分享专用博客 1669

无人机基本组成部件

无人机基本组成部件

qq_37410522的博客 1万+

PostgreSQL教程:主从(主备)故障切换

其实主从的本质就是从节点去主节点不停的备份新的数据。切换就是原主追加上述配置,原从删除上述配置1、主从节点全部stop停止:………………2、原从删除上述配置:…………3、原从新主启动服务:………4、原主新从去原从新主备份一次数据:pg_basebackup操作,同时做解压,然后修改postgresql.conf文件以及standby.signal配置文件5、启动原主新从查看信息。

学亮编程手记 2421

CloudCompare二次开发(1)——获取指定高程的所有点

使用CloudCompare插件实现获取点云数据中指定高程的所有点。

点云侠的博客 4735

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 364

Postgresql基于repmgr(1主2从+1witness)实现自动和手动故障切换的集群安装

root@localhost ~]#yum list installed | grep docker#查看是否已安装docker列表[root@localhost ~]#yum -y install docker#安装[root@localhost ~]#systemctl start docker#启动[root@localhost ~]#systemctl enable docker#开机启动[root@localhost ~]#systemctl status docker#查看状态。

qq_39169917的博客 1737

基于STM32设计的水下水质检测装置(微信小程序)(205)

本项目设计了一款基于STM32微控制器为核心的水下水质检测设备,该设备具有高度集成化、智能化的特点,能够实时监测水深、温度、浊度及溶解性总固体(TDS)等关键水质参数,并通过4G网络将数据上传至腾讯云IOT物联网平台,实现远程监控和数据分析。同时,为了便于操作和移动观测,还配套开发了微信小程序,用户可通过微信小程序实时查看并控制设备的各项功能,如调整下潜深度等。

1253

keepalived实现postgresql主从切换

主 keepalived配置文件 [root@bgsbtsp0006-dqf:keepalived]# cat keepalived.conf ! Configuration File for keepalived vrrp_script check_pg_alived { script "/etc/keepalived/scripts/check_pg.sh" ...

wyl9527的博客 2238

8.26华为OD机试真题 新系统 - 字符串回文判 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 字符串回文判 (Java/Py/C/C++/Js/Go)

算法大师! 1244

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

postgresql13部署主从同步和切换+pg_rewind

环境:DB:13.8主库:192.168.1.134从库:192.168.1.135参考网站:https://www.cnblogs.com/hxlasky/p/16810443.html################主从部署######################切换root用户 su root#此配置置于ipv4## 新增的,我这里整个网段开放或是具体指定ip## 具体指定ip需要重新reload,否则报错连接不了3.停掉从库从库准备data目录。

qq_39169917的博客 4121

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PG数据库使用repmgr自动切换

若想要实现高可用集群的自动故障转移,就必须使用repmgrd的守护程序,用来监控和记录复制集群信息、检测集群复制故障并决策选出最佳服务器并提升为主服务器,启动repmgrd的同时需要我们在PostgreSQL数据库中添加repmgr的共享库。修改后重启PG。

一个老Java开发的自白 505

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Postgresql 主从复制+主从切换(流复制)及各种问题处理

postgresql主从复制及相关问题解决

ziqibit的博客 4734

【postgresql】repmgr 自动 switchover 切换

2.关闭主库,模拟主库异常。

weixin_43346403的博客 508

PostgreSQL故障转移和自动切换

在Switchover过程中,首先将备用数据库升级为主数据库,然后将原主数据库切换为备用数据库。在Failover过程中,系统会自动检测主数据库的故障,并将备用数据库切换为新的主数据库。在升级过程中,系统会将原主数据库切换为备用数据库,并将原主数据库作为新的备用数据库。在切换过程中,系统会将原主数据库标记为故障,并将备用数据库升级为新的主数据库。系统定期检测主数据库的状态,如果主数据库无法正常访问或响应,将判断主数据库发生故障。可以监控主数据库的状态,并在主数据库发生故障时自动切换为备用数据库。

互联网知识分享 1792

如何四步玩透 LX Music:五音源聚合搜索、免费试听与批量下载

LX Music 是一个基于 Electron + Vue 3 的开源桌面音乐播放器(Apache 2.0 协议),把酷我、酷狗、QQ 音乐、网易云、咪咕五个音源的搜索与试听收进同一个窗口,免费播放最高支持 flac24bit 音质,并能把喜欢的歌批量下载到本地。本文按"先跑通、再入库、后扩展"的动线带你走完四步:出第一首歌 → 存下曲库 → 定制界面 → 连进设备,全程照着做即可。 ## 🎵

gitblog_00036的博客 445
上一篇: 多台虚拟机ssh配置免密后还是提示需要密码问题
下一篇: 关于sql使用MybatisPlus导致mysql5.7占用100%服务器cpu事件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值