参考までに-- プライムタイムにこのアップグレードを試さないでください。
2.6.0b2 のアップグレードは通常数分で完了するはずが、サーバー上で 40 分以上も実行されています。通常は戻って確認する頃には終わっているものです。壊れたのではないかと心配しましたが、PostgreSQL にログインして確認すると、巨大な更新処理が実行されているのが見えました。どうやらプライベートメッセージの投稿検索データを変更しているようです。
壊れていないことを願っています。いずれわかりますね。本当にこの処理を強制終了したり、アップグレード中にコンテナを再起動したくありません。
実行中のクエリ:
postgres=# SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
pid | age | usename | query
-------+-----------------+-----------+---------------------------------------------------------------------------
-------------------
698 | | |
701 | | postgres |
699 | | |
697 | | |
696 | | |
14572 | 00:10:31.484201 | discourse | UPDATE post_search_data
+
| | | SET private_message = X.private_message
+
| | | FROM
+
| | | (
+
| | | SELECT post_id,
+
| | | CASE WHEN t.archetype = 'private_message' THEN TRUE ELSE FALSE END pri
vate_message +
| | | FROM posts p
+
| | | JOIN post_search_data pd ON pd.post_id = p.id
+
| | | JOIN topics t ON t.id = p.topic_id
+
| | | WHERE pd.private_message IS NULL OR
+
| | | pd.private_message <> CASE WHEN t.archetype = 'private_message' THEN T
RUE ELSE FALSE END+
| | | LIMIT 3000000
+
| | | ) X
+
| | | WHERE X.post_id = post_search_data.post_id
+
| | |
14573 | 00:47:02.814489 | discourse | SELECT pg_try_advisory_lock(2859260972035668690)
(7 rows)


