首页 > 解决方案 > postgresql 复制的大小太大

问题描述

postgresql 10.14@ubuntu18.04

我有主数据库和复制数据库。问题是包含复制的目录的大小太大。另一方面,大约 7TB 包含主要的目录是 1.5TB。但是这些目录内部的 du 调查结果看起来是一样的。只有目录的大小不同,我找不到是什么原因。

du的结果如下。

对于主数据库

du -sh database
1.5T    database

用于主要内部数据库

du -sh *
4.0K    PG_VERSION
1.5T    base
456K    global
4.0K    pg_commit_ts
4.0K    pg_dynshmem
16K pg_logical
28K pg_multixact
12K pg_notify
12K pg_replslot
4.0K    pg_serial
4.0K    pg_snapshots
4.0K    pg_stat
4.0K    pg_stat_tmp
12K pg_subtrans
4.0K    pg_tblspc
4.0K    pg_twophase
273M    pg_wal
80K pg_xact
4.0K    postgresql.auto.conf
4.0K    postmaster.opts
4.0K    postmaster.pid

用于复制数据库

du -sh database
7.2T    database

用于复制

du -sh *
4.0K    PG_VERSION
1.5T    base
456K    global
4.0K    pg_commit_ts
4.0K    pg_dynshmem
16K pg_logical
28K pg_multixact
12K pg_notify
12K pg_replslot
4.0K    pg_serial
4.0K    pg_snapshots
4.0K    pg_stat
4.0K    pg_stat_tmp
12K pg_subtrans
4.0K    pg_tblspc
4.0K    pg_twophase
5.8T    pg_wal
80K pg_xact
4.0K    postgresql.auto.conf
4.0K    postmaster.opts
4.0K    postmaster.pid
4.0K    recovery.conf

有什么办法可以查出是什么原因?如何减少复制的数据大小?谢谢!

标签: postgresqlreplication

解决方案


5.8T pg_wal

我想你已经找到原因了。

当您设置副本时,您可能复制了 pg_replslot 目录,这是您不应该做的。所以现在副本正在等待它自己的级联副本连接到它读取它正在保存的 WAL,但是没有副本可以这样做。删除副本上的该目录并重新启动副本。

或者,也许您将archive_mode 设置为always,但您的archive_command 不适用于副本。


推荐阅读