PostGreSQL 서버 구성
서버 프로세스의 시작과 종료, 서버 기본 매개 변수 관련 설정, 시스템 메모리 최적화 관련 설정, 흔히 볼 수 있는 문제 매개 변수를 예로 들자.
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은 최대 클라이언트 연결 수입니다.
이상은 상용하는 일부 시스템 설정입니다. 물론 많은 것들이 있습니다. 이렇게 큰 데이터베이스 시스템은 이 정도일 수 없습니다. 이상은 상용 설정만 열거했을 뿐입니다. 앞으로 다른 여러 가지 설정을 만나 천천히 공부하고 발전할 것입니다.
판권 성명: 본고는 블로거의 오리지널 문장으로 블로거의 허락 없이 전재할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.