Postgresql主从配置

主从机器先安装Postgresql

安装postgresql:
postgresql 最新版
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
sudo apt update

sudo apt install postgresql

主服务器设置密码:
sudo -u postgres psql

以下内容内容都是在 postgres=# 下输入
ALTER USER postgres WITH PASSWORD '123456'; # 密码设置为123455,有分号才会执行命令

也可以在主服务器创建专门复制的用户
create user replica login replication password 'replica';

\q #退出客户端

主从都要设置,将来可能会要主从切换:

postgresql远程访问:
vim /etc/postgresql/版本号/main/postgresql.conf
listen_addresses = '*'
wal_level = replica
fsync = on
max_wal_senders = 10 # 从服务器数量
synchronous_commit = on
wal_sender_timeout = 60s
hot_standby = on

vim /etc/postgresql/版本号/main/pg_hba.conf
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5

主服务器重启服务
systemctl restart postgresql

从数据库停库
systemctl stop postgresql

删除从服务器数据库
cd /var/lib/postgresql/版本号/main
rm -rf *

基础数据备份

一定要进入到postgres用户里面如:
su - postgres
postgres@localhost:~$ pg_basebackup -h 192.168.137.129 -D /var/lib/postgresql/版本号/main -U replica -P -v -R -X stream -C -S pgstandby (开始基础备份,一个从服务器一个复制槽)
输入密码:replica
-h –指定作为主服务器的主机。
-D –指定数据目录。
-U –指定连接用户。
-P –启用进度报告。
-v –启用详细模式。
-R–启用恢复配置的创建:创建一个standby.signal文件,并将连接设置附加到数据目录下的postgresql.auto.conf。
-X–用于在备份中包括所需的预写日志文件(WAL文件)。流的值表示在创建备份时流式传输WAL。
-C –在开始备份之前,允许创建由-S选项命名的复制插槽。
-S –指定复制插槽名称(一台从服务器一个)。

设置standby.signal

vim standby.signal

开启从节点备份
standby_mode = 'on'

systemctl start postgresql

查看主从信息

查看从节点是否有t1表
主节点添加一行数据,从节点再查询,可以看到最新的数据
从节点无法完成写操作,他是只读模式
主节点查看从节点信息
select * from pg_stat_replication

从节点查看主节点信息
select * from pg_stat_wal_receiver

主从切换
其实主从的本质就是从节点去主节点不停的备份新的数据。

配置文件的系统其实就是两个:

standby.signal文件,这个是从节点开启备份
postgresql.auto.conf文件,这个从节点指定主节点的地址信息
切换就是原主追加上述配置,原从删除上述配追

1、主从节点全部stop停止

2、原从删除上述配置

3、原从新主启动服务

4、原主新从去原从新主备份一次数据:pg_basebackup操作,同时做解压,然后修改postgresql.conf文件以及standby.signal配置文件

5、启动原主新从查看信息

posted @ 2025-10-09 18:11  任锋  阅读(88)  评论(0)    收藏  举报