본문 바로가기

Database & Bigdata54

[PostgreSQL] Lock & Deadlock Deadlock 트랜잭션 교착상태 트랜잭션들이 서로가 잡고있는 Lock을 얻으려고 할 때, DeadLock이 발생 서로가 쥐고 있는 Lock을 얻어야지만, 트랜잭션이 끝날 수 있어 영원히 Transaction이 안끝나게 됨 그래서 트랜잭션 짤 때 DeadLock 안걸리게 순서를 잘 구성해야 함 Deadlock 테이블 확인 SELECT relation::regclass, * FROM pg_locks WHERE NOT granted; Lock Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법 Lock의 종류로는 공유(Shared) Lock과 베타(Exclusive) Lock이 있음 1. Shared Lock(공유 Lock 또는 Read Lock): 데이터를 읽을 때 사용 내가 보고 있는 데이터는 다른.. 2022. 6. 9.
[PostgreSQL] DB LOG CHECK : ERROR 23505, 22021,57014,21000 / FATAL : 25P03 (23505) ERROR : duplicate key value violates unique constraint "~pk" 이미 id 값이 존재하는 pkey를 insert 하려할 때 생기는 ERROR 실제 테이블 값과 Sequence Object의 값이 다르게 되어 발생하는 문제 (22021) ERROR : invalid byte sequence for encoding "UTF8": 0x00 UTF8 인코딩에서 사용할 수 없는 문자가 있을 때 생기는 ERROR (57014) ERROR : exclusive backup not in progress 사용자 요청에 의한 쿼리 취소 ERROR (21000) ERROR : ON CONFLICT DO UPDATE command cannot affect row a .. 2022. 5. 26.
[PostgreSQL] Streaming Replication / Logical Replication Streaming Replication Logical Replication Replication 방식 - Master DB의 WAL에 기록된 내용을 실시간으로 Slave DB에게 전달 - WAL Sender, WAL Receiver라는 프로세스들이 두 서버간의 동기화를 수행 - Config 파일로 설정 - 주 서버의 WAL로 부터 데이터 변경 가능 stream을 만들어서 다른 서버로 복제 시키는 방식 - 테이블 단위로 replication 가능 - master나 slave로 구분해서 디자인된게 아니라 양방향으로 스트림 될 수 있음 (Target과 Source) - 쿼리 형태로 Replication 설정 Replication 설정 확인 - 프로세스 확인 시 Master DB에는 walsender, Stan.. 2022. 5. 23.
[PostgreSQL] Oracle과 PostgreSQL의 database 기본 구조 차이 Oracle vs PostgreSQL 항목 oracle postgreSQL instance ° 1 instance = 1 database ° db 엔진이 올라간 후 인스턴스를 생성하면서 database가 생성 ° 1 instance = 1 server ° 서버단위의 개념 cluster ° RAC 환경의 공유 노드 개념 ° psql DB의 집합체 ° postgreSQL 설치 시 기본적으로 postgres database, template0, template1 총 3개의 database가 생성됨 -> 이 집합체를 postgreSQL 클러스터라고 함 database ° 실제 물리적인 database를 의미 ° database는 스키마의 상위 개념 ° 여러개의 스키마로 구성되어있음 ° 다른 database에 있.. 2022. 5. 17.