2. DBMS이야기/01. PostgreSQL 89

[PostgreSQL ADMIN] 정기적인 Vacuum 작업

1. 정기적인 Vacuum 작업 PostgreSQL 데이터베이스에서는 vacuum (배큠이라고 읽는다) 이라는 주기적인 관리 작업이 필요하다. (영어권에서는 vacuuming 단어는 '청소기 돌리기'라는 뜻으로 이미 일상 용어로 사용되고 있고, 이것을 데이터베이스 용어로 사용하였다. 이 글에서는 그냥 vacuum을 그대로 사용한다. - 옮긴이) 이 작업은 대부분의 서버 환경에서는 autovacuum 데몬이 담당해서 자동으로 처리 되기 때문에, 특별히 신경 쓸 필요는 없다.autovacuum 관련 환경 설정값을 바꾸어서 그 데몬의 동작 상태를 조절 할 수 있다. 또한 몇몇 데이터베이스 관리자는 VACUUM 명령을 직접 실행하는 것이 데이터베이스를 효율적으로 사용할 수 있다고 판단해서, cron 이나, 작업..

[PostgreSQL ADMIN] DBMS 접근제한 설정

dbms 접근제한 설정하기 /var/lib/pgsql/data/pg_hba.conf 파일에 있는 다른 줄은 주석처리하고 아래 내용만 넣음. local 은 로컬에서의 접속을 지정하며 host 를 이용하여 ip를 이용해서 제한을 할 수 있음. 처음 설치 후 postgresql 을 띄우면 다음과 같이 설정이 되어 있다. # grep -v "^#" /var/lib/pgsql/data/pg_hba.conf local all all ident sameuser host all all 127.0.0.1/32 ident sameuser host all all ::1/128 ident sameuser 아래는 특정 ip 대역에서 사용자 인증을 통하여 접속하도록 설정하는 예제이다. local all all password h..

VACUUM vs VACUUM FULL

1. VACUUM 1 ▷ 1 ▷ 1 2 2 2 3 (3) 4 4 4 5 (5) 6 6 6 3, 5를 삭제하고 난 후 VACUUM 이 후 위에 보이는 것은 블록의 data 이다. delete가 발생하는 경우, 괄호 안의 값처럼 data가 지워지지 않은 체 flag 값만 변경되어 해당 블록은 사용할 수 없는 공간으로 남게 된다. 이 경우, VACUUM 명령을 통해 delete flag가 있는 data를 영구히 지워버림으로써 해당 블록을 사용할 수 있는 공간으로 비워주게 된다. VACUUM은 table의 Lock을 걸지 않으므로 운영 중에도 사용이 가능하다. 2. VACUUM FULL 1 ▷ 1 ▷ 1 ▷ 1 2 2 2 2 3 (3) 4 4 4 4 6 6 5 (5) #1 6 6 3, 5를 삭제 VACUUM F..

[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(..