[linux] Linux의 PostgreSQL 데이터베이스 기본 위치

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.confparam을 찾아 볼 수 있습니다 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)