立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 1833|回复: 0

[通用使用教程] postgresql13主从搭建Ubuntu

[复制链接]

57

主题

0

回帖

1011

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1011
发表于 2023-2-18 10:03:43 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

您需要 登录 才可以下载或查看,没有账号?立即注册

x

这篇文章主要为大家介绍了postgresql13主从搭建Ubuntu实现过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助!

先安装完数据库以后,安装路径如下:

数据库安装完毕以后,

服务的安装路径为:/usr/lib/postgresql/13/bin/
数据路径为:/var/lib/postgresql/13/main/
配置文件路径为:/etc/postgresql/13/main/
pg_hba.config路径为:/etc/postgresql/13/main/postgresql.conf# postgres用户密码修改#修改postgres密码为123456passwd postgres#在输入密码的位置输入密码123456#切换到postgres用户su - postgres#修改数据库账号postgres的密码为123456psql -c "alter user postgres with password '123456';"exit设置环境变量vi /etc/profile在最后增加export PGDATA=/var/lib/postgresql/13/main/export PATH=$PATHHOME/binPGDATA:/usr/lib/postgresql/13/bin保存后,使环境变量立即生效source /etc/profile 01.jpg
#设置允许远程连接#编辑postgresql.conf配置文件vi /etc/postgresql/13/main/postgresql.conf#增加允许任何用户连接,新增 listen_addresses = '*'#设置从库复制槽名称为pgstandby1,设置了复制槽名称以后,复制流将由异步变为同步synchronous_standby_names = 'pgstandby1'#保存修改Esc:wq

02.jpg 03.jpg
#修改配置文件pg_hba.conf,设置访问规则#编辑pg_hba.conf配置文件vi /etc/postgresql/13/main/pg_hba.conf#新增 host all all 0.0.0.0/0 md5 访问规则,并修改加密方式为md5(设置允许任何客户端远程连接)#新增 hostreplication replica 192.168.31.130/32   trust(设置允许replica用户由主库复制到从库,其中ip为从库的ip)#保存修改Esc:wq 04.jpg 主库创建流复制的用户su - postgrespsql -c "CREATE ROLE replica login replication encrypted password 'replica'";exit;systemctl restart postgresql

至此,主库设置就完成了,介于将来主库、从库会进行提级和降级操作或者主从互换操作,所以建议对从库也进行相同的主库设置

从库设置+从主库进行数据流复制pg_basebackup -h 192.168.31.129 -D $PGDATA -U replica -P -X stream -R -C -S pgstandby1

其中:

-h指向主库的ip,

-D指数据从主库复制到从库的路径

-U指用户名,即从库以replica的用户进行流复制

-P表示显示流复制的过程

-X表示复制方式,stream表示以流的方式进行

-R表示创建一个standby.signal文件,该文件作为一个从库的标识文件,存在此文件,则表示从库

-C指定在启动备份之前应创建由--slot选项命名的复制插槽。如果插槽已存在,则会引发错误。即pgstandby1表示插槽的名称。主库、备库指定插槽名称后,流复制为同步复制,否则为异步复制。

从库进行数据流复制之后,重启从库,主从模式正式工作systemctl restart postgresql

注:Ubuntu上使用仓库安装的postgresql从库启动,必须要使用systemctl重启,无法通过pg_ctl进行。

这时,就可以看到备库服务器上自动生成了standby.signal文件。同时,也看到在$PGDATA路径下,数据库自动帮我们配置了关于流复制的主库的信息:

$ cat $PGDATA/postgresql.auto.conf# Do not edit this file manually!# It will be overwritten by the ALTER SYSTEM command.#primary_conninfo = 'user=replica passfile=''/var/lib/postgresql/.pgpass'' channel_binding=prefer host=192.168.31.129 port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'primary_conninfo = 'user=replica host=192.168.31.129 port=5432 application_name=pgstandby1'primary_slot_name = 'pgstandby1'查看主从运行状态

主从搭建后,主库运行状态为: ps -ef|grep postgres

05.jpg

可以看到有一个walsender在向从库发送

从库运行状态为:
06.jpg

可以看到有一个walreceiver在接收数据,startup recovering 000000030000000000000030也是从库的标识

通过SQL语句查看主从信息:

select * from pg_stat_replication;select application_name, client_addr, sync_state from pg_stat_replication;//查询复制插槽名称SELECT * FROM pg_replication_slots//下面这句话是删除pgstandby1复制插槽的语句select pg_drop_replication_slot('pgstandby1');主备切换备->主#在备库下执行命令pg_ctl promote主->备# 在数据库的数据路径下$PGDATA,新增一个standby.signal文件touch standby.signal同时,也看到在$PGDATA路径下,编辑postgresql.auto.conf的主库的信息:$ vi $PGDATA/postgresql.auto.conf# Do not edit this file manually!# It will be overwritten by the ALTER SYSTEM command.primary_conninfo = 'user=replica host=192.168.31.130 port=5432 application_name=pgstandby1'primary_slot_name = 'pgstandby1'wq#重启新备库启动systemctl restart postgresql
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程 ( 皖ICP备15000319号-1 )

GMT+8, 2024-12-20 14:31

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

快速回复 返回顶部 返回列表