PostgreSQL'in tüm veritabanlarını Linux'ta tutacağı varsayılan dizin nedir?
PostgreSQL'in tüm veritabanlarını Linux'ta tutacağı varsayılan dizin nedir?
Yanıtlar:
" Postgresql'in tüm veritabanlarını tutacağı dizine " (ve yapılandırmaya) "veri dizini" denir ve PostgreSQL'in dağıtılmış hesaplamayla ilgili olmayan bir " veritabanı kümesi " olarak adlandırdığı (biraz kafa karıştırıcı bir şekilde) karşılık gelir, yalnızca bir grup anlamına gelir. PostgreSQL sunucusu tarafından yönetilen veritabanları ve ilgili nesneler.
Veri dizininin konumu dağıtıma bağlıdır. Kaynaktan kurarsanız, varsayılan şudur /usr/local/pgsql/data
:
Dosya sistemi terimleriyle, bir veritabanı kümesi, tüm verilerin depolanacağı tek bir dizin olacaktır. Buna veri dizini veya veri alanı diyoruz. Verilerinizi nerede depolayacağınız tamamen size bağlıdır. Varsayılan bir seçenek yoktur, ancak / usr / local / pgsql / data veya / var / lib / pgsql / data gibi konumlar popülerdir. ( ref )
Ayrıca, çalışan bir PostgreSQL sunucusunun bir örneği bir kümeyle ilişkilendirilir; veri dizininin konumu , komut satırı seçeneğinde sunucu arka plan programına (" postmaster " veya " postgres ") -D
veya PGDATA
ortam değişkeni (genellikle çalışan kullanıcının kapsamında) tarafından iletilebilir postgres
. Çalışan sunucuyu genellikle şuna benzer bir şekilde görebilirsiniz:
[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
Çok sık olmasa da, aynı PostgreSQL sunucusunun farklı "kümelere" (veri dizinleri) hizmet eden iki örneğini (aynı ikili dosyalar, farklı işlemler) çalıştırmanın mümkün olduğuna dikkat edin. Elbette, her örnek kendi TCP / IP bağlantı noktasında dinleyecektir.
/var/lib/postgresql/[version]/data/
Varsayılan olarak en azından Gentoo Linux ve Ubuntu 14.04'te.
postgresql.conf
Param'ı bulabilir ve bakabilirsiniz data_directory
. Yorumlanmışsa, veritabanı dizini bu yapılandırma dosyası dizini ile aynıdır.
/var/lib/8.1/postgresql
/var/lib/pgsql/9.3
Bir veritabanına bağlanın ve şu komutu yürütün:
SHOW data_directory;
Daha fazla bilgi:
https://www.postgresql.org/docs/current/sql-show.html https://www.postgresql.org/docs/current/runtime-config-file-locations.html
Apt-get paket yöneticisi ile kurulumdan sonra Debian 8.1 ve PostgreSQL 9.4'te varsayılan
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
çok görünüşe göre /var/lib/postgresql/9.4/main
.
Komut pg_lsclusters
(en azından Linux / Ubuntu altında) mevcut kümeleri ve bununla birlikte veri dizinini listelemek için kullanılabilir:
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
Bence en iyi yöntem pg_setting
görünümü sorgulamaktır :
select s.name, s.setting, s.short_desc from pg_settings s where s.name='data_directory';
Çıktı:
name | setting | short_desc
----------------+------------------------+-----------------------------------
data_directory | /var/lib/pgsql/10/data | Sets the server's data directory.
(1 row)
Aşağıdaki sorgu, postgres yapılandırma dosyasını bulmaya yardımcı olacaktır.
postgres=# SHOW config_file;
config_file
-------------------------------------
/var/lib/pgsql/data/postgresql.conf
(1 row)
[root@node1 usr]# cd /var/lib/pgsql/data/
[root@node1 data]# ls -lrth
total 48K
-rw------- 1 postgres postgres 4 Nov 25 13:58 PG_VERSION
drwx------ 2 postgres postgres 6 Nov 25 13:58 pg_twophase
drwx------ 2 postgres postgres 6 Nov 25 13:58 pg_tblspc
drwx------ 2 postgres postgres 6 Nov 25 13:58 pg_snapshots
drwx------ 2 postgres postgres 6 Nov 25 13:58 pg_serial
drwx------ 4 postgres postgres 36 Nov 25 13:58 pg_multixact
-rw------- 1 postgres postgres 20K Nov 25 13:58 postgresql.conf
-rw------- 1 postgres postgres 1.6K Nov 25 13:58 pg_ident.conf
-rw------- 1 postgres postgres 4.2K Nov 25 13:58 pg_hba.conf
drwx------ 3 postgres postgres 60 Nov 25 13:58 pg_xlog
drwx------ 2 postgres postgres 18 Nov 25 13:58 pg_subtrans
drwx------ 2 postgres postgres 18 Nov 25 13:58 pg_clog
drwx------ 5 postgres postgres 41 Nov 25 13:58 base
-rw------- 1 postgres postgres 92 Nov 25 14:00 postmaster.pid
drwx------ 2 postgres postgres 18 Nov 25 14:00 pg_notify
-rw------- 1 postgres postgres 57 Nov 25 14:00 postmaster.opts
drwx------ 2 postgres postgres 32 Nov 25 14:00 pg_log
drwx------ 2 postgres postgres 4.0K Nov 25 14:00 global
drwx------ 2 postgres postgres 25 Nov 25 14:20 pg_stat_tmp