首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL:甚至读取访问更改数据文件磁盘,导致使用pgbackrest进行大量增量备份。

PostgreSQL:甚至读取访问更改数据文件磁盘,导致使用pgbackrest进行大量增量备份。
EN

Stack Overflow用户
提问于 2021-02-16 15:54:16
回答 1查看 168关注 0票数 2

我们正在使用pgbackrest将数据库备份到Amazon。我们每周备份一次,每隔一天进行一次增量备份。我们数据库的大小大约是1TB,完整备份大约是600 an,增量备份也是大约400 an!

我们发现,即使是数据库上的read (纯select语句)也会导致底层数据文件(in /usr/local/pgsql/ data /base/xxxxxx)发生变化。这导致了大量的增量备份,也导致了亚马逊S3上非常大的存储(成本)。

通常,低索引名(例如391089.1)的文件在读取访问时会发生变化。

在更新时,我们看到一个或多个文件中的更改-索引可能与表中行的年龄相关。

更多的事实:

  • Postgres版本13.1
  • 数据库正在码头容器中运行(停靠版本20.10.0)
  • OS是CentOS 7

我们在多台服务器上看到了这种现象。

有人能解释一下,为什么postgresql会在纯读取访问上更改数据文件?我们在纯数据库上进行测试,而没有任何其他资源访问数据库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 16:34:24

这很正常。我可以马上想到的一些案例是:

  • a SELECT或其他设置提示位的SQL语句

对于访问数据的后续语句来说,这是一个快捷方式,因此它们不再需要查询提交日志。

  • a SELECT ... FOR UPDATE编写行锁

  • 自动真空删除死行版本

这些是来自UPDATE.或DELETE的剩菜

  • 自动真空冻结旧的可见行版本

如果事务ID计数器环绕在.周围,这对于防止数据损坏是必要的。

防止PostgreSQL在将来修改表的唯一方法是:

  • 从不在it

上执行INSERTUPDATEDELETE

  • 在表上运行VACUUM (FREEZE)并确保没有并发的VACUUM (FREEZE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66227766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档