PostgreSQL কোথায় ডাটাবেস সঞ্চয় করে?


343

PostgreSQL ডাটাবেসের জন্য ফাইলগুলি কোথায় সঞ্চয় করা হয়?



17
sudo -u postgres psql -c "show data_directory;"মানক পোস্টগ্রিজ এসকিউএল ইনস্টলেশনতে বর্তমান স্টোরেজ অবস্থানগুলি প্রদর্শন করবে।

উত্তর:


355

ডেটা ডিরেক্টরিটি কোথায় রয়েছে তা দেখতে, এই কোয়েরিটি ব্যবহার করুন।

show data_directory;

সমস্ত রান-টাইম প্যারামিটারগুলি দেখতে, ব্যবহার করুন

show all;

আপনি ফাইল সিস্টেমের অন্যান্য অংশে ডাটাবেস অবজেক্টগুলি সঞ্চয় করতে টেবিলস্পেস তৈরি করতে পারেন। টেবিল স্পেসগুলি দেখতে, যা সেই ডেটা ডিরেক্টরিতে নাও থাকতে পারে, এই কোয়েরিটি ব্যবহার করুন।

SELECT * FROM pg_tablespace;

1
ডেটা_ডাইরেক্টরি দেখান; কমান্ড তথ্য সঠিক অবস্থান নির্দেশ করে। নির্দিষ্ট ফোল্ডারটি অনুসন্ধান করা বেদনাদায়ক কারণ এটি অন্য কেউ আপনার জন্য ইনস্টল করে থাকতে পারে এবং এখন আপনি কনফিগারেশনটি জানেন না, সুতরাং এসকিউএল অনুসরণ করা সময় সাশ্রয় করতে সহায়তা করে। :) ধন্যবাদ মাইক।
বিশাল

3
এটিতে "ডেটা ডিরেক্টরি পরীক্ষা করার জন্য অবশ্যই সুপারিউসার হতে হবে" :(
অস্থায়ী_ ব্যবহারকারী_নাম

5
আপনি যদি ডিবিএ না হন তবে আপনাকে আর যাইহোক জানার দরকার নেই।
মাইক শেরিল 'ক্যাট রিকল'

8
বিটিডাব্লু - যদি কেউ আমার মতো ম্যাকের পোস্টগ্র্রেস.এপ এর জন্য ডাটাবেসের অবস্থান সন্ধান করে তবে এটি ডিফল্টরূপে ~ / লাইব্রেরি / অ্যাপ্লিকেশন সহায়তা / পোস্টগ্রিস [ভার্] / ভারে রয়েছে।
sstringer

1
কোনও ক্যোয়ারি চালানোর জন্য, পিজিএডমিন তৃতীয়টি ব্যবহার করুন এবং মেনু বারটিতে "একটি ক্যোয়ারী চালান" আইকনটি ব্যবহার করুন।
রাটার হাফস্টে

61

উইন্ডোজ 7 এ সমস্ত ডাটাবেসগুলি pg_databaseনীচে নামের ফাইলটিতে একটি নম্বর দ্বারা উল্লেখ করা হয় C:\Program Files (x86)\PostgreSQL\8.2\data\global। তারপরে আপনার ফোল্ডারের নামটি সেই নম্বর অনুসারে সন্ধান করা উচিত C:\Program Files (x86)\PostgreSQL\8.2\data\base। এটি ডাটাবেসের বিষয়বস্তু।


3
প্রশ্নটি ওএসকে স্পষ্টভাবে না উল্লেখ করে একটি ওএস নির্দিষ্ট উপায়ে উত্তর দিবেন না।
সিমোনম্যানকে

24
কেন না? যদি আপনি ওএসের উল্লেখ না করেন এবং কেবল "এটি কাজ করে" বলে, অন্য যে কোনও ওএসের চেষ্টা করে যে কেউ বিভ্রান্ত হবে। এটি প্রাসঙ্গিক। সম্পাদনা: ওহ, সম্ভবত আপনি সম্ভবত "কোনও OS কে নির্দিষ্ট উত্তর দেবেন না"। আমি অনুমান করি যে এটি উপলব্ধি করে, আমি জানি না।
ডেভিড উইনিস্কি

34
@ ডেভিড, প্রশ্নটি সম্ভবত বন্ধ ছিল কারণ এটি কোন ওএসকে নির্দিষ্ট করে নি। (যদি এটি কোনও ওএস নির্দিষ্ট করে দেয় তবে এটি খুব নির্দিষ্ট হওয়ার কারণে বন্ধ হয়ে যেত)) আপনার উত্তরটি সহায়ক এবং তথ্যবহুল ছিল - শেষ পর্যন্ত এসইওকে ধ্বংস করতে সফল না হওয়া পর্যন্ত নায়েসায়ার এবং ডাউনভিটারদের উপেক্ষা করুন। বিদ্বেষীরা ঘৃণা করবে এবং এগুলি সব।
সামগুডি

