PostgreSQL
-
PostgreSQL Server configurationPostgreSQL 2019. 11. 22. 15:26
1. parameter names and values 모든 매개변수 이름은 대소문자를 구분하며, boolean, string, integer, floating point 또는 enumerated(enum)의 5가지 타입 중 하나이다. 2. Parameter Interaction via Comfiguration File 매개변수를 설정하는 가장 기본적인 방법은 일반적으로 데이터 디렉터리에 있는 postgresql.conf 파일을 편집하는 것이다. 데이터베이스 클러스터 디렉터리가 초기화된 경우 기본 사본이 설치된다. 이 파일과 유사한 예시는 다음과 같다. # Connection Settings listen_addresses = 'localhost' port = 5432 max_connections = 100..
-
PostgreSQL 성능 관련 옵션PostgreSQL 2019. 11. 22. 15:15
autovacuum_max_workers CPU의 코어수가 많은 경우 사용가능 기본값은 0 동시에 작업을 수행 할 수 있도록 코어 수와 동일한 값으로 설정하면 좋음 해당 매개 변수와 함께 multiple_autovacuum_workers를 설정해야 함 이 값은 코어의 1/2보다 큰 값으로 설정 autovacuum_vacuum_scale_factor Vacuuming은 삭제 및 삽입으로 생성된 dead tuples를 제거하는 프로세스 지정된 임계 값에 따라 테이블을 자동으로 vacuuming 함 effective_cache_size 캐시할 수 있는 메모리 양이 증가 값이 클수록 데이터베이스에서 index를 더 많이 사용함 권장값은 RAM 값의 50% 이상 maintenance_work_mem vacuumi..
-
PostgreSQL 동시성 개요PostgreSQL 2019. 11. 22. 15:08
이 문서에서는 PostgreSQL의 동시성(Concurrency) 항목에 대해 설명한다. PostgreSQL의 Concurrency에 대해 설명한 자료가 있는지 확인한다. PostgreSQL 공식 문서는 있다. PostgreSQL 공식 문서를 바탕으로 Concurrency에 대해 설명한다. PostgreSQL 공식 문서에서 Concurrency는 다중버전동시제어(Multi Version Concurrency Control: MVCC), 트랜잭션 격리(Transaction Isolation), 명시적 잠금(Explicit Locking), 데드락(Deadlock), Application의 Data Consistency, Index에 대한 주제로 설명되어 있다. 먼저, PostgreSQL에 대해 설명한다. ..
-
PostgreSQL AuthorizationPostgreSQL 2019. 11. 22. 15:04
1. Database Roles PostgreSQL은 “role”을 사용하여 데이터베이스 접근 권한을 관리한다. 다음의 CREATE ROLE 구문으로 role을 생성 할 수 있으며, role의 속성은 ALTER ROLE로 수정할 수 있다. CREATE ROLE **name** [ [ WITH ] **option** [...] ] 다음은 option에 대한 설명이다. 1) 권한 관련 옵션 SUPERUSER | NOSUPERUSER (Default: NOSUPERUSER) Database superuser는 로그인 권한을 제외한 모든 권한 검사를 무시한다. 따라서 superuser 권한을 사용할 때는 주의하도록 한다. superuser권한을 가진 role은 다음의 구문으로 생성 가능하다. CREATE ROL..
-
PostgreSQL 백업 및 복구 - MigrationPostgreSQL 2019. 11. 22. 15:00
이 문서에서는 툴을 사용해 Oracle 데이터를 PostgreSQL로 이관하는 방법에 대해 설명한다. 먼저, 이와 관련된 툴에 대해 조사를 하고, 이 툴들을 비교한 내용을 작성한다. 조사된 툴에 대해 상세 설명을 추가하고, 실행한 예제를 작성한다. 툴 조사에서는 RDB에서 PostgreSQL로 이관하는 툴에 대해 알아본다. 흔히 이관은 2가지로 분류할 수 있으며, data 이관과 schema 이관이 있다. data 이관에서 data는 테이블에 있는 row을 의미하며, csv 형태로 export/import 기능을 제공하는 툴을 이용해 간단하게 이기종 DB 간에 data 이관이 가능할 것이다. schema 이관에서 schema는 role, tablespace, trigger, function, proced..
-
PostgreSQL 백업 및 복구 - Tool 사용PostgreSQL 2019. 11. 22. 14:52
이 문서에서는 툴을 사용해 PostgreSQL의 데이터를 백업 및 복구에 대해 설명한다. 이와 관련된 툴에 대해 조사를 하고, 이 툴들을 비교한 내용을 작성한다. 조사된 툴에 대해 상세 설명을 추가하고, 실행한 예제를 작성한다. 관련 툴 목록 github 검색에 "PostgreSQL backup"이라고 입력해서 찾는다. 툴명 최신 릴리즈 구현 언어 회사 라이선스 문서 및 Github github star 수 wal-e 2017년11월4일, v1.1.0 Python BSD-3 https://github.com/wal-e/wal-e 2546 wal-g 2018년5월8일, v0.1.9 Go Apache-2.0 https://github.com/wal-g/wal-g 617 PGHoard 2018년2월9일, v1..
-
PostgreSQL 백업 및 복구 - 명령어 사용PostgreSQL 2019. 11. 22. 14:34
PostgreSQL 데이터를 백업하는 3가지 방법이 있다. SQL 덤프 파일 시스템 레벨 연속 아카이빙 위의 3가지 방법 비교 방법 설명 서버 실행 여부 장점 단점 SQL 덤프 pg_dump, pg_dumpall과 같은 명령어를 통해 백업 pg_restore, psql와 같은 명령어를 통해 복구 AgensGraph 서버가 실행되고 있는 상태에서 가능 데이터 압축, 분할, 커스텀 백업 설정 가능 부분 및 전체 데이터 백업 가능 머신 아키텍처(32비트에서 64비트 전송 가능) 상관 없음 서버가 실행되지 않는 상태에서 명령어 사용 불가능 증분 데이터 반영 불가능 연속 아카이빙(PITR) pg_basebackup 명령어와 wal 폴더 내용을 백업 및 복구 tar 명령어와 wal 폴더 내용을 백업 및 복구 Age..
-
대기업 PostgreSQL DBA 면접 후기PostgreSQL 2019. 11. 22. 12:07
나의 현재 주 업무는 PostgreSQL 관련 개발이고, 경력직으로 대기업의 PostgreSQL DBA로 이직하는 과정을 기록한다. 최종 합격은 아니지만 채용 과정에서 발생할 수 있는 이슈들을 나름대로 정리해 보고 나의 생각을 추가해 보려고 한다. 나는 대기업의 PostgreSQL DBA를 채용하는 공고에 지원했다. 지원한 회사의 이름은 공개할 수는 없지만 면접 내용에 대해서는 공개할 수 있을 것 같다. 채용 절차는 1차 이력서, 2차 실무자 면접, 3차 임원 면접, 4차 연봉 협상, 5차 입사 순서로 진행된다. 1차 이력서를 넣고 2일 지나서 합격을 알리는 메일을 받았다. 2차 실무자 면접은 합격 메일을 받은 날로 1주일 뒤로 잡혔다. 면접 일정 변경이 가능하지만 나는 안내받은 대로 진행을 했다. 이 ..