web-dev-qa-db-ja.com

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

PostgreSQLがLinux上のすべてのデータベースを保持するデフォルトのディレクトリは何ですか?

102
gruszczy

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

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

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

また、実行中の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ポートでリッスンします。

120
leonbloy
/var/lib/postgresql/[version]/data/

少なくともデフォルトでは、Gentoo LinuxおよびUbuntu 14.04で。

postgresql.confを見つけて、param data_directoryを見ることができます。コメントされている場合、データベースディレクトリはこの設定ファイルディレクトリと同じです。

58
silent

データベースに接続し、コマンドを実行します。

SHOW data_directory;

詳しくは:

https://www.postgresql.org/docs/current/sql-show.htmlhttps://www.postgresql.org/docs/current/runtime-config-file- locations.html

16
Roby Sottini

パッケージマネージャーを使用したインストール後のDebian 8.1およびPostgreSQL 9.4のデフォルトapt-get

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 700chown postgres:postgresを忘れずに新しい場所に移動すると、あなたがボスになります。

9
Dum

コマンド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
0
k_o_

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)
0
Null