@ সামগুডি আপনি যা বলছিলেন তার দিকে কিছুটা সময় থাকবে, যদি এই উত্তরটি আসলে সঠিক হয় actually (এটি কঠোরভাবে ভুল নয়, কারণ ফোল্ডারটি উইন্ডোজটিতে থাকতে পারে তবে এটি অবশ্যই দেওয়া হয়নি)। ঘটনাটি কিনা তা ইতিমধ্যে দেওয়া উত্তর অনুসরণ করে সহজেই খুঁজে পাওয়া যাবে।
জন হান্না

@ এনসিলকুমারী আমার পোস্টগ্রেএসকিএল ১১ এবং উইন্ডোজ ১০ রয়েছে। আপনি উল্লেখ করেছেন যে, আমি বিশ্বব্যাপী ফোল্ডারের ভিতরে pg_database দেখার চেষ্টা করেছি কিন্তু আমি কিছুই দেখতে পেলাম না। আমি দেখতে পেয়েছি _ ভিএমএস, _এফএসএম, কনফিগার_এক্সেক_প্রেমস, পিজি_কন্ট্রোল, পিজি_ফিলেনোড.ম্যাপ, পিজি_ ইন্টার্নাল ইনিট it উইন্ডোজ 10 এর জন্য কোন ফাইলটির নামকরণ করা উচিত তা অনুসন্ধান করা উচিত। এটা কি আলাদা?
নচিকেত

29

PgAdmin খুলুন এবং নির্দিষ্ট ডাটাবেসের জন্য বৈশিষ্ট্যে যান। ওআইডি সন্ধান করুন এবং তারপরে ডিরেক্টরি খুলুন

<POSTGRESQL_DIRECTORY>/data/base/<OID>

আপনার ডিবি ফাইল থাকা উচিত।


14
SELECT oid from pg_database where datname = '<dbname>'
চার্লি


27

আমার লিনাক্স ইনস্টলেশন অধীনে, এটি এখানে: /var/lib/postgresql/8.x/

আপনি এটি দিয়ে পরিবর্তন করতে পারেন initdb -D "c:/mydb/"


12
বিতরণ উপর নির্ভর করে - ফেডোরা 20 এর অধীনে /var/lib/pgsql/data। ব্যবহার করে খুঁজে বের করা ভাল ps auxw|grep postgres|grep -- -D
স্কিপি লে গ্র্যান্ড গৌরু

17

নির্দিষ্ট সারণী / সূচীর অবস্থানগুলি টেবিলস্পেস দ্বারা সামঞ্জস্য করা যায়:

CREATE TABLESPACE dbspace LOCATION '/data/dbs';
CREATE TABLE something (......) TABLESPACE dbspace;
CREATE TABLE otherthing (......) TABLESPACE dbspace;

15

প্রত্যেকে ইতিমধ্যে উত্তর দিয়েছে তবে কেবল সর্বশেষ আপডেটের জন্য। আপনি যদি সমস্ত কনফিগারেশন ফাইলগুলি কোথায় থাকেন তা জানতে চান তবে শেলটিতে এই কমান্ডটি চালান

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';

