15-Master-Slave_Switch是什么工作原理?

摘要:Master-Slave_Switch 主从切换的配置文件简单而言就两个, standby.signal:这个是从节点开启备份 postgresql.auto.conf:指定主节点的信息 停服切换 切换的话,就是主节点追加上述配置,从节点删
Master-Slave_Switch 主从切换的配置文件简单而言就两个, standby.signal:这个是从节点开启备份 postgresql.auto.conf:指定主节点的信息 停服切换 切换的话,就是主节点追加上述配置,从节点删除以上配置。 先停止主库 原来的主节点 添加 standby.signal空文件即可 修改 postgresql.auto.conf # 主ip是100,从是101.现在切换主是101.从是100 primary_conninfo = 'user=repuser password=RepPass123! host=192.168.1.101 port=5432 sslmode=prefer sslcompression=0 gssencmode=disable krbsrvname=postgres target_session_attrs=any' 原来的从节点 删除standby.signal rm -rf standby.signal 修改postgresql.auto.conf,删除所有的内容。 之后启动各个节点(先启动主库),我们的主从节点就进行了切换。 不停服切换 # 1. 在原从库提升为主库 sudo -u postgres /usr/pgsql/bin/pg_ctl promote -D /var/lib/pgsql/data # 2. 在原主库重新配置为从库 sudo systemctl stop postgresql # 创建必要的配置文件 sudo -u postgres cat > /var/lib/pgsql/data/postgresql.auto.conf << EOF primary_conninfo = 'user=repuser password=RepPass123! host=192.168.1.101 port=5432' EOF sudo -u postgres touch /var/lib/pgsql/data/standby.signal # 或者使用更简单的命令 sudo -u postgres pg_rewind \ --target-pgdata=/var/lib/pgsql/data \ --source-server="host=新主库IP user=postgres" # 启动从库 sudo systemctl start postgresql-14 示例 现在有两台机子 名称 身份 Ip p1 主节点 192.168.1.10 p2 从节点 192.168.1.20 模拟故障。直接对p1进行关机。 这时候我们需要将p2提升为主节点 # 切换到postgres用户 su - postgres # 提升为主节点 pg_ctl promote -D /var/lib/pgsql/data 然后p1电脑恢复正常,需要接入服务称为从节点 # 切换用户 su - postgres # 关闭服务 pg_ctl stop -D /var/lib/pgsql/data # 切换到从节点 sudo -u postgres pg_rewind \ --target-pgdata=/var/lib/pgsql/data \ --source-server="host=192.168.1.20 user=postgres" pg_ctl start -D /var/lib/pgsql/data