PostgreSQLがLinux上のすべてのデータベースを保持するデフォルトのディレクトリは何ですか?
「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ポートでリッスンします。
/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.htmlhttps://www.postgresql.org/docs/current/runtime-config-file- locations.html
パッケージマネージャーを使用したインストール後の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 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)