PostgreSQL이 Linux에서 모든 데이터베이스를 보관할 기본 디렉토리는 무엇입니까?
답변
postgresql이 모든 데이터베이스를 보관할 ” 디렉토리 (및 구성)”를 “데이터 디렉토리”라고하며 PostgreSQL 이 분산 컴퓨팅과 관련이없는 ” 데이터베이스 클러스터 “를 호출하는 (조금 혼란스럽게도) 일치 하며 그룹을 의미합니다. PostgreSQL 서버에서 관리하는 데이터베이스 및 관련 개체의
데이터 디렉토리의 위치는 배포에 따라 다릅니다. 소스에서 설치하는 경우 기본값은 /usr/local/pgsql/data
다음과 같습니다.
파일 시스템 측면에서 데이터베이스 클러스터는 모든 데이터가 저장되는 단일 디렉토리입니다. 이를 데이터 디렉토리 또는 데이터 영역이라고합니다. 데이터 저장 위치는 전적으로 귀하에게 달려 있습니다. 기본값은 없지만 / usr / local / pgsql / data 또는 / var / lib / pgsql / data와 같은 위치가 널리 사용됩니다. ( 심판 )
게다가 실행중인 PostgreSQL 서버의 인스턴스는 하나의 클러스터에 연결됩니다. 데이터 디렉토리의 위치는 명령 줄 옵션 에서 서버 데몬 ( ” postmaster “또는 ” postgres “)으로 전달 -D
되거나 PGDATA
환경 변수 (일반적으로 실행중인 사용자의 범위, 일반적으로 postgres
)에 의해 전달 될 수 있습니다. 일반적으로 다음과 같이 실행중인 서버를 볼 수 있습니다.
[root@server1 ~]# ps auxw | grep postgres | grep -- -D
postgres 1535 0.0 0.1 39768 1584 ? S May17 0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
자주는 아니지만 서로 다른 “클러스터”(데이터 디렉토리)를 제공하는 동일한 PostgreSQL 서버의 두 인스턴스 (동일한 바이너리, 다른 프로세스)를 실행할 수 있습니다. 물론 각 인스턴스는 자체 TCP / IP 포트에서 수신 대기합니다.
답변
/var/lib/postgresql/[version]/data/
적어도 Gentoo Linux 및 Ubuntu 14.04에서 기본적으로.
postgresql.conf
param을 찾아 볼 수 있습니다 data_directory
. 주석 처리 된 경우 데이터베이스 디렉토리는이 구성 파일 디렉토리와 동일합니다.
답변
데이터베이스에 연결하고 다음 명령을 실행합니다.
SHOW data_directory;
추가 정보:
https://www.postgresql.org/docs/current/sql-show.html
https://www.postgresql.org/docs/current/runtime-config-file-locations.html
답변
패키지 관리자 apt-get을 사용한 설치 후 Debian 8.1 및 PostgreSQL 9.4의 기본값
ps auxw | grep postgres | grep -- -D
postgres 17340 0.0 0.5 226700 21756 ? S 09:50 0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
그래서 분명히 /var/lib/postgresql/9.4/main
.
답변
Centos 6.5 / PostgreSQL 9.3 :
"PGDATA=/var/lib/pgsql/data"
초기 스크립트 파일에서 원하는 위치로 값을 변경 합니다 /etc/init.d/postgresql
.
에 기억 chmod 700
하고 chown postgres:postgres
새 위치로 당신은 보스입니다.
답변
명령 pg_lsclusters
(적어도 Linux / Ubuntu에서는)을 사용하여 기존 클러스터와 함께 데이터 디렉토리를 나열 할 수 있습니다.
Ver Cluster Port Status Owner Data directory Log file
9.5 main 5433 down postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
10 main 5432 down postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
답변
가장 좋은 방법은 pg_setting
뷰 를 쿼리하는 것입니다 .
select s.name, s.setting, s.short_desc from pg_settings s where s.name='data_directory';
산출:
name | setting | short_desc
----------------+------------------------+-----------------------------------
data_directory | /var/lib/pgsql/10/data | Sets the server's data directory.
(1 row)