লিনাক্সে পোস্টগ্রাইএসকিউএল ডাটাবেস ডিফল্ট অবস্থান


118

ডিফল্ট ডিরেক্টরিটি কী যেখানে PostgreSQL সমস্ত ডাটাবেস লিনাক্সে রাখে?


1
আরেকটি থ্রেড যেখানে একই প্রশ্নগুলি নিয়ে আলোচনা করা হয়েছিল। stackoverflow.com/questions/1137060/…
বিশাল

উত্তর:


134

" ডিরেক্টরি যেখানে পোস্টগ্র্যাস্কল সমস্ত ডাটাবেস রাখে " (এবং কনফিগারেশন) কে "ডেটা ডিরেক্টরি" বলা হয় এবং পোস্টগ্র্রেএসকিউএল কল করে (কিছুটা বিভ্রান্তিকরভাবে) একটি " ডাটাবেস ক্লাস্টার ", যা বিতরণকৃত কম্পিউটিংয়ের সাথে সম্পর্কিত নয়, তার সাথে মিলে যায়, এর অর্থ কেবল একটি গ্রুপ পোস্টগ্রিজ এসকিউএল সার্ভার দ্বারা পরিচালিত ডেটাবেস এবং সম্পর্কিত অবজেক্টগুলির।

ডেটা ডিরেক্টরিটির অবস্থান বিতরণের উপর নির্ভর করে। আপনি যদি উত্স থেকে ইনস্টল করেন তবে ডিফল্টটি হ'ল /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

নোট করুন যে খুব ঘন ঘন না হলেও একই পোস্টগ্র্রেএসকিউএল সার্ভারের দুটি উদাহরণ (একই বাইনারি, বিভিন্ন প্রক্রিয়া) যা বিভিন্ন "ক্লাস্টার" (ডেটা ডিরেক্টরি) সরবরাহ করে run অবশ্যই, প্রতিটি উদাহরণ তার নিজস্ব টিসিপি / আইপি পোর্টে শুনবে।


আমি বর্তমান ডেটা ডিরেক্টরি দেখতে পাচ্ছি, তবে আমি অন্যান্য অনেক ফোল্ডার এবং ফাইল দেখতে পাচ্ছি। পিএসএইচএল অনেকগুলি ফাইলে ডাটাবেসকে "সংরক্ষণ" করে বা এই ডেটা ডিরেক্টরিতে কেবল একটিই রয়েছে যে ডিবি? কারণ আমি উদাহরণস্বরূপ
মাইএসকিএল

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

কমপক্ষে জেন্টু লিনাক্স এবং উবুন্টুতে 14.04 ডিফল্টভাবে।

আপনি পরম খুঁজে পেতে postgresql.confএবং দেখতে পারেন data_directory। যদি এটি মন্তব্য করা হয় তবে ডাটাবেস ডিরেক্টরিটি এই কনফিগার ফাইল ডিরেক্টরি হিসাবে একই।


21
এটি বিতরণের উপর নির্ভর করবে, তারা সকলেই কিছুটা আলাদাভাবে এটি করে। আপনি যদি সিস্টেমের সাথে সংযোগ স্থাপন করতে পারেন তবে "শো ডেটা_ডাইরেক্টরি" ব্যবহার করা সম্ভবত সবচেয়ে সহজ উপায়।
ম্যাগনাস হাগান্ডার

@ ম্যাগনাসহ্যান্ডার এটি একটি উত্তর, আপনি এই মন্তব্যটিকে একটি উত্তর হিসাবে রাখবেন না। এটা আমার জন্য ভাল কাজ করেছে।
বিশাল

জিনোমে আমি এখানে এটি দেখতে পাই/var/lib/8.1/postgresql
জুনিয়র মেহে

আমার জন্য এটির '/var/lib/postgresql/9.3/main'
র‌্যাডটেক

9
/var/lib/pgsql/9.3
সেন্টোস


15

ডেবিয়ান 8.1 এবং পোস্টগ্রি 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

সেন্টোস 6.5 / পোস্টগ্র্যাস এসকিউএল 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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.