Top

PostgreSQL 9.4 공식 가이드 Vol.1 서버 관리

  • 원서명PostgreSQL Documentation 9.4.4
  • 지은이The PostgreSQL Global Development Group
  • 옮긴이(주)비트나인
  • ISBN : 9788960777798
  • 30,000원
  • 2015년 10월 30일 펴냄
  • 페이퍼백 | 448쪽 | 188*235mm
  • 시리즈 : 오픈소스 프로그래밍

책 소개

요약

PostgreSQL 공식 가이드 9.4 버전 문서에서 ‘3부, 서버 관리’ 부분을 발췌해 한 권의 책으로 출간되었다. 이 책에서는 PostgreSQL을 사용하는 데 있어서 데이터베이스 관리자에게 가장 필요한 내용인 데이터베이스 서버 관리 방법을 다룬다. ‘PostgreSQL 공식 가이드’는 PostgreSQL 개발자 및 그 외 지원자가 PostgreSQL 소프트웨어 개발과 병행해 작성된 문서로서, 이번 책 ‘Vol.1 서버 관리’에서는 PostgreSQL 서버를 실행하는 모든 사람을 위해 서버의 설치와 관리 기법을 설명한다. 향후 PostgreSQL 공식 가이드 9.4 버전 중 시리즈로서 ‘SQL 언어’와 ‘서버 프로그래밍’도 2권의 책으로 출간될 예정이다.

이 책에서 다루는 내용

소스코드를 이용하여 다양한 플랫폼에서 PostgreSQL을 설치하는 방법

서버 생성 및 시작, 스푸핑 방지 등 서버를 세팅하는 방법

WAL, 쿼리 계획, 에러 핸들링 등 서버 관리에 도움이 되는 여러 가지 설정

클라이언트 인증 및 데이터베이스를 관리하는 방법

백업, 고가용성 및 복제 등의 설정, 사용법에 대한 내용

디스크 사용량, 통계 수집 등 다양한 정보를 확인할 수 있는 모니터링 기능

회귀테스트를 수행하는 방법

이 책의 대상 독자

오픈소스 DBMS를 구축하고 싶은 데이터베이스 관리자

PostgreSQL DBMS 기반으로 구축된 데이터베이스의 관리자

PostgreSQL을 도입하려는 기업 담당자

개인용도로 PostgreSQL 서버를 구축하는 사용자

이 책의 구성

이 책은 관리자 안내서로 PostgreSQL 데이터베이스 관리자에게 필요한 주제를 다룬다. 소프트웨어 설치 및 셋업, 서버 환경 설정, 사용자와 데이터베이스 관리, 정기적인 관리에 대한 내용이 들어 있다. PostgreSQL 서버를 개인 용도로 쓰거나 특히 운영상 사용해야 하는 경우, 이 주제들에 익숙해야 한다. 이 책은 처음 PostgreSQL 사용 시 읽으면 좋은 순서로 정리해 놓았다. 각 장의 내용은 독립적이기 때문에 개인의 선호에 따라 읽으면 된다. 내용은 주제 단위로 기술되어 있으며, PostgreSQL 데이터베이스 시스템 기본 사용법에 익숙한 독자들이 읽을 수 있다.

저자/역자 소개

지은이 소개

The PostgreSQL Global Development Group

PostgreSQL 데이터베이스를 개발하는 개발자 그룹이다. 전 세계적으로 여러 기업의 개발자가 PostgreSQL의 개발에 참여하고 있으며 미국의 EnterpriseDB와 Salesforce, MeetMe.com, PostgreSQL Expertes INC., 2ndQuadrant 등 뿐만 아니라 일본의 NTT, 러시아 등 다양한 국가의 개발자가 프로젝트의 맴버로 활동하고 있다. 프로젝트의 주요 컨트리뷰터의 목록은 www.postgresql.org/community/contributors/에서 확인할 수 있다. PostgreSQL의 개발은 오픈소스로 진행되며 엄격한 심사를 통해 컨트리뷰터를 선정하고 있다. 또한 다양한 메일링 리스트를 통해 자유롭게 의견을 교환하며 개발을 진행하고 있으며, 일반 사용자들도 메일링 리스트를 통해 PostgreSQL에 대한 질문하고 개발자로부터 직접 답변을 받을 수 있다. 데이터베이스 엔진의 개발뿐만 아니라 이 책의 원문인 PostgreSQL Documentation 작성, 다양한 컨퍼런스의 개최 등 많은 활동을 하고 있다.

한국어판을 위한 추천의 글

PostgreSQL의 공식 가이드가 한국어판 서적으로 번역 출간된다는 소식을 들으니 매우 기쁩니다. PostgreSQL 공식 가이드는 양이 방대하고 내용도 쉽지 않다 보니 몇 개의 언어로만 번역됐습니다. 이런 상황에서 한국어 버전이 나온다는 것은 대단한 일입니다.
복잡한 소프트웨어를 사용하는 사용자에게 확신을 주기 위해서는 자국어로 번역된 문서가 매우 중요합니다. PostgreSQL 프로젝트는 공식 가이드가 매우 훌륭하다는 평가를 받고 있으며, 이번 한국어판 출간 덕분에 한국의 사용자는 PostgreSQL의 전문 기술을 훨씬 빠르게 습득할 수 있을 것입니다.
PostgreSQL은 아시아 지역에서 오래 전부터 사용되어왔습니다. 이번 한국어판 출간을 기점으로, PostgreSQL이 한국에서도 광범위하게 도입되는 시작의 불씨가 되길 바랍니다.
-브루스 몸지안(Bruce Momjian) / The PostgreSQL Global Development Group 공동설립자,EnterpriseDB 수석 데이터베이스 아키텍트

옮긴이의 말

최근 오픈소스에 대한 인식이 변화하고 도입 사례도 매우 빠르게 증가하고 있습니다. 이전에는 오픈소스 솔루션은 개인 또는 소규모 비즈니스 운영에만 적용했다면 이제는 대기업과 공공 기관에서도 적극적으로 오픈소스 솔루션을 도입하고 있는 실정입니다. 이런 변화는 그만큼 오픈소스 솔루션이 발전했음을 반영하는 것으로 볼 수 있습니다. 오픈소스의 성공 사례로 대부분 리눅스를 꼽지만 오픈소스 데이터베이스인 PostgreSQL에 대해서는 국내에는 아직 잘 알려지지 않았습니다. PostgreSQL은 20년 전부터 개발된 데이터베이스로 데이터베이스의 역사와 함께 발전해온 오픈소스 데이터베이스입니다. 전 세계적인 커뮤니티를 갖고 있으며 소스 코드에 대한 어떠한 형태의 사용과 배포도 허용하는 진정한 의미의 오픈소스 프로젝트라 할 수 있습니다.

흔히 오픈소스 데이터베이스라 하면 안정성과 성능에 대해 의구심을 갖지만 PostgreSQL은 세계적으로 많은 레퍼런스를 갖고 있으며 오랜 개발 역사가 말해주듯 매우 뛰어난 성능과 안정성을 제공하고 있습니다. 하지만 이런 우수성에 비해 국내에서는 PostgreSQL에 대한 인지도와 보급은 매우 낮은 실정입니다. 외국에서는 PostgreSQL의 도입 사례가 많고 인지도도 매우 높지만 반대로 국내에서는 외산 데이터베이스 솔루션이 독점하고 있고 이로 인해 많은 부작용이 발생하고 있는 상황입니다.

저희 (주)비트나인은 국내의 이런 왜곡된 데이터베이스 시장 구조를 개선하고자 PostgreSQL의 보급에 앞장서고 있습니다. 국내 데이터베이스 시장에서의 외산 솔루션의 독점으로 인해 많은 외화가 유출되고 있으며 독점적인 위치를 이용한 비합리적인 관행도 많이 벌어지는 상황입니다. 아직까지는 외산 솔루션에 대적할 만한 국산 솔루션이 없었기 때문에 이런 상황을 두고 볼 수밖에 없었지만 이제는 오픈소스 소프트웨어의 발전으로 이런 상황이 달라지고 있습니다. 특히 PostgreSQL은 뛰어난 성능과 안정성으로 엔터프라이즈급의 서비스도 처리할 수 있어 외산 솔루션을 대체할 대안으로 각광을 받고 있습니다. (주)비트나인은 PostgreSQL의 보급을 위해 많은 노력을 기울이고 있으며 그중 하나의 결실로 이 책을 출간하게 됐습니다.

