两节点流复制
1.1 搭建pg数据库
1)对系统的参数SELinux设置,并关闭防火墙,安装rpm

2)安装rpm包相关的

3)创建目录和用户

4)初始化数据库,去软件安装目录,查看安装是否成功


5)登录数据库

1.2 流复制搭建
开始配置:
=============================================
vi postgres.conf
max_wal_senders=10 -- 可以配置多少个备库数量
hot_standby=on -- 如果设置为off的话备库不允许连接
listen_addresses='*'
1)创建一个复制用户

2)在2节点备份一个基础的库

3)查看备库的参数并启动数据库

4)查看主备关系

5)主库插入数据,并在备库查看
主库建表插入一条数据:

备库14上查看:

6)查看延时

7)查看主节点
如果返回为t备库,返回f为主库:

三节点流复制搭建
在原有得流复制上加一节点。
14主机执行 pg_basebackup基础备份与恢复:

#执行命令后,会自动 主库一些连接信息primary_conninfo写入备库postgresql.auto.conf,并注释掉这些内容:

配置postgresql.conf 下得参数primary_conninfo:

开启级联得备库,查看状态:

主13到备库14同步,14备到15备为异步:
主库:
Vi postgres.conf
synchronous_standby_names = 's1' # standby servers that provide sync rep
备库:
vi postgres.auto.conf
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'application_name=s1 user=u1 passfile=''/home/postgres/.pgpass'' channel_binding=prefer port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=disable krbsrvname=postgres target_session_attrs=any'
查看状态:
13主:

14备:

数据库大版本升级
3.1 pg_upgrade
1)安装13版本并将test数据迁移到14版本



2)安装14版本


[postgres@pg1 data]$ usr/pgsql-13/bin/pg_upgrade --old-datadir pgccc/pg13/data/ --new-datadir pgccc/pg14/data/ --old-bindir usr/pgsql-13/bin/ --new-bindir usr/pgsql-14/bin/ --check
There seems to be a postmaster servicing the new cluster.
Please shutdown that postmaster and try again.
Failure, exiting
[postgres@pg1 data]$ usr/pgsql-14/bin/pg_ctl -D pgccc/pg14/data -l logfile stop
waiting forserverto shut down.... done
server stopped
[postgres@pg1 data]$ /usr/pgsql-13/bin/pg_ctl -D /pgccc/pg13/data -l logfilestop
waiting forserverto shut down.... done
server stopped
[postgres@pg1 data]$
3)检查升级

4)正式得升级

5)升级完成检查

至此,pg_upgrade升级完成。
3.2 pg_dumpall
1)备份13版本得数据,并删掉之前升级14里得数据

2)将13版本得备份数据导入到14版本并检查


至此,pg_dumpall恢复完成。

本文作者:高 维(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




