回答:
データディレクトリの場所を確認するには、このクエリを使用します。
show data_directory;
すべてのランタイムパラメータを表示するには、次を使用します。
show all;
ファイルシステムの他の部分にデータベースオブジェクトを格納するためのテーブルスペースを作成できます。そのデータディレクトリにない可能性があるテーブルスペースを表示するには、このクエリを使用します。
SELECT * FROM pg_tablespace;
Windows7では、すべてのデータベースはのpg_database
下にあるファイル内の番号で参照されますC:\Program Files (x86)\PostgreSQL\8.2\data\global
。次に、下の番号でフォルダ名を検索しますC:\Program Files (x86)\PostgreSQL\8.2\data\base
。それがデータベースの内容です。
pgAdminを開き、特定のデータベースのプロパティに移動します。OIDを見つけてディレクトリを開く
<POSTGRESQL_DIRECTORY>/data/base/<OID>
DBファイルがあるはずです。
SELECT oid from pg_database where datname = '<dbname>'
「LinuxでのPostgreSQLデータベースのデフォルトの場所」で提案されているように、Linuxでは次のコマンドを使用して確認できます。
ps aux | grep postgres | grep -- -D
私のLinuxインストールでは、ここにあります: /var/lib/postgresql/8.x/
あなたはそれを変えることができます initdb -D "c:/mydb/"
/var/lib/pgsql/data
ます。を使用して調べる方が良いps auxw|grep postgres|grep -- -D
。
pg_ctl start
次のエラーを試して受け取ったので、この質問をしていると思います。
pg_ctl:データベースディレクトリが指定されておらず、環境変数PGDATAが設定されていません
言い換えれば、あなたは-D
あなたのpg_ctl start
コマンドの後に置くディレクトリを探しています。
この場合、探しているディレクトリにはこれらのファイルが含まれています。
PG_VERSION pg_dynshmem pg_multixact
pg_snapshots pg_tblspc postgresql.conf
base pg_hba.conf pg_notify
pg_stat pg_twophase postmaster.opts
global pg_ident.conf pg_replslot
pg_stat_tmp pg_xlog postmaster.pid
pg_clog pg_logical pg_serial
pg_subtrans postgresql.auto.conf server.log
OSで提供されている検索を使用して、上記のファイルとディレクトリのいずれかを検索することで検索できます。
たとえば、私の場合(Mac OS XでのHomeBrewインストール)、これらのファイルはにあります。サーバーを起動するには、次のように入力します。/usr/local/var/postgres
pg_ctl -D /usr/local/var/postgres -w start
...そしてそれは機能します。
brew info postgres
locate <filename>
sudo locate <filename>
Postgresは、データディレクトリのファイルにデータを保存します。以下の手順に従って、データベースとそのファイルに移動します。
postgresqlテーブルファイルに対応するデータベースはディレクトリです。データディレクトリ全体の場所は、を実行して取得できますSHOW data_directory
。UNIXのようなOS(例:Mac)/Library/PostgreSQL/9.4/data
では、すべてのデータベースフォルダがあるデータディレクトリのベースフォルダ内に移動します。/Library/PostgreSQL/9.4/data/base
実行してデータベースフォルダー名を検索します(整数を指定します。これはデータベースフォルダー名です)。
SELECT oid from pg_database WHERE datname = <database_name>;
実行してテーブルファイル名を見つけます(整数を指定します。これはファイル名です):
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
これはバイナリファイルです。サイズや作成日時などのファイル詳細は通常通り取得できます。詳細については、このSOスレッドをお読みください
Macの場合: /Library/PostgreSQL/9.0/data/base
ディレクトリは入力できませんが、次の方法でコンテンツを確認できます。 sudo du -hc data
/usr/local/var/postgres
ますがMikeSherrillの@使用して発見することができshow data_directory;
、先端
/Library/PostgreSQL/9.0/data/base
よりもMacに似た場所のようです/usr/local/var/postgres
。非表示のFinder機能を有効にしないと、Finderで後者を参照することはできません。
Windowsでは、PostgresSQLドキュメントが記述する PGDATAディレクトリはのような場所にありC:\Program Files\PostgreSQL\8.1\data
ます。特定のデータベースのデータは(たとえば)の下にC:\Program Files\PostgreSQL\8.1\data\base\100929
あります。ここで、100929はデータベース番号です。
picmateの答えは正しいです。Windowsでは、メインDBフォルダーの場所は(少なくとも私のインストールでは)
C:\PostgreSQL\9.2\data\base\
プログラムファイルではありません。
彼の2つのスクリプトは、必要な正確なディレクトリ/ファイルを提供します。
SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>;
私のデータは16393で、relfilenodeは41603です。
私はドッカーコンテナーでPostgres(9.5)を実行しています(CentOSの場合)。上記のコメントでSkippy le Grand Gourouが言及しているように、ファイルはにあり/var/lib/postgresql/data/
ます。
$ docker exec -it my-postgres-db-container bash
root@c7d61efe2a5d:/# cd /var/lib/postgresql/data/
root@c7d61efe2a5d:/var/lib/postgresql/data# ls -lh
total 56K
drwx------. 7 postgres postgres 71 Apr 5 2018 base
drwx------. 2 postgres postgres 4.0K Nov 2 02:42 global
drwx------. 2 postgres postgres 18 Dec 27 2017 pg_clog
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_commit_ts
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_dynshmem
-rw-------. 1 postgres postgres 4.4K Dec 27 2017 pg_hba.conf
-rw-------. 1 postgres postgres 1.6K Dec 27 2017 pg_ident.conf
drwx------. 4 postgres postgres 39 Dec 27 2017 pg_logical
drwx------. 4 postgres postgres 36 Dec 27 2017 pg_multixact
drwx------. 2 postgres postgres 18 Nov 2 02:42 pg_notify
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_replslot
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_serial
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_snapshots
drwx------. 2 postgres postgres 6 Sep 16 21:15 pg_stat
drwx------. 2 postgres postgres 63 Nov 8 02:41 pg_stat_tmp
drwx------. 2 postgres postgres 18 Oct 24 2018 pg_subtrans
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_tblspc
drwx------. 2 postgres postgres 6 Dec 27 2017 pg_twophase
-rw-------. 1 postgres postgres 4 Dec 27 2017 PG_VERSION
drwx------. 3 postgres postgres 92 Dec 20 2018 pg_xlog
-rw-------. 1 postgres postgres 88 Dec 27 2017 postgresql.auto.conf
-rw-------. 1 postgres postgres 21K Dec 27 2017 postgresql.conf
-rw-------. 1 postgres postgres 37 Nov 2 02:42 postmaster.opts
-rw-------. 1 postgres postgres 85 Nov 2 02:42 postmaster.pid