반응형
테이블 재생성을 위해 alter table DROP PK 명령어를 수행하였는데 끝나지 않고 계속 수행중이었습니다.
이것을 해결한 방법을 정리하였습니다.
원인 : 세션 중 테이블에 accesssharelock을 잡은 세션이 있었음.
해결 : 해당 세션 kill
lock 확인 쿼리
select
c.relname,
l.*,
psa.*
from pg_locks l
inner join pg_stat_activity psa on (psa.pid=l.pid)
left outer join pg_class c on (l.relation = c.oid)
where l.relation = '테이블명'::regclass;
결과로 내가 수행중인 세션 외에 accesssharelock을 잡고있는 세션을 발견하였습니다.
해당 세션의 pid를 찾아낸 후
select pg_teminate_backend(pid);
명령어로 세션 kill을 합니다.
그럼 명령어가 잘 수행됩니다.
반응형
'다른 DBMS > PostgresDB' 카테고리의 다른 글
형 변환과 CREATE CAST (0) | 2024.10.25 |
---|---|
[pg16] 백업 쉘 만들어서 자동 백업되게 설정하기 (0) | 2024.07.31 |
.pgpass 활용하여 password 입력 없이 접속하기 (0) | 2024.07.30 |
[PG16] redhat 8버전에 pg16설치하고 데이터 이관하기 (0) | 2024.07.24 |
오류: 기타 다른 개체들이 이 롤에 의존하고 있어, "유저명" 롤을 삭제할 수 없음 (0) | 2024.05.29 |
댓글