2014/11 48

[PostgreSQL ADMIN] Backup & Recovery

Backup and Recovery Postgresql 의 백업과 복원은 크게 두가지 방법을 지원합니다. Postgresql 에서 제공하는 명령어를 이용하는 방법과 파일시스템을 통째로 백업하는 방법입니다. pg_dump Postgresql 에서는 'pg_dump'라는 유틸리티를 제공합니다. 말그대로 데이터베이스, 스키마, 테이블들을 백업할 수 있도록 해주는 프로그램입니다. 기본적인 사용방법은 다음과 같습니다. pg_dump -U username -Fc dbname > dump.sql pg_dump -U username -Fc -f dump.sql dbname -F 옵션은 덤프받을 파일의 타입을 설정하는 것으로 사용할 수 있는 타입은 다음과 같습니다. p : plain 으로 텍스트 파일로 출력을 합니다. ..

[PostgreSQL] PostgreSQL에서 Object 사이즈 관련

PostgreSQL에서 Object 사이즈 관련 PostgreSQL 는 Database, Table, Index 등 물리적인 크기를 확인할 수 있는 편리한 Function들을 제공한다. Funtion Name Description 1 pg_database_size() 데이터베이스 전체 사이즈 계산 2 pg_relation_size() 인덱스, 테이블의 사이즈 계산 3 pg_total_relation_size() 테이블 사이즈 체크시 연관된 인덱스 사이즈까지 합산 [TIP] 위 Function 의 결과값은 Byte 단위로 한눈에 파악이 어렵다. 이 때 pg_size_pretty()라는 유용한 함수를 사용하면 좀 더 파악이 유용하다. [DB의 전체 사이즈] GSM=# SELECT pg_size_pretty(..

MySQL InnoDB Next-Key Locking

InnoDB Next-Key Locking (phantom row 방지 기법) MySQL(InnoDB)의 트랜잭션 모델은 Repeatable Read Isolation 레벨을 기본으로 하고 있다. Repeatable Read는 Read Uncommitted, Read Committed 레벨과는 달리 Phatom Row가 발생하지 않는다는 장점이 있다. Phantom Row의 "Phatom"은 유령이라는 뜻으로, 아래와 같이 트랜잭션 수행중 다른 트랜잭션이 생성한 Row가 갑자기 나타나는 것을 말한다. 아래 예제에서는 Phantom Row를 만들기 위해 세션의 Isolation 레벨을 Read Committed로 변경하고, 2번째 SELECT 쿼리를 수행하기 전에 다른 트랜잭션에서 새로운 값을 INSERT..

[PostgreSQL]Hot-Standby Replication

Hot-Standby Replication 1. Architecture - 초기 Standby 서버 구성시 Primary DB의 백업본을 이용한 Restore 후, 변경분의 xLog를 이용하여 Replication 2. Flow (Hot standby) 3. 실습환경 구성 MASTER postgresql.conf 설정 wal_level = hot_standby archive_mode = on archive_command = "\\cp -f %p /archive/temp/%f && \\mv /archive/temp/%f /archive/pgdata && \\scp /archive/pgdata/%f standby_ip:/archive/pgdata/%f" -> Archive Log 파일 Slave DB로 전송..