Postgres 11.4 pg_basebackup P
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,报错截图:pg_basebackup: could not get write-ahead log end position from server: ERROR: could not open fi
千家信息网最后更新 2026年11月01日Postgres 11.4 pg_basebackup P
报错截图:
pg_basebackup: could not get write-ahead log end position from server: ERROR: could not open file "./.postgresql.conf.swn": Permission denied
一、环境准备:【生产环境】1、Master PG host IP :172.17.16.16 host name:hkzbxdb1Standby PG host IP:172.17.16.18 host name:hkzbxdb22、PG Cluster 理想环境是版本一致,所以主备库版本如下:3、停止Firewalls防火墙【主备机】、初始化PG数据库【主备机】、iptables规则配置【假如你用到/主备】;4、Master host 配置:pg_hba.conf 和postgresql.conf;创建replication role账户repl;文件路径:/var/lib/pgsql/11/data/pg_hba.conf配置pg_hba.confkeepalives 参数非必须,主要是监控TCP连接状态使用;/var/lib/pgsql/11/data/postgresql.conf 配置流复制功能WAL归档这部分可以不用配置,当然也可以采用"流复制+WAL连续归档"的容灾方案;
这几个replication参数比较重要,可以根据自己的需求调整参数值,更多详细信息建议参考官网文档https://www.postgresql.org/docs/11/warm-standby.html:备注:"WAL知识点参考信息,来自PG官网"至此,环境准备完毕。二、理论准备 启动流复制 在Streaming Replication中,三种进程协同工作。甲walsender主服务器上的过程发送WAL数据到备用服务器; 然后,备用服务器上的walreceiver和启动进程接收并重放这些数据。walsender和walreceiver使用单个TCP连接进行通信。 流复制的启动顺序图:(1)启动主服务器和备用服务器。(2)备用服务器启动启动过程。(3)备用服务器启动walreceiver进程。(4)walreceiver向主服务器发送连接请求。如果主服务器未运行,则walreceiver会定期发送这些请求。(5)当主服务器收到连接请求时,它启动walsender进程并在walsender和walreceiver之间建立TCP连接。(6)walreceiver发送备用数据库集群的最新LSN。一般而言,这一阶段被称为信息技术领域的握手。(7)如果备用的最新LSN小于主要的最新LSN(备用的LSN <主要的LSN),则walsender将WAL数据从前LSN发送到后一个LSN。这样的WAL数据由存储在主要的pg_xlog子目录(版本10或更高版本,pg_wal子目录)中的WAL段提供。然后,备用服务器重放接收的WAL数据。在此阶段,备用数据库赶上主数据库,因此称为追赶。(8)流复制开始起作用。每个walsender进程保持适合连接的walreceiver或任何应用程序的工作阶段的状态(请注意,它不是连接到walsender的walreceiver或应用程序的状态。)以下是它的可能状态:启动 - 从启动walsender到握手结束。见图。(5) - (6)。追赶 - 在追赶阶段。见图(7)。流 - 虽然流复制正在运行。见图(8)。backup - 在为pg_basebackup实用程序等备份工具发送整个数据库集群的文件期间。该pg_stat_replication视图显示所有正在运行的walsenders的状态。一个例子如下所示: 三、"ERROR: could not open file "./.postgresql.conf.swn": Permission denied",解决思路; 1、根据报错提示查找文件及路径; # locate .postgresql.conf.swn /var/lib/pgsql/11/data/.postgresql.conf.swn 2、根据搜索结果,查看/var/lib/pgsql/11/data/l路径下的所有文件【含隐藏】及权限; # ls -la /var/lib/pgsql/11/data/ 正确的权限如下截图,可以对比看,如果不匹配修改对应红色框内的权限 3、权限修改命令 # chmod -R 700 /var/lib/pgsql/11/data 变更data及子目录文件权限为RWX # chgrp -R postgres /var/lib/pgsql/11/data 变更data及子目录文件所属组为postgres # chown -R postgres /var/lib/pgsql/11/data 变更data及子目录文件所有者为postgres 4、以上是针对MAster Host修改;需要注意的是修改完毕之后记得重启PG服务器或系统; 5、在Standby Host主机上登录postgres账户,然后执行pg_basebackup命令从主库异步复制PG数据资料; #su - postgres 从ROOT或其他账户切换到postgres账户 # pg_basebackup -D $PGDATA -Fp -Xs -v -P -h 172.17.16.16 -p 5432 -U repl "备注:A.至此,正常的情况是,你可以在/var/lib/pgsql/11目录下看到data文件变大,且data下的文件和主库保持一致; B.如果,你在执行pg_basebackup 命令后,提示:"/var/lib/pgsql/11/data"存在且不为空,那么你需要执行C,然后重新执行pg_basebackup命令. C.执行,备份原data并新建data,Command: #mv /var/lib/pgsql/11/data /var/lib/pgsql/11/data_back #mkdir /var/lib/pgsql/11/data " 6、备库重启PG服务,然后对比主从库信息会发现此时两边数据库信息是一致的,"问题解决".
服务
数据
服务器
备用
文件
数据库
信息
子目
子目录
权限
状态
进程
配置
命令
版本
环境
账户
阶段
一致
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
科技金融是不是互联网金融
狮子座互联网科技
广州善班互联网科技
兼蜜互联网科技
互联网科技公司介绍
互联网科技素材视频竖屏
中国的互联网科技企业的崛起
互联网金融科技公司干啥的
栖莱科技互联网股份有限公司
互联网还是高科技吗
长沙茂晟互联网科技有限公司
山东星卡互联网科技有限公司官网
上海互联网科技公司ppt
互联网科技新闻
互联网高科技绘画
中国主要互联网科技公司
每日互联网科技新闻
山东亿川互联网科技有限责任公司
如何强化互联网金融科技
亿人帮互联网科技有限公司
互联网科技排名
菲比寻常互联网科技
海南科技产业互联网平台
互联网科技产业特征
互联网科技如何创业
下一代互联网重大应用科技园
国产互联网科技公司
杭州融税互联网科技有限公司
宁波允成互联网科技有限公司