PostGreSQL 서버 구성

6710 단어
PostGreSQL을 사용한 이상 일반적인 SQL 문장, 보기, 트리거 등만 알고 주류 데이터베이스이기 때문에 이런 것들은 다른 데이터베이스 시스템과 기본적으로 차이가 많지 않다. 문법도 거의 같다. 서로 다른 것은 전체 시스템의 구조와 시스템 설정이 다르다. 이쪽은 구조를 말하지 않고 현재의 수준도 말할 수 없다. 아니면 사용하는 측면에서 보면자주 사용하는 시스템 설정과 관련된 기술을 이야기합시다.
서버 프로세스의 시작과 종료, 서버 기본 매개 변수 관련 설정, 시스템 메모리 최적화 관련 설정, 흔히 볼 수 있는 문제 매개 변수를 예로 들자.

1. 서버 프로세스의 시작과 종료


다음은 pg_ctl 명령의 사용 방법과 자주 사용하는 옵션입니다. 이 명령은postgres 명령의 봉인체이기 때문에 직접postgres를 사용하는 것보다 사용이 더 편리합니다.
pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"] pg_ctl start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"] pg_ctl stop [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] pg_ctl restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] pg_ctl reload [-D DATADIR] [-s] pg_ctl status [-D DATADIR] pg_ctl promote [-D DATADIR] [-s]

데이터베이스 서버의 정상적인 시작과 닫기 등 가장 자주 사용하는 사용법만 제시할 뿐이다.
start는postgres 서버 프로세스를 시작합니다. -D 데이터베이스 서버의 초기 디렉터리 저장 경로를 지정합니다. -l 데이터베이스 서버 프로세스의 로그 파일 지정
/> pg_ctl -w start -D /opt/PostgreSQL/9.4/data -l /opt/PostgreSQL/9.4/data/pg_log/startup.log

stop은postgres 서버 프로세스 - mfast가 시스템을 닫을 때fast의 닫기 모드를 사용합니다.
/> pg_ctl stop -m fast -w -D /opt/PostgreSQL/9.4/data

2. 서버 기본 매개 변수 관련 설정


PostgreSQL에서는 모든 구성 매개변수 이름이 대소문자로 민감하지 않습니다.각 매개변수는 부울, 정수, 부동 소수점, 문자열 등 네 가지 유형의 값을 수용할 수 있습니다.여기서 부울 값은 ON, OFF, TRUE, FALSE, YES, NO, 1 및 0이 될 수 있습니다.이 파라미터를 포함하는 프로필은postgresql입니다.conf, 이 파일은 보통 initdb 초기화된 데이터 (data) 디렉터리에 저장됩니다. 다음과 같은 설정 세션을 보십시오.
log_connections = yes 
log_destination = 'syslog' 
search_path = '$user, public' 

구성 값에 숫자가 포함되어 있으면 큰따옴표로 묶어야 하는 비헤이비어 주석 행(#)이 시작됩니다.만약 매개 변수 값 자체에 인용부호가 포함되어 있다면, 우리는 두 개의 인용부호 (추천 방법) 를 쓰거나 반사로 둘러싸거나 할 수 있다.여기서 주의해야 할 것은 모든 설정 매개 변수가 서버가 실행될 때 동적 수정을 실행할 수 있는 것은 아니며, 일부 매개 변수는 수정된 후에 서버가 다시 시작될 때까지 기다려야만 효력이 발생할 수 있다는 것이다.PostgreSQL은 다음과 같이 명령줄에서 직접 수정 명령을 실행하는 구성 매개변수를 수정하는 또 다른 방법도 제공합니다.
/> postgres -c log_connections=yes -c log_destination='syslog'   

이 때 명령줄에 설정된 매개 변수와 프로필의 매개 변수가 서로 충돌하면 명령줄에 제시된 매개 변수는 프로필에 이미 있는 매개 변수 값을 덮어씁니다.이외에도 ALTER DATABASE와 ALTER USER 등 PostgreSQL의 데이터 정의 명령을 통해 지정한 데이터베이스나 지정한 사용자의 설정 정보를 각각 수정할 수 있습니다.이 중 데이터베이스에 대한 설정은postgres 명령줄이나 프로필에서 지정한 설정을 덮어쓰고 사용자에 대한 설정으로 덮어쓰며 마지막에는 세션마다 옵션으로 덮어씁니다.다음은 서버 구성이 충돌할 때 PostgreSQL 서버는 다음과 같은 방식으로 우선 순위를 지정합니다. 1)세션 기반 구성;2). 사용자 기반 설정;3). 데이터베이스 기반 설정;4). postgres 명령줄에 지정된 설정;5). 프로필postgresql.conf에서 제시한 설정입니다.
마지막으로 설명해야 할 것은 일부 설정은 PostgreSQL의 set 명령을 통해 설정할 수 있다는 것이다. 예를 들어 psql에서 우리는 입력할 수 있다.
SET ENABLE_SEQSCAN TO OFF;  

show 명령을 사용하여 다음과 같이 지정된 구성의 현재 값을 표시할 수도 있습니다.
SHOW ENABLE_SEQSCAN;  

이와 동시에 우리도 수동으로 pg_를 조회할 수 있다settings 시스템 테이블의 방식으로 관심 있는 시스템 파라미터를 검색합니다.

3. 시스템 메모리 최적화 관련 구성


1、shared_buffers(integer)
데이터베이스 서버에서 사용할 수 있는 공유 메모리 수를 설정합니다.기본적으로 32MB로 설정할 수 있지만 128KB 이하는 아닙니다.이 값이 높을수록 시스템 성능에 이롭기 때문이다.이 설정 매개 변수는 데이터베이스가 시작될 때만 설정할 수 있습니다.이때 전용 데이터베이스 서버가 1G 이상이면 시스템 메모리의 25% 로 설정하는 것을 추천합니다
2、work_mem(integer)
PostgreSQL은 정렬 작업을 수행할 때 work_mem의 크기는 하나의 큰 결과 집합을 몇 개의 작은 것으로 나누는지와work_mem 크기의 임시 파일이 많지 않습니다.분명히 분할의 결과는 정렬의 속도를 낮추는 것이다.따라서 작업 증가_mem는 정렬의 속도를 높이는 데 도움이 된다.그러나 시스템에 여러 개의 정렬 작업이 동시에 존재한다면 모든 작업이 정렬할 때 사용하는 메모리 수량은work_mem, 따라서 이 값을 설정할 때 이 문제를 주의해야 합니다
3、maintence_work_mem(integer)
VACUM, CREATE INDEX 및 ALTER TABLE ADD FOREIGN KEY 등 유지 보수 작업에 사용할 최대 메모리 수를 지정합니다. 이 구성의 기본값은 16MB입니다.모든 세션은 같은 시간에 하나만 실행할 수 있기 때문에 사용 빈도가 높지 않지만, 이러한 지령은 왕왕 비교적 많은 시스템 자원을 소모하기 때문에 가능한 한 빨리 이 지령을 실행해야 한다

4. 일반적인 문제 매개 변수 예


PostGreSQL을 사용하여 팀 프로젝트 개발을 진행할 때 원격 접근 데이터, 데이터베이스 링크 제한과 같은 수요를 만날 수 있다. 물론 PostGreSQL 자체가 기본적으로 이 기능을 켜지 않기 때문에 수동으로 파라미터를 조정해야 한다.
1. 데이터베이스에 원격 접근 권한을 설정하려면 다음과 같이 해야 한다.
pg_hba.conf 파일:
# IPv4 local connections: 
host    all             all             127.0.0.1/32            md5  
host    all             all             0.0.0.0/0            md5  

첫 번째 비헤이비어는 IP 지정, 두 번째 비헤이비어의 모든 IP를 지정하며 일반적으로 모든 IP 권한을 열지 않습니다. 안전하기 때문입니다.
postgresql.conf 파일:
listen_addresses = '*'      # what IP address(es) to listen on; 

기본값은 모든 소스를 "*"감청하는 것입니다.
2. 서버 연결 제한을 수정하려면 다음과 같이 해야 한다.
postgresql.conf 파일:
max_connection=1000 

1000은 최대 클라이언트 연결 수입니다.
이상은 상용하는 일부 시스템 설정입니다. 물론 많은 것들이 있습니다. 이렇게 큰 데이터베이스 시스템은 이 정도일 수 없습니다. 이상은 상용 설정만 열거했을 뿐입니다. 앞으로 다른 여러 가지 설정을 만나 천천히 공부하고 발전할 것입니다.
판권 성명: 본고는 블로거의 오리지널 문장으로 블로거의 허락 없이 전재할 수 없습니다.

좋은 웹페이지 즐겨찾기