Postgresql সার্ভার আরম্ভ হয় না


14

[উবুন্টু ১.0.০৪] আমি নির্ভরতা সহ পোস্টারগ্যাস্কেল ৯.৫ ইনস্টল করেছি:

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.5 libpq-dev

আমি যখন দৌড়াতে চাই psqlতখন আমি পাই:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

তবে /var/run/postgresql/খালি। আমি যখন পোস্টগ্রেস্কেল পুনরায় চালু করি তখন সমস্ত কিছু ঠিকঠাক মনে হয়:

$ /etc/init.d/postgresql restart
[ ok ] Restarting postgresql (via systemctl): postgresql.service.

$ /etc/init.d/postgresql status
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since wto 2016-09-27 16:18:26 CEST; 1min 15s ago
  Process: 3076 ExecReload=/bin/true (code=exited, status=0/SUCCESS)
  Process: 3523 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 3523 (code=exited, status=0/SUCCESS)

তবে যদি ps auxসেখানে পরীক্ষা করা হয় তবে এই জাতীয় পিআইডি নেই (কেন ??)

মোট পুনরুদ্ধার কিছুতেই সহায়তা করে না। আমি কীভাবে এটি ঠিক করতে পারি?


/Var/log/posgtresql/postgresql-9.5-main.log ফাইলটি কী দেখায়?
ubfan1

এই ফাইলটি খালি
মাইক 927

উত্তর:


14

এটি জেনিয়ালের পোস্টগ্রিসকিউএল-এর সিস্টেমযুক্ত সংহতকরণের একটি আইডিয়াসনক্রসি।

পোস্টগ্র্যাসকিএল-সাধারণ প্যাকেজ দ্বারা ইনস্টল করা পোস্টগ্রেকসএল পরিষেবা ইউনিটটি কেবল একটি ডামি পরিষেবা যা প্রকৃত পরিষেবা postgresql@9.6- মেইনকে নির্ভরতার মধ্য দিয়ে শুরু করতে পারে। কমান্ডটি চালিয়ে আপনি সেই নির্ভরতা দেখতে পাচ্ছেন

systemctl list-dependencies postgresql

সেই নির্ভরতা স্থায়ী নয়, তবে সিস্টেমড জেনারেটর দ্বারা সিস্টেম বুটের সময় উত্পন্ন হয়েছিল /lib/systemd/system-generators/postgresql-generatorযা পোস্টগ্র্যাসকিএল-সাধারণ প্যাকেজ সহ আসে। জেনারেটরটি ফাইলের সূচনা মোডে /etc/postgresql/9.6/main/start.confসেট করা আছে কিনা তা যাচাই করে autoএবং যদি তাই হয় তবে নির্ভরতা সেট আপ করে যা পরবর্তীকালে 9..6-প্রধান সূচনার কারণ হয়।

