インデックス破損を修正した PostgreSQL 14.4 アップデート

PostgreSQL DBMS 14.4 の修正リリースが作成されました。これにより、特定の状況下で「CREATE INDEX CONCURRENTLY」および「REINDEX CONCURRENTLY」コマンドの実行時にインデックス内の目に見えないデータ破損が発生するという重大な問題が解決されます。 指定されたコマンドを使用して作成されたインデックスでは、一部のレコードが考慮されない可能性があり、問題のあるインデックスを含む SELECT クエリを実行すると行が失われる可能性があります。

B ツリー インデックスが破損しているかどうかを確認するには、コマンド「pg_amcheck –heapallindexed db_name」を使用できます。 エラーが特定された場合、またはコマンド「CREATE INDEX CONCURRENTLY」および「REINDEX CONCURRENTLY」が以前のリリースで他のタイプのインデックス (GiST、GIN など) とともに使用されていた場合は、バージョン 14.4 に更新した後、 「reindexdb —all」ユーティリティまたはコマンド「REINDEX CONCURRENTLY Index_name」。

この問題は 14.x ブランチにのみ影響します。これには、VACUUM 操作の実行時に「CREATE INDEX CONCURRENTLY」および「REINDEX CONCURRENTLY」の実行に関連する一部のトランザクションを除外する最適化が含まれていました。 これらの最適化の結果、CONCURRENTLY モードで作成されたインデックスには、インデックス作成中に更新または切り捨てられたヒープ メモリ内の一部のタプルが含まれませんでした。

出所: オープンネット.ru

コメントを追加します