自己怎么做机构网站,山东网站建设市场,企业培训机构排名前十,黄骅港口1. 如果使用docker搭建请移步 Docker 启动 PostgreSQL 主从架构#xff1a;实现数据同步的高效部署指南_docker安装postgresql主从同步-CSDN博客
2. 背景
pgsql版本#xff1a;PostgreSQL 14.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4… 1. 如果使用docker搭建请移步 Docker 启动 PostgreSQL 主从架构实现数据同步的高效部署指南_docker安装postgresql主从同步-CSDN博客
2. 背景
pgsql版本PostgreSQL 14.13 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit服务器 centos7
3. pgsql安装脚本
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL:
sudo yum install -y postgresql14-server# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
4. 主库配置
登录修改管理员progres密码
登录方式1
#postgres权限登录
su - postgres
#输入 psql
-bash-4.2$ psql
#用户 postgres 的口令
psql (14.2)
输入 help 来获取帮助信息.postgres#登录方式2
psql -U postgres -h 主机IP --port 58063修改postgresql.conf
vim /var/lib/pgsql/14/data/postgresql.conf # 修改监听地址
listen_addresses *port 5432
2. 修改pg_hba.conf
vim /var/lib/pgsql/14/data/pg_hba.conf末尾添加 host all all 0.0.0.0/0 scram-sha-2563. 重启数据库
sudo systemctl restart postgresql-144. 开放防火墙端口号
firewall-cmd --permanent --add-port5432/tcp
firewall-cmd --reload
如果使用云服务器需要配置云服务器的防火墙开放5432端口号
5. 创建流复制账号
CREATE ROLE replication login replication encrypted password replication的密码;
6. 编辑postgresql.conf
# 新增或修改下列属性设置
# 监听所有IP
listen_addresses *
# 开启归档
archive_mode on
#归档命令
archive_command test ! -f /var/lib/pgsql/14/data/pg_wal/%f cp %p /var/lib/pgsql/14/data/data/pg_wal/%f
# 9.6开始没有hot_standby热备模式
wal_level replica
#最多有2个流复制连接
max_wal_senders 10
wal_keep_size 16
#流复制超时时间
wal_sender_timeout 60s
# 最大连接数据说从机需要大于或等于该值
max_connections 300归档目录根据自己的实际情况配置需要提前检查是否存在wal日志所在目录我使用版本路径为/var/lib/pgsql/14/data/pg_wal/ 有些版本为/var/lib/pgsql/14/data/wal_archive
7. 编辑pg_hba.conf增加从机IP
host replication replication 从机IP/32 scram-sha-256
host replication replication 从机IP/32 trust8. 重启数据库
sudo systemctl restart postgresql-14
从库配置
1、验证在从库是否可以访问主节点
psql -U postgres -h 主机IP --port 5432
2. 停止服务器
systemctl stop postgresql-14.service
3. 清空从库数据存储文件夹
rm -rf /var/lib/pgsql/14/data/*
4. 从主服务器上copy数据到从服务器基础备份
pg_basebackup -h 主库IP -U replica -D /var/lib/pgsql/14/data --write-recovery-conf --progress --verbose
//授权文件夹
chown -R postgres:postgres /var/lib/pgsql/14/data
chmod 700 /var/lib/pgsql/14/data注意需要验证是否能正常启动数据库
5、此时data目录下会出现standby.signal文件编辑文件
## 加入
standby_mode on6、修改postgresql.conf文件
# 监听所有IP
listen_addresses *
# 端口号
port5432
#从机信息和连接用户
primary_conninfo host主节点IP port5432 userreplication passwordreplication用户的密码
#说明恢复到最新状态
recovery_target_timeline latest
#大于主节点正式环境应当重新考虑此值的大小
max_connections 120
#说明这台机器不仅用于数据归档还可以用于数据查询
hot_standby on
#流备份的最大延迟时间
max_standby_streaming_delay 30s
#向主机汇报本机状态的间隔时间
wal_receiver_status_interval 10s
#r出现错误复制向主机反馈
hot_standby_feedback on7. 重启数据库
sudo systemctl restart postgresql-14
5. 验证主从搭建是否成功
select client_addr,sync_state from pg_stat_replication;