Linux 上で PostgreSQL がすべてのデータベースを保存するデフォルトのディレクトリは何ですか?
ベストアンサー1
「postgresqlがすべてのデータベースを保存するディレクトリ「(および設定)は「データディレクトリ」と呼ばれ、PostgreSQLが(少し紛らわしいですが)「データベース クラスター「」は分散コンピューティングとは関係なく、PostgreSQL サーバーによって管理されるデータベースと関連オブジェクトのグループを意味します。
データ ディレクトリの場所はディストリビューションによって異なります。ソースからインストールする場合、デフォルトは次のようになります/usr/local/pgsql/data
。
ファイル システムの観点から言えば、データベース クラスターは、すべてのデータが格納される単一のディレクトリになります。これをデータ ディレクトリまたはデータ領域と呼びます。データの格納場所は完全にユーザー次第です。デフォルトはありませんが、/usr/local/pgsql/data や /var/lib/pgsql/data などの場所が一般的です。(参照)
さらに、実行中のPostgreSQLサーバーのインスタンスは1つのクラスターに関連付けられており、そのデータディレクトリの場所はサーバーデーモンに渡すことができます("ポストグル") を-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 ポートをリッスンします。