AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 295182
Accepted
rdbmsNoob
rdbmsNoob
Asked: 2021-07-03 05:39:55 +0800 CST2021-07-03 05:39:55 +0800 CST 2021-07-03 05:39:55 +0800 CST

恐慌:无法写入文件“pg_xlog/xlogtemp”:设备上没有剩余空间

  • 772

我们收到与以下错误有关的 postgres 环境中断:

Jul  1 00:36:04 test1 postgres[219259]: [770-2] user=,db=,app=client= CONTEXT:  writing block 199237 of relation pg_tblspc/16402/PG_9.6_201608131/7358881/41721132
Jul  1 00:36:05 test1 postgres[219252]: [3-1] user=,db=,app=client= LOG:  checkpointer process (PID 219259) was terminated by signal 6: Aborted
Jul  1 00:36:05 test1 postgres[219252]: [4-1] user=,db=,app=client= LOG:  terminating any other active server processes
Jul  1 00:36:05 test1 postgres[110539]: [5-1] user=postgres,db=product,app=psqlclient=[local] WARNING:  terminating connection because of crash of another server process
Jul  1 00:36:05 test1 postgres[110539]: [5-2] user=postgres,db=product,app=psqlclient=[local] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
Jul  1 00:36:05 test1 postgres[110539]: [5-3] user=postgres,db=product,app=psqlclient=[local] HINT:  In a moment you should be able to reconnect to the database and repeat your command.
Jul  1 00:36:04 test1 postgres[219259]: [770-1] user=,db=,app=client= PANIC:  could not write to file "pg_xlog/xlogtemp.219259": No space left on device
Jul  1 00:36:04 test1 postgres[219259]: [770-2] user=,db=,app=client= CONTEXT:  writing block 199237 of relation pg_tblspc/16402/PG_9.6_201608131/7358881/41721132
Jul  1 00:36:05 test1 postgres[219252]: [3-1] user=,db=,app=client= LOG:  checkpointer process (PID 219259) was terminated by signal 6: Aborted
Jul  1 00:36:05 test1 postgres[219252]: [4-1] user=,db=,app=client= LOG:  terminating any other active server processes

Postgres 崩溃然后恢复,观察存储 pg_xlog 的空间可以看到驱动器已满,通常是 80GB 驱动器,使用率约为 10%,每天晚上大约在同一时间发生。我试图找出原因,但 postgres 日志文件中没有任何内容指向罪魁祸首。

我们有监控数据库服务器的数据狗,可以在发出错误时看到错误,但没有指出它可能是什么。

任何帮助表示赞赏。

1毫秒后可以看到:

Jul  1 00:36:04 test1 postgres[219259]: [770-1] user=,db=,app=client= PANIC:  could not write to file "pg_xlog/xlogtemp.219259": No space left on device
Jul  1 00:36:04 test1 postgres[219259]: [770-2] user=,db=,app=client= CONTEXT:  writing block 199237 of relation pg_tblspc/16402/PG_9.6_201608131/7358881/41721132
Jul  1 00:36:05 test1 postgres[219252]: [3-1] user=,db=,app=client= LOG:  checkpointer process (PID 219259) was terminated by signal 6: Aborted
Jul  1 00:36:05 test1 postgres[219252]: [4-1] user=,db=,app=client= LOG:  terminating any other active server processes
Jul  1 00:36:05 test1 postgres[110539]: [5-1] user=postgres,db=product,app=psqlclient=[local] WARNING:  terminating connection because of crash of another server process
Jul  1 00:36:05 test1 postgres[110539]: [5-2] user=postgres,db=product,app=psqlclient=[local] DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
Jul  1 00:36:05 test1 postgres[110539]: [5-3] user=postgres,db=product,app=psqlclient=[local] HINT:  In a moment you should be able to reconnect to the database and repeat your command.
Jul  1 00:36:05 test1 postgres[110539]: [5-4] user=postgres,db=product,app=psqlclient=[local] CONTEXT:  SQL statement "INSERT INTO AGGREGATES.agg_item_part_count
Jul  1 00:36:05 test1 postgres[110539]: [5-5] #011#011#011SELECT b.item_id,
Jul  1 00:36:05 test1 postgres[110539]: [5-6] #011#011              count(bp.item_id) as item_parts
Jul  1 00:36:05 test1 postgres[110539]: [5-7] #011        #011FROM item.item b
Jul  1 00:36:05 test1 postgres[110539]: [5-8] #011#011LEFT JOIN item.item_part bp USING (item_id)
Jul  1 00:36:05 test1 postgres[110539]: [5-9] #011        #011WHERE b.item_id >= starting_item
Jul  1 00:36:05 test1 postgres[110539]: [5-10] #011#011        GROUP by b.item_id
Jul  1 00:36:05 test1 postgres[110539]: [5-11] #011#011ON CONFLICT (item_id) DO
Jul  1 00:36:05 test1 postgres[110539]: [5-12] #011#011#011UPDATE SET
Jul  1 00:36:05 test1 postgres[110539]: [5-13] #011#011#011item_parts = EXCLUDED.item_parts"
Jul  1 00:36:05 test1 postgres[110539]: [5-14] #011PL/pgSQL function etl.update_bpart_agg() line 39 at SQL statement
postgresql
  • 1 1 个回答
  • 1170 Views

1 个回答

  • Voted
  1. Best Answer
    jjanes
    2021-07-04T06:54:33+08:002021-07-04T06:54:33+08:00

    您的日志中只有 1 秒的分辨率(您应该将其更改为 %t 为 %m),所以这些是从下一秒开始的。但是我们不知道您离第二个边界有多近,并且这些日志消息是您所期望的。

    看起来 INSERT...SELECT 语句可能是填充 wal 目录的罪魁祸首。如果 SELECT 返回很多行,那么 INSERT 会快速生成大量 WAL 是有道理的。我们不知道为什么它完全填满了,也许您正在归档并且归档命令无法跟上,或者有复制槽并且副本无法跟上,或者您可能没有任何这些东西并且它只是无法跟上的检查点。

    如果您的临时文件被写入与 WAL 文件相同的分区,那么它们可能有助于填满分区。

    • 1

相关问题

  • 我可以在使用数据库后激活 PITR 吗?

  • 运行时间偏移延迟复制的最佳实践

  • 存储过程可以防止 SQL 注入吗?

  • PostgreSQL 中 UniProt 的生物序列

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve