急に普通の削除ができなくなり、原因不明なまま、再起動で楽になろうと
思ったが、チャラにする前になんかできることはないか。できることがあるんじゃね。
と、拷問に近い、追い詰めのあげく、たどり着いたのが
このコマンド
1 2 3 4 5 |
SELECT l.pid, db.datname, c.relname, l.locktype, l.mode FROM pg_locks l LEFT JOIN pg_class c ON l.relation=c.relfilenode LEFT JOIN pg_database db ON l.database = db.oid ORDER BY l.pid; |
プロセスIDを見極めて、プロセスを個別に削除する作戦。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
pid datname relname locktype mode 16763 utf8_find_moviedb categorys_relation relation AccessShareLock 16763 NULL NULL virtualxid ExclusiveLock 16763 utf8_find_moviedb categorys_pkey relation AccessShareLock 16763 utf8_find_moviedb categorys_relation_pkey relation AccessShareLock 16763 utf8_find_moviedb movie_place_pkey relation AccessShareLock 16763 utf8_find_moviedb movie_place relation AccessShareLock 16763 utf8_find_moviedb categorys relation AccessShareLock 16763 utf8_find_moviedb movies_pkey relation AccessShareLock 16763 utf8_find_moviedb movies relation RowExclusiveLock 16763 utf8_find_moviedb movies relation AccessShareLock 16763 NULL NULL transactionid ExclusiveLock 16763 utf8_find_moviedb movies_pkey relation RowExclusiveLock 23735 NULL NULL transactionid ShareLock |
1 |
SELECT pg_cancel_backend(プロセスID); |
プロセスIDを個別に指定して削除
メルマガ登録をお願いします。
素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。