저희는 국내에 PostgreSQL의 인지도를 높이기 위해 가장 시급한 일은 개발자가 쉽게 PostgreSQL을 이해하고 기술을 습득하는 데 도움을 줄 수 있는 책을 발간하는 것이라 생각했습니다. 국내외 데이터베이스(오라클, MySQL, CUBRID 등)에 대해 한글로 작성된 책들은 상당히 많이 존재합니다. 하지만 오픈소스 DBMS인 PostgreSQL에 대한 책은 대부분 영문으로 쓰여진 원서가 대부분이며, 국내에서 한글로 된 PostgreSQL의 매뉴얼은 전혀 없는 실정입니다. 실제로 국내에서는 아직 PostgreSQL을 사용하는 업체가 소수이며, 해당 DBMS를 다루는 관리자의 경우 문제가 발생하였을 때 일부 블로거들이 작성한 글을 제외하면 그에 관련된 한글 레퍼런스를 찾기도 어렵습니다. 영문 버전 역시 PostgreSQL 공식 홈페이지를 통해 온라인으로만 제공되고 있으며 실제 개발자들이 쉽게 접근하고 사용할 수 있는 책은 국내에서는 찾기 어렵습니다.

이러한 불편함을 해소하고자 저희 비트나인은 PostgreSQL을 사용하는 국내 사용자들의 언어 장벽을 낮춰 쉽게 PostgreSQL을 접할 수 있도록 영문 매뉴얼을 번역하여 제공하고자 합니다. 이 책은 PostgreSQL 공식 가이드 9.4 버전을 번역한 책으로 총 세 권 중 첫 번째 시리즈입니다. 이 책은 PostgreSQL을 사용하는 데 있어서 데이터베이스 관리자에게 가장 필요한 내용인 데이터베이스 서버 관리 방법을 다루고 있습니다.

1권: 서버 관리(PostgreSQL 공식 가이드 중 15~30장)

2권: SQL 언어(PostgreSQL 공식 가이드 중 1~14장)

3권: 서버 프로그래밍(PostgreSQL 공식 가이드 중 31~46장)

이 책을 통해 PostgreSQL에 대한 국내의 인식이 높아지고 오픈소스 데이터베이스 보급에 일조하기를 바랍니다.

- (주)비트나인 대표이사 강철순

옮긴이 소개

(주)비트나인

오픈소스 데이터베이스 및 그래프 데이터베이스 연구 개발 전문기업으로 좀 더 효율적이고 친환경적인 IT 솔루션 및 서비스를 제공하는 업체다. PostgreSQL에 대한 소스 코드 레벨의 기술력을 보유하고 있으며 PostgreSQL 커뮤니티의 일원으로 활동하고 있다. 또한, 최신 그래프 데이터 및 빅데이터 처리를 위한 기술력을 보유하고 관련 솔루션을 개발하고 있다. 비트나인의 솔루션으로는 PostgreSQL의 통합 패키지 버전인 Agens SQL과 그래프 데이터 처리를 위한 Agens Graph 및 통합 웹 UI 관리 도구인 Agens Manager가 있다.

(주)비트나인은 오픈소스의 가치를 통해 IT 기술 발전을 이루고자 한다. 모든 자사 솔루션을 오픈소스화하며 다양한 오픈소스 커뮤니티에 참가하고 주도하여 더욱 많은 사람들이 기술과 정보를 공유해 더욱 더 우수하고 진보된 기술을 창출하도록 노력하고 있다.

목차

