Linux पर PostgreSQL डेटाबेस डिफ़ॉल्ट स्थान


118

डिफ़ॉल्ट निर्देशिका क्या है जहां PostgreSQL लिनक्स पर सभी डेटाबेस रखेगा?


1
एक और सूत्र जहां उन्हीं सवालों पर चर्चा हुई। stackoverflow.com/questions/1137060/…
विशाल

जवाबों:


134

" निर्देशिका जहां पोस्टग्रैस्कल सभी डेटाबेस रखेगा " (और कॉन्फ़िगरेशन) को "डेटा निर्देशिका" कहा जाता है और जो पोस्टग्रेक्यूएल कॉल (थोड़ा भ्रमित) " डेटाबेस क्लस्टर " से मेल खाती है , जो वितरित कंप्यूटिंग से संबंधित नहीं है, इसका मतलब सिर्फ एक समूह है डेटाबेस और संबंधित ऑब्जेक्ट एक PostgreSQL सर्वर द्वारा प्रबंधित।

डेटा निर्देशिका का स्थान वितरण पर निर्भर करता है। यदि आप स्रोत से इंस्टॉल करते हैं, तो डिफ़ॉल्ट है /usr/local/pgsql/data:

फ़ाइल सिस्टम के संदर्भ में, एक डेटाबेस क्लस्टर एक एकल निर्देशिका होगी जिसके तहत सभी डेटा संग्रहीत किया जाएगा। इसे हम डेटा निर्देशिका या डेटा क्षेत्र कहते हैं। यह पूरी तरह से आपके ऊपर है जहां आप अपने डेटा को स्टोर करना चुनते हैं। कोई डिफ़ॉल्ट नहीं है, हालांकि / usr / स्थानीय / pgsql / डेटा या / var / lib / pgsql / डेटा जैसे स्थान लोकप्रिय हैं। ( रेफरी )

इसके अलावा, चल रहे PostgreSQL सर्वर का एक उदाहरण एक क्लस्टर से जुड़ा है; इसकी डेटा निर्देशिका का स्थान कमांड लाइन विकल्प में सर्वर डेमॉन (" पोस्टमास्टर " या " पोस्टग्रेज ") -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 सर्वर (एक ही बायनेरिज़, अलग-अलग प्रक्रियाओं) के दो उदाहरणों को चलाने के लिए जो अलग-अलग "क्लस्टर" (डेटा निर्देशिका) की सेवा करते हैं। बेशक, प्रत्येक उदाहरण अपने टीसीपी / आईपी पोर्ट पर सुनेंगे।


मैं वर्तमान डेटा निर्देशिका देख सकता हूं, लेकिन मुझे कई अन्य फ़ोल्डर और फाइलें दिखाई देती हैं। क्या psql डेटाबेस को कई फाइलों में "सेव" करता है या इस डेटा निर्देशिका के अंदर केवल एक ही है जो डीबी है? क्योंकि मैं उदाहरण के लिए mysql या sql सर्वर पर DB फाइल की तरह कुछ सोच रहा था ...
CamiloVA

70
/var/lib/postgresql/[version]/data/

कम से कम Gentoo Linux और Ubuntu 14.04 में डिफ़ॉल्ट रूप से।

आप postgresql.confपरम को पा सकते हैं और देख सकते हैं data_directory। यदि यह टिप्पणी की जाती है तो डेटाबेस निर्देशिका इस विन्यास फाइल निर्देशिका के समान है।


21
यह वितरण पर निर्भर करेगा, वे सभी इसे थोड़ा अलग तरीके से करते हैं। यदि आप सिस्टम से कनेक्ट कर सकते हैं, तो "SHOW data_directory" का उपयोग करना शायद सबसे आसान तरीका है।
मैग्नस हैगेंडर

@MagnusHagander यह एक उत्तर है, क्या आप इस टिप्पणी को उत्तर नहीं बनाते हैं। इसने मेरे लिए अच्छा काम किया।
विशाल

सूक्ति में मैं यहां वही देख रहा हूं/var/lib/8.1/postgresql
जूनियर मेहे

मेरे लिए इसका '' /वर / लाइब / पोस्टग्रेसेक्एल / 9.3 / मेन '
रेडटेक

9
/var/lib/pgsql/9.3
सेंटोस


15

पैकेज मैनेजर apt-get के साथ इंस्टॉलेशन के बाद Debian 8.1 और PostgreSQL 9.4 में डिफ़ॉल्ट

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


11

Centos 6.5 / PostgreSQL 9.3 पर:

"PGDATA=/var/lib/pgsql/data"प्रारंभिक स्क्रिप्ट फ़ाइल में आप जो भी स्थान चाहते हैं उसके मूल्य को बदल दें /etc/init.d/postgresql

के लिए याद रखें chmod 700 और chown postgres:postgresनए स्थान पर है और आप मालिक हो।


2

कमांड pg_lsclusters(कम से कम लिनक्स / उबंटू के तहत) का उपयोग मौजूदा समूहों को सूचीबद्ध करने के लिए किया जा सकता है और इसके साथ डेटा निर्देशिका भी:

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

1

मुझे लगता है कि सबसे अच्छा तरीका क्वेरी को 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)

1

नीचे क्वेरी कॉन्फ़िगरेशन फ़ाइल पोस्टग्रेज खोजने में मदद करेगी।

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.