DBAtlas · データベース運用アトラス

55006: object_in_use

PostgreSQL

意味

対象オブジェクト (通常はデータベース) が他のセッションに使用されているため、操作を実行できない。例えばアクティブな接続があるデータベースは削除できない。

原因

DROP DATABASE 時にデータベースへのオープン接続がある、使用中のオブジェクトに排他ロックが必要な操作、別のセッションがオブジェクトを保持している。

対処方法

対象データベースへのオープン接続を特定して終了させる: SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'db_name' AND pid <> pg_backend_pid(); (必要なら) 新しい接続をブロックする。PostgreSQL 13 以降では接続を強制的に閉じながら削除する: DROP DATABASE db_name WITH (FORCE);

DBAtlas で開く →

同じデータベースの他の項目