【问题标题】:Postgres Refresh materialized view showing wait_event_type Extension for a 2+ hoursPostgres 刷新物化视图,显示 wait_event_type 扩展超过 2 小时
【发布时间】:2021-09-07 12:38:13
【问题描述】:

我有一个物化视图,它通过 postgres_fdw 将超过 5 个表连接到远程数据库。 直到昨天,这个 matview 最多在 1 小时内完成了刷新。 然而,今天它似乎被挂了。对pg_stat_activity 的查询显示会话的wait_event_type 是上一小时的扩展。 这个 matview 的源代码不使用任何函数,只是在所有远程表上进行连接(在本地和远程表上没有连接)。 我在Extensionwait_event 上找不到太多解释。

   age       | wait_event_type | wait_event | state  |  backend_type
 |                                     query
--------------------+-------+-----------+------------------+-------------+-------------------------------+-----------------+-----------------+------------+--------+---------- 
01:36:51.825826 | Extension       | Extension  | active | client backend
 | refresh materialized view

有人能解释一下发生了什么吗?感谢任何帮助解决此问题。 顺便说一句,我在 12.4

解决方案:

在我继续发布解决方案之前,我按照以下线程查看它是否符合我的情况

Postgres 9.4 hangs during refreshing materialized view

https://dba.stackexchange.com/questions/244150/postgres-wait-event-type-extension

但就我而言,它既不是函数也不是打开的idle in transaction 会话。我最终使用ANALYZE 命令分析了我的外部表,就是这样!

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    在我继续发布解决方案之前,我按照以下线程查看它是否符合我的情况

    Postgres 9.4 在刷新物化视图期间挂起

    https://dba.stackexchange.com/questions/244150/postgres-wait-event-type-extension

    但在我的情况下,它既不是函数也不是事务会话中的打开空闲。我最终使用 ANALYZE 命令分析了我的外部表,就是这样!

    【讨论】:

      【解决方案2】:

      The documentation 说:

      Extension Wait Event Description
      Extension Waiting in an extension.

      由于您使用的是外部表(我假设使用 postgres_fdw),它必须是挂起的远程查询。

      【讨论】:

      • 是的,通过 postgres_fdw。 Waiting in an extension. 这是什么意思?为什么突然?我只是被难住了,不知道该怎么做才能让它工作
      • 另外,当我在Refresh Materialized View 语句之外运行查询时,它可以工作。它的刷新似乎挂了。
      • 您必须检查远程服务器上发生的情况。检查查询是否以及为什么挂在那里。
      猜你喜欢
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2020-12-03
      • 1970-01-01
      • 2015-10-10
      相关资源
      最近更新 更多