긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

PostgreSQL 16

[PostgreSQL] kill -9 session(PID) 세션 죽이기

세션은 크게 두종류가 있다 Activity ( 접속중인=살아있는 ) idle ( 유휴=대기 상태 ) 현재 서버에 붙어있는 세션들을 조회 할 수 있는 방법은 여러가지가 있다. \d pg_stat_activity; select * from pg_stat_activity; ps -ef | grep postgres kill -9 세션 [PID] 하면 모든 세션이 다 종료가 된다. Why?? postgresql 은 OS에 종속적인 DBMS 이므로, OS 상이 아닌 db command 에서 날려야 된다. 따라서 db command 상에서의 세션을 죽여주자 select pg_terminate_backend(PID) 현재 세션을 강제 종료 select pg_cancel_backend(PID) 현재 실행 중인 쿼리 중단

PostgreSQL 2023.03.09

[PostgreSQL] connection to server on socket /tmp/.s.pgsql.5432 failed connection refused 에러 해결법

PostgreSQL 을 사용하려 DB에 접속을 시도하던 도중 위와 같은 에러가 발생하였다. psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed 와 같은 문구처럼 PostgreSQL 의 local server가 실행되지 않았다 다양한 이유가 있지만 대부분 내부 프로세스 충돌(강제 종료,시스템 오류 등)로 인해 서버 오류발생으로 인한 에러로 파악되고 있다. 그래서 DB 서버 상태를 확인후 재접속을 시도하였다. 위와 같이 DB 서버가 작동되지 않았다 다음과같이 서버를 재작동 하였다. 결과는 성공적으로 서버가 재실행되었고 DB에 접속되었다 !!

PostgreSQL 2022.09.23

Vaccum 란?

MVCC 로 인해 수많은 row가 쌓임으로써 디스크 I/O 및 성능저하와 같은 불편함이 생길 수 있다. ​ 이와같이 불필요한 row에 대해서 어떻게 처리할까? ​ Vaccum (진공청소기 ) PostgreSQL의 쓰레기 데이터를 정리 (디스크 조각 모음) ​ ​ # 필요성 # ○ 데이터는 물리적으로 디스크에 저장되고 읽어서 보여주는데, 데이터를 갱신 및 삭제시에도 기존 정보가 그대로 남아있다. 즉, 갱신된 데이터가 추가됨으로써 용량이 증가한다. ​ ​ ○ Why? MVCC 구현에 따른 튜플로 인해 즉, 트랜잭션을 사용하기위해 기존 데이터를 변경하지않고 보관한다. 결국 디스크 I/O로 인해 성능 저하가 나타남. ​ 하지만 !!! Vaccum을 실행하면 불필요한(기존) 데이터가 정리됩니다 !!! ​ ​ # ..

PostgreSQL 2022.09.22

MVCC 란?

데이터베이스에는 많은 사용자들이 동시에 접근할 수 있다. 또한, 여러 사용자가 데이터를 변경할 수 있고 동시에 읽을 수도 있다. ​ 이때 실시간으로 변경되는 데이터들은 어떻게 처리할까?? ​ MVCC (Multi-Version Concurrency Control) 다중 버전 동시성 제어 ​ ​ 동시에 여러 개의 데이터 버전을 제공할 수 있는 기법 ​ 최신상태의 데이터를 [현재 버전], 변경 이전의 데이터를 [이전 버전]을 의미한다. ​ 단, 두개의 버전을 동일한 테이블 내에서 보관함으로써 불편함과 공간의 비효율성 발생 ​ 이에 모아둔 데이터를 Vaccum 작업을 통해 정리한다. ​ ​ 쿼리가 수행한 시점에서 데이터를 읽을 수 있는 기능 XID가 생성된다. ​ 이를 통해, 읽기와 쓰기 작업 간의 블로킹 현..

PostgreSQL 2022.09.22