본문 바로가기

PostgreSQL

PostgreSQL 9.6 Replication Hot/Warm Standby Using PITRWAL 를 사용하여 HA 를 구현합니다.Hot Standby 의 경우 Read-only queries 만 받을 수 있습니다.이 방식은 MySQL ( MariaDB ) 의 MASTER - SLAVE (STANDBY) 의 방법과 동일한 HA 구현 방식입니다. WAL 은 비동기로 로그를 적재합니다. 예를 들면 WAL 레코드는 트랜잭션이 커밋 된 이후 적재 됩니다. 일반적으로 Major 버전이 상이한 PostgreSQL 간에는 Log shipping 이 불가합니다. Primary 구성 시 유의사항Replication 에 pg_hba.conf 구성 Primary 가 접근할 수 있는 권한이 있는지max_wal_senders 값 WAL 전송에 문제가 없는지 Stream.. 더보기
PostgreSQL 9.6 Backup and Recovery Backup & RecoverySQL Dumppg_dump 에 의해 만들어지는 백업은 수행이 시작되는 시점의 스냅을가집니다.또 이는 DB 상의 다른 오퍼레이션을 블록킹하지 않습니다.( Exclusive lock 을 획득해야 하는 ALTER TABLE 같은 오퍼레이션 제외 )SQL Dump 는 오라클의 Datapump, MariaDB 의 mysqldump 와 같은 역할을 합니다.backup 예시pg_dump dbname > outfilepg_dumpall > outfilepg_dump dbname | gzip > filename.gzgunzip -c filename.gz | psql dbnamepg_dump dbname | split -b 1m - filenamerecover 예시cat filename.g.. 더보기
PostgreSQL 9.6 설치 구성 RPM 설치yum install postgresql-serverpostgresql-server-9.6.1-1.el7.x86_64 postgresql-libs-9.6.1-1.el7.x86_64 postgresql-9.6.1-1.el7.x86_64OS 그룹, 유저 추가root user 에서 수행groupadd dba useradd -g dba -s /bin/bash -d /data/postgres postgresPostgreSQL 클러스터 초기화/usr/pgsql-9.6/bin/pg_ctl initdb -D /data/postgres/data-D 옵션에 해당하는 디렉토리가 존재하면 안 된다.[postgres@testdb02:~]$ /usr/pgsql-9.6/bin/pg_ctl initdb -D /data/p.. 더보기
PostgreSQL pgbench kip to end of metadataGo to start of metadatapgbenchPostgreSQL 상에서 벤치마킹을 수행하는 간단한 프로그램입니다. 동일한 순서의 SQL 구문들을 반복 수행하며, Transactions per second 값을 산출합니다.SQL 은 SELECT, UPDATE 그리고 INSERT 가 하나의 트랜잭션으로 묶여있습니다. 스크립트 파일 수정을 통해 트랜잭션의 커스터마이징이 가능합니다. 벤치마킹 구성과정옵션-s 스케일 팩터 -F fillfactor --> default 는 100 입니다. --index-tablespace=index_tablespace --tablespace=tablespace --unlogged-tablespgbench -i testpgbench -.. 더보기
PostgreSQL pg_hba.conf pg_hba.confClient 에 대한 접근 권한을 관리하는 설정파일입니다. ( Host-based authentication )파일의 내용은 다음과 같이 기술합니다.local database user auth-method [auth-options] host database user address auth-method [auth-options] host database user IP-address IP-mask auth-method [auth-options] hostssl database user address auth-method [auth-options] hostssl database user IP-address IP-mask auth-method [auth-options] hostnossl dat.. 더보기
PostgreSQL EXPLAIN EXPLAIN쿼리의 최적화를 위해 사용할 수 있는 튜닝 도구입니다.SELECT, INSERT, UPDATE, DELETE 에 모두 사용할 수 있습니다.트리 구조로 가장 왼쪽이 ROOT, 가장 오른쪽이 LEAF 로 읽는 순서는 MySQL 이나 Oracle 과 차이 없습니다.동 레벨은 위의 오퍼레이션이 먼저 수행 됩니다.OPTIONEXPLAIN EXPLAIN + QUERYEXPLAIN ANALYZE EXPLAIN ANALYZE + QUERYEXPLAIN ANALYZE BUFFERS EXPLAIN ( ANALYZE, BUFFERS ) + QUERYCOSTCOST 계산은 TIME BASE 입니다. COST 를 산정하는 계산식이 존재하며, 대소에 영향을 주는 인자들이 존재합니다. 이 인자값은 시스템, 세션 레벨에.. 더보기
PostgreSQL Table types SYNTAXCREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( ~~ 중략 ~~ ) [ INHERITS ( parent_table [, ... ] ) ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]PERMANENT일반적인 테이블입니다.TEMPORARY or TEMPCREATE TABLE 시 위 옵션을 지정하면 임시테이블이 생성됩니다.해당 테이블은 세션의 종료, 혹은 tx 의 종료 때 자동으로 drop 됩니다.TEMP 테이블은 AUTOVACUUM Daemon 의 대상이 되지 않기에, 복잡한 쿼리에 이 테이블이 사용되는 경우Analyze.. 더보기
PostgreSQL TABLESPACE TABLESPACECOMMAND테이블 스페이스 생성CREATE TABLESPACE fastspace LOCATION '/ssd1/postgresql/data';CREATE TABLESPACE tablespace_name [ OWNER { new_owner | CURRENT_USER | SESSION_USER } ] LOCATION 'directory' [ WITH ( tablespace_option = value [, ... ] ) ]tablespace_option 에는 seq_page_cost, random_page_cost, effective_io_concurrency 를 사용할 수 있습니다.해당 옵션을 지정하는 경우 해당 옵션과 동일한 이름의 parameter 에 셋팅 된 값을 OVERRIDE 합니.. 더보기
PostgreSQL 메타 커맨드 exDESCRIBE\d[+]스키마의 각종 정보를 조회\d - 현재 스키마의 릴레이션을 조회\d+ - 현재 스키마의 릴레이션에 사이즈 및 코멘트 정보까지 포함\d table - 테이블 구성정보를 조회 ( 인덱스 정보 포함 )\d+ table - 테이블 구성정보에 통계 및 코멘트 정보까지 포함DESCRIBE\ddconstraint, operator class, operator family, rule, trigger 에 대한 정보를 조회 DESCRIBE\daAggregate functions 을 리스팅 DESCRIBE\db[+]TABLESPACE 정보를 리스팅 DESCRIBE\dfFunctions 대상을 리스팅 DESCRIBE\dgDatabase role 을 리스팅 DESCRIBE\dlLarge Objects.. 더보기