postgresql 复制的大小太大
postgresql replication have too much size
postgresql 10.14@ubuntu18.04
我有主数据库和复制数据库。
问题是包含复制的目录的大小太大。另一方面,大约 7TB 包含主要目录是 1.5TB.But 这些目录内部的 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
请问有什么方法可以查出是什么原因吗?
如何减少复制的数据大小?
谢谢!
5.8T pg_wal
我想你已经找到原因了。
当您设置副本时,您可能复制了 pg_replslot 目录,这是您不应该做的。所以现在副本正在等待它自己的级联副本连接到它读取它正在保存的 WAL,但是没有副本可以这样做。删除副本上的该目录并重新启动副本。
或者,您可能将 archive_mode 设置为始终,但您的 archive_command 在副本上不起作用。
我在下面删除pg_wal。
- 连接到复制
- 使用 pg_drop_replication_slot
删除复制槽
之后,pg_wal的尺寸逐渐缩小。
postgresql 10.14@ubuntu18.04
我有主数据库和复制数据库。 问题是包含复制的目录的大小太大。另一方面,大约 7TB 包含主要目录是 1.5TB.But 这些目录内部的 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
请问有什么方法可以查出是什么原因吗? 如何减少复制的数据大小? 谢谢!
5.8T pg_wal
我想你已经找到原因了。
当您设置副本时,您可能复制了 pg_replslot 目录,这是您不应该做的。所以现在副本正在等待它自己的级联副本连接到它读取它正在保存的 WAL,但是没有副本可以这样做。删除副本上的该目录并重新启动副本。
或者,您可能将 archive_mode 设置为始终,但您的 archive_command 在副本上不起作用。
我在下面删除pg_wal。
- 连接到复制
- 使用 pg_drop_replication_slot 删除复制槽
之后,pg_wal的尺寸逐渐缩小。