উত্তর:
ডেটা ডিরেক্টরিটি কোথায় রয়েছে তা দেখতে, এই কোয়েরিটি ব্যবহার করুন।
show data_directory;
সমস্ত রান-টাইম প্যারামিটারগুলি দেখতে, ব্যবহার করুন
show all;
আপনি ফাইল সিস্টেমের অন্যান্য অংশে ডাটাবেস অবজেক্টগুলি সঞ্চয় করতে টেবিলস্পেস তৈরি করতে পারেন। টেবিল স্পেসগুলি দেখতে, যা সেই ডেটা ডিরেক্টরিতে নাও থাকতে পারে, এই কোয়েরিটি ব্যবহার করুন।
SELECT * FROM pg_tablespace;
উইন্ডোজ 7 এ সমস্ত ডাটাবেসগুলি pg_database
নীচে নামের ফাইলটিতে একটি নম্বর দ্বারা উল্লেখ করা হয় C:\Program Files (x86)\PostgreSQL\8.2\data\global
। তারপরে আপনার ফোল্ডারের নামটি সেই নম্বর অনুসারে সন্ধান করা উচিত C:\Program Files (x86)\PostgreSQL\8.2\data\base
। এটি ডাটাবেসের বিষয়বস্তু।
PgAdmin খুলুন এবং নির্দিষ্ট ডাটাবেসের জন্য বৈশিষ্ট্যে যান। ওআইডি সন্ধান করুন এবং তারপরে ডিরেক্টরি খুলুন
<POSTGRESQL_DIRECTORY>/data/base/<OID>
আপনার ডিবি ফাইল থাকা উচিত।
SELECT oid from pg_database where datname = '<dbname>'
লিনাক্সের অধীনে " পোস্টগ্র্রেএসকিউএল ডাটাবেস ডিফল্ট লোকেশন লিনাক্সে " পরামর্শ হিসাবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে জানতে পারেন:
ps aux | grep postgres | grep -- -D
আমার লিনাক্স ইনস্টলেশন অধীনে, এটি এখানে: /var/lib/postgresql/8.x/
আপনি এটি দিয়ে পরিবর্তন করতে পারেন initdb -D "c:/mydb/"
/var/lib/pgsql/data
। ব্যবহার করে খুঁজে বের করা ভাল ps auxw|grep postgres|grep -- -D
।
আমি বাজি ধরছি আপনি এই প্রশ্নটি জিজ্ঞাসা করছেন কারণ আপনি 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
... এবং এটি কার্যকর।
brew info postgres
locate <filename>
sudo locate <filename>
পোস্টগ্র্যাগগুলি তার ডেটা ডিরেক্টরিতে ফাইলগুলিতে ডেটা সঞ্চয় করে। একটি ডাটাবেস এবং এর ফাইলগুলিতে যেতে নীচের পদক্ষেপগুলি অনুসরণ করুন:
একটি 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>;
এটি একটি বাইনারি ফাইল। ফাইলের বিবরণ যেমন আকার এবং তৈরি তারিখের সময় যথারীতি প্রাপ্ত করা যায়। আরও তথ্যের জন্য এই এস থ্রেডটি পড়ুন
ম্যাকে: /Library/PostgreSQL/9.0/data/base
ডিরেক্টরি প্রবেশ করা যায় না, তবে আপনি লিখিত সামগ্রীটির মাধ্যমে দেখতে পারেন: sudo du -hc data
/usr/local/var/postgres
আপনি @ মাইকশোরিলের show data_directory;
টিপ ব্যবহার করে আবিষ্কার করতে পারেন
/Library/PostgreSQL/9.0/data/base
এর চেয়ে বেশি ম্যাকের মতো লোকেশন মনে হচ্ছে /usr/local/var/postgres
। লুকানো ফাইন্ডার বৈশিষ্ট্যগুলি সক্ষম না করে আপনি ফাইন্ডারের পরবর্তীগুলিতে ব্রাউজ করতে পারবেন না।
উইন্ডোজে, পোস্টগ্রাএসএসকিউএল ডক্স বর্ণনা করে এমন পিজিডিটিএ ডিরেক্টরিটি কোথাও কোথাও এর মত C:\Program Files\PostgreSQL\8.1\data
। নির্দিষ্ট ডাটাবেসের ডেটা (উদাহরণস্বরূপ) এর অধীনে রয়েছে C:\Program Files\PostgreSQL\8.1\data\base\100929
, যেখানে আমার ধারণা 100929 ডাটাবেস নম্বর database
পিকমেটের উত্তরটি সঠিক। উইন্ডোজে মূল ডিবি ফোল্ডারের অবস্থান (কমপক্ষে আমার ইনস্টলেশনটিতে)
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 রিফিলনোডে
আমি একটি ডকার পাত্রে পোস্টগ্র্রেস (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