본문 바로가기

DB/PostgreSQL3

postgressql lock 조회 및 해제 postgressql lock 조회 및 해제 1. 현재 테이블의 LOCK 상태인 쿼리 확인 select t.relname,l.locktype,page,virtualtransaction,pid,mode,granted from pg_locks l, pg_stat_all_tables t where l.relation=t.relid order by relation asc; 현재 테이블의 lock을 확인한다. 이미 해당 쿼리를 조회하는 것이면, 전후 사정에 대한 이해도가 있기때문에 확인시 대략적으로 이놈이 문제구나 하는 쿼리를 찾을수 있었다. 여기서 pid를 확인하고 아래로 넘어가 해당 쿼리 session을 kill 할수 있다. 2. 해당 작업을 kill --PID 죽이기 select pg_cancel_backe.. 2022. 8. 23.
postgreSQL 쿼리중지, 테이블 lock, 작업중지, CPU100% postgreSQL 쿼리중지, 테이블 lock, 작업중지, CPU100% postgreSQL 에서 쿼리 수행시에 정상 수행이 되지 않고, backend에서 계속 수행중으로 남아 있는 케이스가 발견됬다. 테이블은 lock상태로 들어가며, 조회가 계속 안되고 수행 쿼리가 지속적으로 쌓이면서 문제가 발생했다. DB서버의 CPU를 확인해보니 98%가량 점유율이 올라가 있었으며, 어플리케이션의 수행 속도 또한 서비스하기 힘든 상태로 느려져 있었다. 이때 문제 해결을 위해서 진행 했던 방법들을 정리 해놓으려 한다. [AWS RDS의 postgreSQL 서버의 cpu 상태 ] lock 상태 확인 SELECT * FROM pg_stat_activity ORDER BY query_start ASC; pg_stat_act.. 2021. 11. 16.
postgreSQL index rebuild, REINDEX (인덱스 리빌드) postgreSQL index rebuild, REINDEX (인덱스 리빌드) PostgreSQL REINDEX 명령이란 무엇입니까? 실제로 PostgreSQL 인덱스는 변경 될 수 있으며 소프트웨어 문제 또는 하드웨어 오류로 인해 index에 문제가 발생할수 있습니다. 따라서 REINDEX 명령을 사용하여 인덱스를 개선 할 수 있습니다. 즉, REINDEX 명령을 사용하여 하나 이상의 인덱스를 다시 빌드한다고 말할 수 있습니다 인덱스를 하나만 다시 rebuild하려면 아래와 같이 index 절 뒤에 인덱스 이름을 설정하면 됩니다. REINDEX INDEX index_name; 테이블의 모든 인덱스를 재 구축하기 위해 아래와 같이 TABLE 키워드를 사용할 수 있습니다. REINDEX TABLE tabl.. 2021. 4. 12.