【问题标题】:postgresql replication have too much sizepostgresql 复制的大小太大
【发布时间】:2020-08-23 22:26:15
【问题描述】:

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

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

【问题讨论】:

  • 备用端的 PostgreSQL 日志文件会告诉你为什么 PostgreSQL 从pg_wal 中删除旧 WAL 文件时出现问题。

标签: postgresql replication


【解决方案1】:

5.8T pg_wal

我想你已经找到原因了。

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

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

【讨论】:

  • 感谢您的重播,我只是找不到 pg_wal 的大小为 5.8TB。我误读了5.8GB。我有一个问题,你提到的那个目录是 pg_wal 目录?所以具体我要做的是这样吗? [1.sudo service postgresql stop 2.sudo rm pg_wal/* 3.sudo service postgresql start] 这样对吗?或者你提到的目录可能是 pg_replslot?
【解决方案2】:

我在下面做删除 pg_wal。

  1. 连接到复制
  2. 使用 pg_drop_replication_slot 删除复制槽

之后,pg_wal 的大小逐渐减小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2022-01-24
    • 2021-08-13
    • 2016-03-17
    • 2017-10-16
    相关资源
    最近更新 更多