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


답변:


134

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 포트에서 수신 대기합니다.


현재 데이터 디렉토리를 볼 수 있지만 다른 많은 폴더와 파일을 볼 수 있습니다. psql은 데이터베이스를 여러 파일에 "저장"합니까? 아니면이 데이터 디렉토리 내에 DB 인 데이터베이스가 하나만 있습니까? 예를 들어 mysql 또는 sql 서버의 DB 파일과 같은 것으로 생각했기 때문에 ...
CamiloVA

70
/var/lib/postgresql/[version]/data/

적어도 Gentoo Linux 및 Ubuntu 14.04에서 기본적으로.

postgresql.confparam을 찾아 볼 수 있습니다 data_directory. 주석 처리 된 경우 데이터베이스 디렉토리는이 구성 파일 디렉토리와 동일합니다.


21
배포판에 따라 다르지만 모두 약간 씩 다릅니다. 시스템에 연결할 수 있다면 "SHOW data_directory"를 사용하는 것이 가장 쉬운 방법 일 것입니다.
Magnus Hagander

@MagnusHagander 그것은 대답입니다, y이 의견을 대답으로 만들지 마십시오. 그것은 나를 위해 잘 작동했습니다.
Vishal

그놈에 내가 여기에 같은 참조/var/lib/8.1/postgresql
주니어 Mayhé

나에 대한 '/var/lib/postgresql/9.3/main'
radtek

9
Centos 7, postgres 9.3 경로/var/lib/pgsql/9.3
rana_stack 2015


15

패키지 관리자 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.


11

Centos 6.5 / PostgreSQL 9.3 :

"PGDATA=/var/lib/pgsql/data"초기 스크립트 파일에서 원하는 위치로 값을 변경 합니다 /etc/init.d/postgresql.

에 기억 chmod 700 하고 chown postgres:postgres새 위치로 당신은 보스입니다.


2

명령 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

1

가장 좋은 방법은 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)

1

아래 쿼리는 postgres 구성 파일을 찾는 데 도움이됩니다.

postgres=# SHOW config_file;
             config_file
-------------------------------------
 /var/lib/pgsql/data/postgresql.conf
(1 row)

[root@node1 usr]# cd /var/lib/pgsql/data/
[root@node1 data]# ls -lrth
total 48K
-rw------- 1 postgres postgres    4 Nov 25 13:58 PG_VERSION
drwx------ 2 postgres postgres    6 Nov 25 13:58 pg_twophase
drwx------ 2 postgres postgres    6 Nov 25 13:58 pg_tblspc
drwx------ 2 postgres postgres    6 Nov 25 13:58 pg_snapshots
drwx------ 2 postgres postgres    6 Nov 25 13:58 pg_serial
drwx------ 4 postgres postgres   36 Nov 25 13:58 pg_multixact
-rw------- 1 postgres postgres  20K Nov 25 13:58 postgresql.conf
-rw------- 1 postgres postgres 1.6K Nov 25 13:58 pg_ident.conf
-rw------- 1 postgres postgres 4.2K Nov 25 13:58 pg_hba.conf
drwx------ 3 postgres postgres   60 Nov 25 13:58 pg_xlog
drwx------ 2 postgres postgres   18 Nov 25 13:58 pg_subtrans
drwx------ 2 postgres postgres   18 Nov 25 13:58 pg_clog
drwx------ 5 postgres postgres   41 Nov 25 13:58 base
-rw------- 1 postgres postgres   92 Nov 25 14:00 postmaster.pid
drwx------ 2 postgres postgres   18 Nov 25 14:00 pg_notify
-rw------- 1 postgres postgres   57 Nov 25 14:00 postmaster.opts
drwx------ 2 postgres postgres   32 Nov 25 14:00 pg_log
drwx------ 2 postgres postgres 4.0K Nov 25 14:00 global
drwx------ 2 postgres postgres   25 Nov 25 14:20 pg_stat_tmp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.