(আরও সুনির্দিষ্টভাবে, এটি সমস্ত কনফিগারেশন সাব-ডাইরেক্টরিগুলি চেক করে /etc/postgresql/*/*এবং স্বয়ংক্রিয় সূচনার জন্য কনফিগার করা সমস্ত দৃষ্টান্তের জন্য নির্ভরতা তৈরি করবে , তবে একটি ডিফল্ট ইনস্টলেশনতে কেবল একটি উদাহরণ থাকবে))

সিস্টেমযুক্ত জেনারেটরের সীমাবদ্ধতার কারণে (দেখুন man systemd.generator) এই প্রক্রিয়াটি ব্যর্থ হতে পারে, রিবুট হওয়ার পরে নির্ভরতা অনুপস্থিত হতে পারে। সিস্টেমেড কেবলমাত্র ডামি পরিষেবা, লেখা শুরু করবে

systemd[1]: Starting PostgreSQL RDBMS...
systemd[1]: Started PostgreSQL RDBMS.

লগতে কিন্তু অন্যথায় কিছুই করছে না। এর মাধ্যমে ম্যানুয়ালি পরিষেবা শুরু করার চেষ্টা করা হচ্ছে

systemctl start postgresql

শুধু ফলাফল পুনরুত্পাদন করবে। কমান্ড চালাচ্ছি

systemctl daemon-reload

ম্যানুয়ালি হিসাবে রুটটি জেনারেটরটি পুনরায় চালিত হবে এবং বেশিরভাগ ক্ষেত্রে পরবর্তী রিবুট হওয়া পর্যন্ত সমস্যার সমাধান করুন।

স্থায়ীভাবে সমস্যার সমাধান করতে আপনাকে বুট করার সময় জেনারেটর ব্যর্থ হওয়ার কারণটি খুঁজে পেতে হবে। সম্ভাব্য কারণগুলি systemd.generator ম্যানপেজে পাওয়া যাবে। আমার ক্ষেত্রে এটি পোস্টগ্রাইএসকিউএল কনফিগারেশন ফাইল /etc/postgresql/9.6/main/postgresql.confযা একটি ভিন্ন ফাইল সিস্টেমের সাথে সিমলিংক করা ছিল যা বুট চলাকালীন জেনারেটর দৌড়ে যাওয়ার সময় এখনও পাওয়া যায় নি। postgresql-generatorঅন্যথায় এটির প্রয়োজন না হলেও এই ফাইলটির অস্তিত্ব পরীক্ষা করে।


আপনি ইস্যুটি সমাধান করার জন্য নির্দ্বিধায় জবাব দিন :)
ঝড়

9

তিলম্যানের উত্তরে প্রসারিত করা, তবে মন্তব্য করার মতো পর্যাপ্ত কুডোস নেই ...

আপনার যদি পোস্টগ্রেএসকিএল নামক পরিষেবাটির প্রয়োজন না হয় এবং র‌্যাপার ডামি পরিষেবাটির যত্ন না রাখেন তবে এটি কেবল আসল পরিষেবাটি সরাসরি নিয়ন্ত্রণ করার জন্য কাজ করা উচিত। এর নাম: postgresql@$version-$cluster.service আপনার ক্ষেত্রে এটি সংক্ষেপে postgresql-9.5-main হওয়া উচিত । শুরু করতে চান

systemctl start postgresql@9.5-main

এবং থামাতে:

systemctl stop postgresql@9.5-main

স্থিতিশীলতা আপনাকে স্বয়ংক্রিয়ভাবে উত্পাদিত মোড়ক সরবরাহের তুলনায় অনেক ভাল এবং সঠিক তথ্য দেবে।

systemctl status postgresql@9.5-main

9.6 এর জন্য এটি দেখতে এরকম দেখাচ্ছে:

● postgresql@9.6-main.service - PostgreSQL Cluster 9.6-main
   Loaded: loaded (/lib/systemd/system/postgresql@.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-09-13 00:41:50 CEST; 7h ago
  Process: 10235 ExecStop=/usr/bin/pg_ctlcluster --skip-systemctl-redirect -m fast %i stop (code=exited, status=2)
  Process: 10676 ExecStart=postgresql@%i --skip-systemctl-redirect %i start (code=exited, status=0/SUCCESS)
 Main PID: 10683 (postgres)
   CGroup: /system.slice/system-postgresql.slice/postgresql@9.6-main.service
           ├─10683 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
           ├─10685 postgres: 9.6/main: checkpointer process
           ├─10686 postgres: 9.6/main: writer process
           ├─10748 postgres: 9.6/main: wal writer process
           ├─10749 postgres: 9.6/main: autovacuum launcher process
           ├─10750 postgres: 9.6/main: archiver process   last was 000000020000000000000082
           ├─10751 postgres: 9.6/main: stats collector process

4

আমার ক্ষেত্রে এটি ভুলভাবে কনফিগার করা লোকেলে সম্পর্কিত ছিল।

আমি এই dba.stackexchange.com উত্তরে সমাধানটি পেয়েছি :

  1. sudo dpkg-reconfigure localesপ্রয়োজনীয় লোকেল তৈরি করতে ব্যবহার করুন
  2. এর মাধ্যমে বিদ্যমান ডাটাবেস ক্লাস্টারটি ফেলে দিন sudo pg_dropcluster 9.5 main(এটি ক্লাস্টারের সমস্ত ডেটা মুছে ফেলবে!)
  3. এর মাধ্যমে ক্লাস্টারটি পুনরায় তৈরি করুন sudo pg_createcluster 9.5 main --start
  4. এর মাধ্যমে পোস্টগ্রিএসকিউএল পুনরায় চালু করুন sudo service postgresql restart

1

উবুন্টু 16.04 দিয়ে সিস্টেমেড স্টার্টআপ স্ক্রিপ্টগুলি ব্যবহার করা ভাল হবে, থ্রি স্ক্রিপ্টগুলি আজকাল সঠিকভাবে কাজ করবে না। পোস্টগ্রাগেস 9.5 ইতিমধ্যে উবুন্টু রেপোসে রয়েছে সুতরাং এর পরিবর্তে এটি সিস্টেমযুক্ত সূচনা হওয়া উচিত।


স্ট্যান্ডার্ড উবুন্টু রেপো ব্যবহার করে আমি একই ফল
পেয়েছি

লজ্জাজনক, পোস্টগ্রিসের লোকেরা এখনও সিস্টেমডের হ্যাং পায় নি। আপনার সম্ভবত পোস্টগ্রিস প্যাকেজের বিরুদ্ধে একটি বাগ উত্থাপন করা উচিত বা সিস্টেমড সমর্থন সম্পর্কে তাদের মেলিং তালিকায় জিজ্ঞাসা করা উচিত। আমি পোস্টগ্রিজ বেশি ব্যবহার করি না তবে কিছু ওপেন সোর্স প্রকল্পগুলি সিস্টেমডের বিরুদ্ধে অবস্থান নিয়েছে বা এটি সমর্থন করার বিষয়ে অভ্যন্তরীণ বিতর্কে জটলা হতে পারে।
আমিয়াস

আমি যখন সিস্টেমেটিএল চালিত করি তখন এটি "postgresql@9.5-main.service.service লোড হওয়া ব্যর্থ PostgreSQL ক্লাস্টার 9.5-মূল ব্যর্থ" দেয়। কেন এটি ব্যর্থ?
মাইক 927

ভাল এই ক্ষেত্রে এটি সিস্টেমড স্টার্টআপ স্ক্রিপ্ট যা সঠিকভাবে কাজ করে না তাই পরামর্শটি ঠিক সহায়ক নয়।
টিলম্যান

1

আরেকজন "এটিকে কামড়ে ধরেছে"।

pg_upgradeclusterআসলে বন্দর 5432 পোর্ট 5433 এবং উৎস সংস্করণ (9.5) এর "ম্যানুয়াল" মোডে লক্ষ্য সংস্করণ (9.6) ত্যাগ করেন।

পরেও pg_dropcluster 9.5। স্টার্টকনফ ফাইলটি সম্পাদনা করা কোনও উপকারে আসেনি, তবে ইঙ্গিতটি ব্যবহার করা ছিল systemctl daemon-reload, যেহেতু জেনারেটর এই কনফিগারেশন ফাইলের ভিত্তিতে পরিষেবা ফাইলটি সিমলিংক করবে কিনা তার সিদ্ধান্ত নেয়:

for conf in /etc/postgresql/*/*/postgresql.conf; do
    # trimmed for brevity
    [ "$start" = "auto" ] || continue
    ln -s "$pgservice" "$wantdir/postgresql@$version-$cluster.service"
done

সুতরাং আপনি যে ক্লাস্টারটি শুরু করতে চান তাতে স্টার্টকনফ-এ "অটো" শব্দটি না থাকলে বুট করার সময় এটি সক্ষম করার জন্য আপনাকে সিস্টেম-রিলোড (বা রিবুট) করতে হবে।

এখনও এটি একটি রিবুট দিয়ে যাচাই করতে হবে, তবে উপরোক্ত আত্মবিশ্বাসের কারণে বিষয়টি ছিল।


1

আমি এই মত যাদু "সুপার পরিষেবা" অক্ষম করেছি:

root@server# systemctl disable postgresql

তারপরে আমি কংক্রিট পরিষেবাটি সক্রিয় করেছি:

root@server:~# systemctl enable postgresql@9.5-main.service 

রিবুট করার পরে সবকিছু আবার কাজ করে।



0

ভিন্ন কারণে: ডিরেক্টরি অনুমতি নিয়ে আমার এই সমস্যা হয়েছিল had আমার এইরকম একটি ফুল-সুইপ chmod ছিল:

chmod -R 644 /etc/postgresql/10/main

এটি ডিরেক্টরিটি অ-এক্সিকিউটেবল হিসাবে সেট করে যা পোস্টগ্রাগুলি পড়তে বাধা দেয়।


0

এসএসএল-সার্ট-সাপোনিল.কি অনুমতি নিয়ে সমস্যাটি খুঁজে পেয়ে আমার একই সমস্যা হয়েছিল।

মালিকানা সেট করুন

উত্সাহিত মূল: এসএসএল-সার্ট এসএসএল-সার্ট-স্নোয়েল.কি চিমড 640 এসএসএল-সার্ট-স্নোপিল.কি

এবং একটি পরিষ্কার পুনঃসূচনা করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.