暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

PostgreSQL问答-第20221028期

原创 多米爸比 2022-10-28
1063

Q1.PostgreSQL里recovery模式和standby模式有什么区别?

问题描述

PostgreSQL里经常能看到recovery模式和standby模式,这两种模式有什么区别呢?

问题解答

recovery模式是一种恢复应用WAL的过程状态,standby模式是主从架构下的一种只读模式,可以提供查询。

Q2.PostgreSQL里是否可以单独做归档备份?

问题描述

PostgreSQL备份数据除了使用pg_basebackup进行基础备份以外,是否可以只备份归档文件,从而节省磁盘空间呢?

问题解答

可以使用pg_receivewal的工具在线备份wal起到虚拟备库的功能,它比使用归档命令备份WAL更加安全,也不需要等待WAL文件写满。该工具基于流复制协议流式传输WAL,当服务器重启时不会发生数据丢失或数据损坏,并且搭配-Z/–compress压缩选项更适合。

Q3.使用pg_cron定时任务插件时,为什么任务延迟了8个小时呢?

问题描述

我的定时任务使用了pg_cron插件,发现任务都延时了8个小时,为什么呢?

问题解答

pg_cron插件采用GMT时间,数据库的时区不一致因此体现出延迟。

Q4.参数allow_in_place_tablespaces有什么作用?

问题描述

PostgreSQL 15包括14.5, 13.8, 12.12, 11.17, 10.22新增了allow_in_place_tablespaces参数,它有什么作用,使用场景是什么呢?

问题解答

该参数可以开启表空间的"in place"功能,数据直接存储在pg_tblspc目录里面,在一些开发测试场景能比较方便的处理自定义表空间的问题,尤其是在同一台机器上。

例如当我们使用pg_basebackup做备份时,可能会遇到如下错误

$ pg_basebackup --pgdata=datarec
pg_basebackup: error: directory "/home/postgres/test_spc1" exists but is not empty
pg_basebackup: removing data directory "datarec"

基础备份拷贝PGDATA时也对pg_tblspc用户自定义表空间符号链接进行拷贝,同一台机器上会有冲突。

因此需要使用–tablespace-mapping选项来进行表空间目录映射:

$ pg_basebackup --pgdata=datarec \
--tablespace-mapping=/home/postgres/test_spc1=/home/postgres/test_spc2 

多个用户自定义表空间需要多次使用–tablespace-mapping进行映射。

下面打开allow_in_place_tablespaces参数

postgres=# ALTER SYSTEM SET allow_in_place_tablespaces TO true;
ALTER SYSTEM

postgres=# SELECT pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)

然后创建表空间时location设置为空

postgres=# create tablespace myspace location '';
CREATE TABLESPACE

此时直接在pg_tblspc里面生成表空间文件目录来存储数据。

$ ls -l /opt/pgdata1405/pg_tblspc/
total 0
drwxr-x--- 3 postgres dba 29 Oct 26 12:02 623641

Q5."oldest xmin is far in the pass"这个告警信息是什么原因引起?

问题描述

数据库日志中大量出现"oldest xmin is far in the pass"的告警信息,是什么原因引起呢?

问题解答

经过排查分析得知数据库中存在失效的逻辑复制槽,导致autovacuum不能及时回收旧事务,致使WAL日志占据的磁盘空间越来越大。大量的warning事件也引起数据库日志文件迅速增长,日志占据的磁盘空间也越来越大。

解决方案:与业务确认复制槽使用情况,如需继续使用,需要立即进行修复。如确认不再使用,及时使用pg_drop_replication_slot函数删除。

最后修改时间:2022-10-28 20:57:46
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论