LinuxでのPostgreSQLデータベースのデフォルトの場所


回答:


134

postgresqlがすべてのデータベースを保持するディレクトリ(および構成)」は「データディレクトリ」と呼ばれ、分散コンピューティングに関連しないPostgreSQLが(少し混乱します)「データベースクラスタ」と呼んでいるものに対応します。これは単にグループを意味しますPostgreSQLサーバーによって管理されるデータベースと関連オブジェクトのセット。

データディレクトリの場所は、ディストリビューションによって異なります。ソースからインストールする場合、デフォルトは/usr/local/pgsql/data次のとおりです。

ファイルシステムの用語では、データベースクラスタは、すべてのデータが格納される単一のディレクトリになります。これをデータディレクトリまたはデータ領域と呼びます。データの保存場所は完全にあなた次第です。デフォルトはありませんが、/ usr / local / pgsql / dataや/ var / lib / pgsql / dataなどの場所が一般的です。(参照

さらに、実行中のPostgreSQLサーバーのインスタンスが1つのクラスターに関連付けられています。データディレクトリの場所は、コマンドラインオプションでサーバーデーモン(「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サーバーの2つのインスタンス(同じバイナリ、異なるプロセス)を実行することもできます。もちろん、各インスタンスは独自のTCP / IPポートでリッスンします。


現在のデータディレクトリは表示されますが、他の多くのフォルダーとファイルが表示されます。psqlはデータベースを多くのファイルに「保存」しますか、それともこのデータディレクトリ内にDBである1つだけですか たとえば、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それは答えです、あなたはこのコメントを答えにしませんか。それは私にはうまくいきました。
Vishal 2013年

Gnomeでも同じように見えます/var/lib/8.1/postgresql
ジュニアMayhé2014

私にとってその「/var/lib/postgresql/9.3/main」
radtek

9
/var/lib/pgsql/9.3
Centos


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.