
PG12.3 一机多实例集群部署
实验一:部署PG数据库 一机多实例
- 修改主机名:
主:
[root@myx01 ~]$ hostnamectl set-hostname db
从:
[root@myx03 ~]$ hostnamectl set-hostname db1
[root@myx04 ~]$ hostnamectl set-hostname db2
-
创建postres用户,免交互式设置密码
-
下载PG 源码包 [root@db ~]#wget -c https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz --no-check-certificate
-
用SCP工具将软件包上传到从库中去
-
解压 postgresql-12.3.tar.gz 包到 /home/postgres/ 目录下
-
递归授权
-
下载依赖包
-
查看隐藏文件
-
创建目录
[root@db /home/postgres]#mkdir -p /data/pg12 /data/pgdata5432 /data/pgdata5433 /data/pgdata5434 && chown postgres.postgres /data/pg12 /data/pgdata5432 /data/pgdata5433 /data/pgdata5434
-
切换用户,查看当前路径
-
切换到 postgresql-12.3/ > 初始化
[postgres@db ~]$cd postgresql-12.3/
[postgres@db ~/postgresql-12.3]$./configure --prefix=/data/pg12 --without-readline --without-zlib
[postgres@db ~/postgresql-12.3]$make -j 4 && make -j 4 install
- 查看初始化
- 添加环境变量
PGHOME=/data/pg12
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
- 刷新配置文件,使配置生效
- 查看当前目录使用情况
- 初始化 /data/pgdata5432/ 目录
- 查看当前目录使用情况,初始化是否完成
- 继续初始化另外2个实例,5433、5434
- 设置服务端口
[postgres@db ~]$vim /data/pgdata5432/postgresql.conf
port = 5432
listen_addresses = '*'
[postgres@db ~]$vim /data/pgdata5433/postgresql.conf
port = 5433
listen_addresses = '*'
[postgres@db ~]$vim /data/pgdata5434/postgresql.conf
port = 5434
listen_addresses = '*'
- PG 数据库常用命令
启动
pg_ctl -D /data/pgdata5432 -l logfile start
停止
pg_ctl -D /data/pgdata5432 -l logfile stop
重启
pg_ctl -D /data/pgdata5432 -l logfile restart
-
查看状态
-
启动另外两个数据库
-
查看数据库服务启动成功
实验二:配置PG数据库流复制
-
登录数据库 > 设置登录密码 > 创建流复制账户 ,赋予复制权限 , 并设置用户密码
-
设置登录时需要密码
[postgres@db ~]$vim /data/pgdata5432/pg_hba.conf
#新增一行内容最后
host replication replica 10.0.0.0/24 md5
#Shift + G #切换到文件末尾
- 重启5432数据库 > 停止5433,5434数据库 > 查看端口
- 备份 5433 数据库
压缩
[postgres@db ~]$tar cvf pgdata5433.tar.gz /data/pgdata5433
- 查看 > 删除 /data/pgdata5433/ 目录下所有内容 > 查看
- 备份 5434 数据库
压缩
[postgres@db ~]$tar cvf pgdata5434.tar.gz /data/pgdata5434
-
查看 > 删除 /data/pgdata5433/ 目录下所有内容 > 查看
-
将数据库 5432 同步到 5433 数据库中去
[postgres@db ~]$pg_basebackup -h 10.0.0.8 -p 5432 -D /data/pgdata5433 -U replica -P -v -R -X stream -C -S pgstandby1
- 查看同步文件
- 查看端口
- 将数据库 5432 同步到 5434 数据库中去
[postgres@db ~]$pg_basebackup -h 10.0.0.8 -p 5432 -D /data/pgdata5434 -U replica -P -v -R -X stream -C -S pgstandby2
- 查看同步文件
查看端口
[postgres@db ~]$cat /data/pgdata5434/postgresql.conf | grep ^port
- 修改5433 、 5434启动端口
[postgres@db ~]$vim +64 /data/pgdata5433/postgresql.conf
[postgres@db ~]$vim +64 /data/pgdata5434/postgresql.conf
- 启动数据库
[postgres@db ~]$pg_ctl -D /data/pgdata5433/ -l logfile start
[postgres@db ~]$pg_ctl -D /data/pgdata5434/ -l logfile start
- 查看启动情况
- 登录数据库 验证
postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication;
- 将 异步复制 改为 同步复制
[postgres@db ~]$vim +198 /data/pgdata5432/postgresql.conf
synchronous_commit = on
[postgres@db ~]$vim +300 /data/pgdata5432/postgresql.conf
synchronous_standby_names = 'walreceiver'
- 重启数据库
select usename , application_name , client_addr,sync_state from pg_stat_replication;
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 梦缘羲
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果