14

আমি বাজি ধরছি আপনি এই প্রশ্নটি জিজ্ঞাসা করছেন কারণ আপনি pg_ctl startনিম্নলিখিত ত্রুটিটি চেষ্টা করেছেন এবং পেয়েছেন:

pg_ctl: কোনও ডাটাবেস ডিরেক্টরি নির্দিষ্ট করা হয়নি এবং এনভায়রনমেন্ট ভেরিয়েবল পিজিডিটিএ আনসেট করা হয়নি

অন্য কথায়, আপনি -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

আপনি ওএস এর সাথে সরবরাহিত অনুসন্ধানটি ব্যবহার করে উপরের যে কোনও ফাইল এবং ডিরেক্টরিকে সনাক্ত করে এটি সনাক্ত করতে পারেন।

উদাহরণস্বরূপ আমার ক্ষেত্রে ( ম্যাক ওএস এক্সে হোমব্রু ইনস্টল করুন ), এই ফাইলগুলি অবস্থিত । আমি যে সার্ভারটি টাইপ করব তা শুরু করতে:/usr/local/var/postgres

pg_ctl -D /usr/local/var/postgres -w start

... এবং এটি কার্যকর।


1
আপনি homebrew ব্যবহার করেন, তাহলে এই তথ্য খোজা একটি সহজ উপায় সহজভাবে হয়brew info postgres
বেন

আমি যে কারণে ডাটাবেস ফোল্ডারটি সন্ধান করছি সে সম্পর্কে আপনি ঠিক বলেছেন। তবে বিষয়টি হ'ল আমি উপরের যে কোনও ফাইলটি খুঁজে পাচ্ছি নাlocate <filename>
অশ্বিন প্রভাকর

তাদের খুঁজে sudo locate <filename>
পেয়েছিল

14

পোস্টগ্র্যাগগুলি তার ডেটা ডিরেক্টরিতে ফাইলগুলিতে ডেটা সঞ্চয় করে। একটি ডাটাবেস এবং এর ফাইলগুলিতে যেতে নীচের পদক্ষেপগুলি অনুসরণ করুন:

একটি postgresql টেবিল ফাইল সম্পর্কিত ডেটাবেস একটি ডিরেক্টরি। পুরো ডেটা ডিরেক্টরি ডিরেক্টরি অবস্থান চালানো দ্বারা প্রাপ্ত করা যেতে পারে SHOW data_directory। ওএসের মতো ইউনিক্সে (যেমন: ম্যাক) /Library/PostgreSQL/9.4/data ডেটা ডিরেক্টরিতে বেস ফোল্ডারের ভিতরে যান যাতে সমস্ত ডাটাবেস ফোল্ডার রয়েছে:/Library/PostgreSQL/9.4/data/base

চালিয়ে ডাটাবেস ফোল্ডারের নাম সন্ধান করুন (একটি পূর্ণসংখ্যা দেয় G এটি ডাটাবেস ফোল্ডারের নাম):

SELECT oid from pg_database WHERE datname = <database_name>;

টেবিল ফাইলের নামটি চালিয়ে সন্ধান করুন (একটি পূর্ণসংখ্যা দেয় This এটি ফাইলের নাম):

SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

এটি একটি বাইনারি ফাইল। ফাইলের বিবরণ যেমন আকার এবং তৈরি তারিখের সময় যথারীতি প্রাপ্ত করা যায়। আরও তথ্যের জন্য এই এস থ্রেডটি পড়ুন


11

ম্যাকে: /Library/PostgreSQL/9.0/data/base

ডিরেক্টরি প্রবেশ করা যায় না, তবে আপনি লিখিত সামগ্রীটির মাধ্যমে দেখতে পারেন: sudo du -hc data


13
যদি আপনি হোমব্রিউয়ের মাধ্যমে ইনস্টল করেন (এবং আপনি কেন করবেন না), তবে এটিই /usr/local/var/postgresআপনি @ মাইকশোরিলের show data_directory;টিপ ব্যবহার করে আবিষ্কার করতে পারেন
ক্রিস বেক

