1. ホーム
  2. linux

[解決済み] LinuxにおけるPostgreSQLデータベースのデフォルトの場所

2022-06-01 13:33:53

質問

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

どのように解決するのですか?

このような場合、" postgresql がすべてのデータベースを保存するディレクトリです。 (および設定)はデータディレクトリと呼ばれ、PostgreSQLが(少し紛らわしいですが)"と呼んでいるものに相当します。 データベースクラスタ これは分散コンピューティングとは関係なく、単にPostgreSQLサーバによって管理されるデータベースと関連オブジェクトのグループという意味です。

データディレクトリの位置は配布物に依存します。ソースからインストールした場合、デフォルトは /usr/local/pgsql/data :

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

さらに、稼働中の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ポートでリッスンします。