PostgreSQL ইনস্টলেশনটি কীভাবে ঠিক করবেন


18

আমি সম্প্রতি ম্যাভেরিক থেকে নাটিতে আপগ্রেড করেছি এবং ডিগ্রি আপগ্রেডের সময় পোস্টগ্র্রেএসকিউএল-তে কিছু ভুল হয়ে গেছে তা বাদ দিয়ে সবকিছু ঠিকঠাক হয়ে গেছে। আমি তখন থেকে পুনরায় ইনস্টল করার, অপসারণ এবং এমনকি এটি 'sudo apt-get purge postgresql' এর মাধ্যমে শুদ্ধ করার চেষ্টা করেছি তবে আমি যা করুক না কেন এটি এখনও একই ত্রুটি নিয়ে আসে। নিচে দেখ. এটি আপগ্রেডের আগে ঠিকঠাক কাজ করছিল। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে। ধন্যবাদ!

Setting up postgresql-common (114) ...
 * Starting PostgreSQL 8.4 database server         * The PostgreSQL server failed to start. Please check the log output:
2011-05-19 11:49:41 EDT LOG:  could not bind IPv4 socket: Address already in use
2011-05-19 11:49:41 EDT HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2011-05-19 11:49:41 EDT WARNING:  could not create listen socket for "127.0.0.1"
2011-05-19 11:49:41 EDT FATAL:  could not create shared memory segment: Invalid argument
2011-05-19 11:49:41 EDT DETAIL:  Failed system call was shmget(key=5432001, size=37879808, 03600).
2011-05-19 11:49:41 EDT HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 37879808 bytes), reduce PostgreSQL's shared_buffers parameter (currently 4096) and/or its max_connections parameter (currently 103).
    If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
    The PostgreSQL documentation contains more information about shared memory configuration.

[fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing postgresql-common (--configure):
 subprocess installed post-installation script returned error exit status 1

আপনি কি "নেটট্যাটনা-গ্রেপ 5432" এর আউটপুট পোস্ট করতে পারেন
ফ্রিথিংকার

এই কমান্ড চালানো কিছুই আউটপুট। অন্য কোন ধারণা?
তারযুক্ত

খুলুন /etc/init.d/postgresqlএবং set -xলাইনে একটি যুক্ত করুন এবং এর পরে #!/bin/bashএকটি করুন sudo /etc/init.d/postgresql restartএবং আউটপুট পোস্ট করুন
ফ্রিথিংকার

আমি সেট-এর সাথে সেট-এক্স প্রতিস্থাপন করেছি এবং আমি যা পেয়েছি তা এখানেই রয়েছে: পেস্টবিন লিংক
তারযুক্ত

উত্তর:


29

আপনাকে ভাগ করা মেমরির একটি অংশের সর্বাধিক আকার বাড়াতে হবে লিনাক্স কার্নেল একবারে বরাদ্দ করতে দেয় (SHMMAX প্যারামিটার হিসাবে পরিচিত)

আপনাকে /etc/sysctl.confনিম্নলিখিত লাইনটি সম্পাদনা করতে হবে এবং যুক্ত করতে হবে:

kernel.shmmax = 41943040

(যেখানে 41943040বাইটে মেমরির আকার রয়েছে, যেখানে 40 মেগাবাইট production উত্পাদন সিস্টেমের মধ্যে আপনি সম্ভবত এই মানটি আরও উচ্চতর সেট করতে চান - পোস্টগ্রিস ডকুমেন্টেশন উপলব্ধ মেমরির 1/4 দিয়ে শুরু করার পরামর্শ দেয়)

তারপরে দৌড়াও

sudo sysctl -p

এবং আবার পোস্টগ্রিজ পুনরায় চালু করুন।

বিকল্পভাবে, আপনি পরামিতিটির মান সম্পাদনা করতে /etc/postgresql/<version>/main/postgresql.confএবং হ্রাস করতে পারেন shared_buffers

এটি এখানে একটি বাগ, আরও তথ্য

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/264336

(এমন একটি /etc/sysctl.d/30-postgresql-shm.confফাইল রয়েছে যা এই উদ্দেশ্যে ব্যবহার করা হবে বলে মনে করা হচ্ছে তবে এটি মূল কনফিগারেশন থেকে অন্তর্ভুক্ত বলে মনে হচ্ছে না যাতে সম্পাদনার কোনও প্রভাব নেই)


আপনি উপরে বর্ণিত হিসাবে ঠিক ঠিক করেছি এবং কম্পিউটার পুনরায় চালু করেছি, তবে আমি এখনও মূল প্রশ্নটিতে পোস্ট করার মতো সঠিক ত্রুটিটি পেয়েছি। এই মুহুর্তে, আমি কেবল পুরো জিনিসটি আনইনস্টল করতে এবং স্ক্র্যাচ থেকে শুরু করতে ইচ্ছুক, তবে কোনও কারণে আমি যখন আনইনস্টল করব তখন সার্ভার চালানোর চেষ্টা করতাম এবং তাই আমি এটিও করতে পারি না। সব আপনার সাহায্যের জন্য ধন্যবাদ! আমি সত্যিই এটার প্রশংসা করছি.
তারযুক্ত

shmmax আরও বাম্প করার চেষ্টা করুন .. এটি একটি ভাগ করা মেমরি সমস্যা। আমি পোস্ট করা লিঙ্কটি দেখুন, এতে আরও তথ্য এবং আরও কাজ রয়েছে
ফ্রিথিংকার

10
সমাধানটি হ'ল /etc/sysctl.conf সম্পাদনা করা এবং কার্নেল.শ্ম্যাক্স = 41943040 লাইন যুক্ত করুন তারপর sudo sysctl -p চালান এবং postgreSQL পুনরায় চালু করুন: sudo /etc/init.d/postgresql শুরু করুন। এখন এটি ত্রুটি ছাড়াই শুরু হয়। তোমাকে অনেক ধন্যবাদ!!
তারযুক্ত

1
@ ফ্রাইথিংকার, এটি 12.04-এ কাজ করে না।
সেরিন

1
@ ওয়্যার, ধন্যবাদ, আপনার ফিক্সটি আমার পক্ষে কাজ করে। এটি উপস্থিত হয় যে /etc/sysctl.d/30-postgresql-shm.conf সম্পূর্ণ উপেক্ষা করা হয় ...
সেরিন

-2

পুরানো পোস্টগ্রিস এখনও সম্ভবত সবচেয়ে বেশি চলছে।

ফ্রিথিংকারের মতো ভাল ধারণা, সেই বন্দরে কী চলছে তা জানাতে।

একবার আপনি যদি এটি পোস্টগ্রিস জানেন তবে আপনি সম্ভবত এটি হত্যা করতে চাইবেন:

# Find PID
ps axf | grep post

kill PID

তারপরে আপনি নতুন সংস্করণটি শুরু করতে পারেন:

/etc/init.d/postgresql start

আমি বিস্মিত হয়েছি কেন প্যাকেজ ব্যবস্থাপক পুরানো সংস্করণটি থামাতে পারছেন না।


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