/Library/PostgreSQL/9.0/data/baseএর চেয়ে বেশি ম্যাকের মতো লোকেশন মনে হচ্ছে /usr/local/var/postgres। লুকানো ফাইন্ডার বৈশিষ্ট্যগুলি সক্ষম না করে আপনি ফাইন্ডারের পরবর্তীগুলিতে ব্রাউজ করতে পারবেন না।
চার্লি

@ চর্লি আপনি গো মেনু থেকে ফাইন্ডার ব্যবহার করে ব্রাউজ করতে পারেন। যান> ফোল্ডারে যান ..., বা ⇧⌘G
জেসন এস

@ জেসনস হ্যাঁ, আপনি সেই কৌশলটি ফাইন্ডারে নন-ম্যাক-এর মতো ফোল্ডারটি খুলতে ব্যবহার করতে পারেন।
চার্লি

1
আমার ক্ষেত্রে এটি এতে রয়েছে: / ব্যবহারকারী / বব / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / পোস্টগ্রিস /
ভেরি -9.5

7

উইন্ডোজে, পোস্টগ্রাএসএসকিউএল ডক্স বর্ণনা করে এমন পিজিডিটিএ ডিরেক্টরিটি কোথাও কোথাও এর মত C:\Program Files\PostgreSQL\8.1\data। নির্দিষ্ট ডাটাবেসের ডেটা (উদাহরণস্বরূপ) এর অধীনে রয়েছে C:\Program Files\PostgreSQL\8.1\data\base\100929, যেখানে আমার ধারণা 100929 ডাটাবেস নম্বর database


1
সাবধানতা: আপনি যদি ফাইল সিস্টেমের স্তরের ব্যাকআপ করতে চান তবে এই ডিরেক্টরিগুলিকে ব্যাকআপ করবেন না, কারণ ডকস বর্ণনা করে: "... আপনি হয়ত তাদের নিজস্ব থেকে কিছু নির্দিষ্ট টেবিল বা ডাটাবেসগুলি ব্যাকআপ বা পুনরুদ্ধার করার চেষ্টা করতে প্ররোচিত হতে পারেন? ফাইল বা ডিরেক্টরি। এটি কাজ করবে না কারণ এই ফাইলগুলিতে থাকা তথ্য কমিট লগ ফাইল, pg_clog / * ব্যতীত ব্যবহারযোগ্য নয়, যা সমস্ত লেনদেনের প্রতিশ্রুতিবদ্ধ স্থিতি ধারণ করে। "
জ্যানিস ভেনবার্গস

এটি নির্ভর করে। আপনি এটিকে ইনস্টলের একটি অন্য ফোল্ডারে কনফিগার করতে পারেন।
এভিনিস

আমার সম্পর্কে, সি এর ভিতরে কোনও ডেটা ফোল্ডার নেই: Files প্রোগ্রাম ফাইলস \ পোস্টগ্রিসকিউএল \ 9.4 this এটি কি 9.4 এর সাথে নির্দিষ্ট কিছু বা কোনও ভুল করেছে?
লুসিভায়লেট

2

পিকমেটের উত্তরটি সঠিক। উইন্ডোজে মূল ডিবি ফোল্ডারের অবস্থান (কমপক্ষে আমার ইনস্টলেশনটিতে)

C:\PostgreSQL\9.2\data\base\

এবং প্রোগ্রাম ফাইলগুলিতে নয়।

তার দুটি স্ক্রিপ্ট, আপনাকে প্রয়োজনীয় ডিরেক্টরি / ফাইল (গুলি) দেবে:

SELECT oid from pg_database WHERE datname = <database_name>;
SELECT relname, relfilenode FROM pg_class WHERE relname = <table_name>; 

খনি 16393 ডেটা নাম এবং 41603 রিফিলনোডে

postgresql ডাটাবেস ফাইল


0

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