목차
  • 1장 소스 코드로 설치
  • 1.1 짧은 버전
  • 1.2 요구 사항
  • 1.3 소스 다운로드
  • 1.4 설치 절차
  • 1.5 설치 후 셋업
  • 1.5.1 공유 라이브러리
  • 1.5.2 환경 변수
  • 1.6 지원 플랫폼
  • 1.7 플랫폼 특정 참고 사항
  • 1.7.1 AIX
  • 1.7.1.1 GCC 문제
  • 1.7.1.2 유닉스 도메인 소켓 끊어짐
  • 1.7.1.3 인터넷 주소 문제
  • 1.7.1.4 메모리 관리
  • 1.7.2 시그윈
  • 1.7.3 HP-UX
  • 1.7.4 MinGW/네이티브 윈도우
  • 1.7.4.1 윈도우에서 크래시 덤프 수집
  • 1.7.5 SCO 오픈서버 및 SCO 유닉스웨어
  • 1.7.5.1 스컹크웨어
  • 1.7.5.2 GNU Make
  • 1.7.5.3 Readline
  • 1.7.5.4 오픈서버에서 UDK 사용
  • 1.7.5.5 PostgreSQL Man 페이지 읽기
  • 1.7.5.6 7.1.1b 추가 기능에서의 C99 문제
  • 1.7.5.7 유닉스웨어에서의 스레딩
  • 1.7.6 솔라리스
  • 1.7.6.1 필수 툴
  • 1.7.6.2 OpenSSL에서의 문제
  • 1.7.6.3 실패한 테스트 프로그램에 대한 configure의 complain
  • 1.7.6.4 64비트 빌드 Crashes
  • 1.7.6.5 최적의 성능을 위한 컴파일
  • 1.7.6.6 PostgreSQL 추적용 DTrace 사용

  • 2장 윈도우에서 소스 코드로 설치
  • 2.1 비주얼 C++ 또는 마이크로소프트 윈도우 SDK를 이용한 빌드
  • 2.1.1 요구 사항
  • 2.1.2 64비트 윈도우에 대한 특별 고려사항
  • 2.1.3 빌드
  • 2.1.4 클리닝 및 설치
  • 2.1.5 회귀 테스트 실행
  • 2.1.6 문서 빌드
  • 2.2 비주얼 C++ 또는 볼랜드 C++를 사용한 libpq 빌드
  • 2.2.1 생성된 파일

  • 3장 서버 설정 및 운용
  • 3.1 PostgreSQL 사용자 계정
  • 3.2 데이터베이스 클러스터 생성
  • 3.2.1 네트워크 파일 시스템
  • 3.3 데이터베이스 서버 시작
  • 3.3.1 서버 시작 실패
  • 3.3.2 클라이언트 연결 문제
  • 3.4 커널 리소스 관리
  • 3.4.1 공유 메모리 및 세마포어
  • 3.4.2 리소스 제한
  • 3.4.3 리눅스 메모리 오버커밋
  • 3.4.4 리눅스 huge pages
  • 3.5 서버 셧다운
  • 3.6 PostgreSQL 클러스터 업그레이드
  • 3.6.1 pg_dumpall을 통한 데이터 업그레이드
  • 3.6.2 pg_upgrade를 통한 데이터 업그레이드
  • 3.6.3 복제를 통한 데이터 업그레이드
  • 3.7 서버 스푸핑 방지
  • 3.8 암호화 옵션
  • 3.9 SSL을 사용한 TCP/IP 연결 보호
  • 3.9.1 클라이언트 인증서 사용
  • 3.9.2 SSL 서버 파일 사용
  • 3.9.3 자체 서명된 인증서 생성
  • 3.10 SSH 터널을 사용해 TCP/IP 연결 보호
  • 3.11 윈도우에 이벤트 로그 등록

  • 4장 서버 구성
  • 4.1 매개변수 설정
  • 4.1.1 매개변수 이름 및 값
  • 4.1.2 구성 파일을 통한 매개변수 인터랙션
  • 4.1.3 SQL을 통한 매개변수 인터랙션
  • 4.1.4 셸을 통한 매개변수 인터랙션
  • 4.1.5 구성 파일 내용 관리
  • 4.2 파일 위치
  • 4.3 연결 및 인증
  • 4.3.1 연결 설정
  • 4.3.2 보안 및 인증
  • 4.4 리소스 소비
  • 4.4.1 메모리
  • 4.4.2 디스크
  • 4.4.3 커널 리소스 사용량
  • 4.4.4 비용 기반 Vacuum 지연
  • 4.4.5 백그라운드 Writer
  • 4.4.6 비동기 동작
  • 4.5 Write Ahead Log
  • 4.5.1 설정
  • 4.5.2 Checkpoints
  • 4.5.3 아카이빙
  • 4.6 복제
  • 4.6.1 전송 서버
  • 4.6.2 마스터 서버
  • 4.6.3 스탠바이 서버
  • 4.7 쿼리 플랜
  • 4.7.1 플래너 방법 구성
  • 4.7.2 플래너 비용 상수
  • 4.7.3 제네릭 쿼리 옵티마이저
  • 4.7.4 기타 플래너 옵션
  • 4.8 에러 리포팅 및 로깅
  • 4.8.1 Where To 로그
  • 4.8.2 When To 로그
  • 4.8.3 What To 로그
  • 4.8.4 CSV 형식 로그 출력 사용
  • 4.9 실시간 통계
  • 4.9.1 쿼리 및 인덱스 통계 콜렉터
  • 4.9.2 통계 모니터링
  • 4.10 자동 Vacuuming
  • 4.11 클라이언트 연결 기본값
  • 4.11.1 문(statement) 동작
  • 4.11.2 로케일 및 형식 지정
  • 4.11.3 공유 라이브러리 사전 로드
  • 4.11.4 그 외 기본값
  • 4.12 잠금 관리
  • 4.13 버전 및 플랫폼 호환성
  • 4.13.1 이전 PostgreSQL 버전
  • 4.13.2 플랫폼 및 클라이언트 호환성
  • 4.14 에러 처리
  • 4.15 프리셋 옵션
  • 4.16 커스텀 옵션
  • 4.17 개발자 옵션
  • 4.18 단축 옵션

  • 5장 클라이언트 인증
  • 5.1 pg_hba.conf 파일
  • 5.2 사용자 이름 맵
  • 5.3 인증 방법
  • 5.3.1 트러스트 인증
  • 5.3.2 패스워드 인증
  • 5.3.3 GSSAPI 인증
  • 5.3.4 SSPI 인증
  • 5.3.5 Ident 인증
  • 5.3.6 피어 인증
  • 5.3.7 LDAP 인증
  • 5.3.8 RADIUS 인증
  • 5.3.9 인증서 인증
  • 5.3.10 PAM 인증
  • 5.4 인증 문제

  • 6장 데이터베이스 role
  • 6.1 데이터베이스 role
  • 6.2 role 속성
  • 6.3 role 멤버십
  • 6.4 함수 및 트리거 보안

  • 7장 데이터베이스 관리
  • 7.1 개요
  • 7.2 데이터베이스 생성
  • 7.3 템플릿 데이터베이스
  • 7.4 데이터베이스 환경 설정
  • 7.5 데이터베이스 소멸
  • 7.6 테이블스페이스

  • 8장 로컬라이제이션
  • 8.1 로케일 지원
  • 8.1.1 개요
  • 8.1.2. 동작
  • 8.1.3. 문제
  • 8.2 콜레이션 지원
  • 8.2.1. 개념
  • 8.2.2 콜레이션 관리
  • 8.3 문자 집합 지원
  • 8.3.1 지원되는 문자 집합
  • 8.3.2 문자 집합 설정
  • 8.3.3 서버와 클라이언트 간 자동 문자 집합 변환
  • 8.3.4 추가 자료

  • 9장 정기적인 데이터베이스 유지관리 작업
  • 9.1 정기적인 Vacuuming
  • 9.1.1 Vacuuming 기초
  • 9.1.2 디스크 공간 복구
  • 9.1.3 실행 계획 통계 업데이트
  • 9.1.4 가시성 맵 업데이트
  • 9.1.5 트랜잭션 ID 랩어라운드 실패 방지
  • 9.1.5.1 Multixact 및 랩어라운드
  • 9.1.6 Autovacuum 데몬
  • 9.2 일상적인 리인덱싱
  • 9.3 로그 파일 유지관리

  • 10장 백업 및 복원
  • 10.1 SQL 덤프
  • 10.1.1 덤프 복원
  • 10.1.2 pg_dumpall 사용
  • 10.1.3 거대 데이터베이스 처리
  • 10.2 파일 시스템 레벨 백업
  • 10.3 연속 아카이빙 및 PITR
  • 10.3.1 WAL 아카이빙 셋업
  • 10.3.2 베이스 백업
  • 10.3.3 저수준 API를 사용한 베이스 백업
  • 10.3.4 연속 아카이브 백업을 사용한 복구
  • 10.3.5 타임라인
  • 10.3.6 팁 및 예제
  • 10.3.6.1 독립 실행형 핫 백업
  • 10.3.6.2 압축된 아카이브 로그
  • 10.3.6.3 archive_command 스크립트
  • 10.3.7 통고

  • 11장 고가용성, 로드 밸런싱 및 복제
  • 11.1 각종 솔루션 비교
  • 11.2 로그 전달 스탠바이 서버
  • 11.2.1 플래닝
  • 11.2.2 스탠바이 서버 운용
  • 11.2.3 스탠바이 서버를 위한 마스터 서버 준비
  • 11.2.4 스탠바이 서버 셋업
  • 11.2.5 스트리밍 복제
  • 11.2.5.1 인증
  • 11.2.5.2 모니터링
  • 11.2.6 복제 슬롯
  • 11.2.6.1 복제 슬롯 쿼리 및 조작
  • 11.2.6.2 구성 예제
  • 11.2.7 케스케이딩 복제
  • 11.2.8 동기 복제
  • 11.2.8.1 기초 구성
  • 11.2.8.2 성능에 대한 플래닝
  • 11.2.8.3 고가용성에 대한 플래닝
  • 11.3 페일오버
  • 11.4 로그 전달의 대안
  • 11.4.1 구현
  • 11.4.2 레코드 기반 로그 전달
  • 11.5 핫 스탠바이
  • 11.5.1 사용자 개요
  • 11.5.2 쿼리 충돌 처리
  • 11.5.3 관리자 개요
  • 11.5.4.핫 스탠바이 매개변수 참조
  • 11.5.5 통고

  • 12장 복구 구성
  • 12.1 아카이브 복구 설정
  • 12.2 복구 타깃 설정
  • 12.3 스탠바이 서버 설정

  • 13장 데이터베이스 활동 모니터링
  • 13.1 표준 유닉스 툴
  • 13.2 통계 수집기
  • 13.2.1 통계 수집 구성
  • 13.2.2 수집된 통계 보기
  • 13.2.3 통계 함수
  • 13.3 잠금 보기
  • 13.4 동적 트레이싱
  • 13.4.1 동적 트레이싱의 컴파일
  • 13.4.2 내장 프로브
  • 13.4.3 프로브 사용
  • 13.4.4 새 DTrace 정의

  • 14장 디스크 사용량 모니터링
  • 14.1 디스크 사용량 결정
  • 14.2 디스크 꽉 참 실패

  • 15장 안정성 및 Write-Ahead Log
  • 15.1 안정성
  • 15.2 WAL
  • 15.3 비동기 커밋
  • 15.4 WAL 환경 설정
  • 15.5 WAL 인터널

  • 16장 회귀 테스트
  • 16.1 테스트 실행
  • 16.1.1 임시 설치로 테스트 실행
  • 16.1.2 기존 설치로 테스트 실행
  • 16.1.3 추가 테스트 Suites
  • 16.1.4 로케일 및 ENCODING
  • 16.1.5 추가 테스트
  • 16.1.6 핫 스탠바이 테스트
  • 16.2 테스트 평가
  • 16.2.1 에러 메시지 차이
  • 16.2.2 로케일 차이
  • 16.2.3 날짜 및 시간 차이
  • 16.2.4 Floating-Point 차이
  • 16.2.5 행 순서 차이
  • 16.2.6 스택 깊이 부족
  • 16.2.7 ”random” 테스트
  • 16.2.8 구성 매개변수
  • 16.3 변종 비교 파일
  • 16.4 TAP 테스트
  • 16.5 테스트 커버리지 검사

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안