হিরোকু "পিএসএকএল: ফ্যাটাল: বাকী সংযোগের স্লটগুলি অ-প্রতিলিপি সুপারউজার সংযোগের জন্য সংরক্ষিত আছে"


120

আমি হিরোকুতে একটি পোস্টগ্র্যাস্কিল ব্যাকএন্ড সহ একটি অ্যাপ বিকাশ করছি। পর্যায়ক্রমে, সিএলআই থেকে এবং সার্ভারে কোনও পৃষ্ঠা লোড করে উভয়ই ডাটাবেস অ্যাক্সেস করার চেষ্টা করার সময় আমি এই ত্রুটি বার্তাটি পাই:

psql: FATAL: remaining connection slots are reserved for non-replication superuser connections

এর আগে কেউ দেখেছেন বা দয়া করে আমাকে সঠিক দিকে নির্দেশ করুন?


1
একই সমস্যা হচ্ছে। আমি কোথাও পড়েছি যে হেরোকু সমর্থন কিছু সার্ভারে "কিছু সমস্যা সনাক্ত করেছে" এবং তারা ব্যবহারকারীকে একটি নতুন বেসিক ডাটাবেস সরবরাহ করার এবং পিগব্যাকআপগুলি ব্যবহার করে এতে মাইগ্রেট করার পরামর্শ দিয়েছিল। এখন আমার সমস্যাটি হ'ল অ্যাপটি এতটাই নতুন যে আমি এখনও একটি ব্যাকআপ তৈরি করি নি এবং অবশ্যই একটি তৈরির চেষ্টা করতে গিয়ে আমি একই ত্রুটি পেয়েছি: ডি
আন্ড্রে লাসজলো

রেকর্ডের জন্য, আমি heroku pgbackupsএই ত্রুটি সত্ত্বেও ব্যাকআপ তৈরি করতে কমান্ডটি ব্যবহার করতে সক্ষম হয়েছি ।
মার্কশিজ

এই সমস্যাটির পুনরুত্পাদন করতে আপনি প্রচুর পরিমাণে টার্মিনাল তৈরি করতে পারেন। .batএর জন্য উইন্ডোজে স্ক্রিপ্ট: for /l %%x in (1, 1, 100) do ( start psql )যেখানে 100 ব্যাকেন্ডের পছন্দসই সংখ্যা।
9

আমারও একই সমস্যা ছিল। আমি নিজের কম্পিউটার থেকে বা এটি কল্পনাও করতে পারি এমন কোনও উপায়ে ব্যবহার করে pg:backups copy, নতুন ডাটাবেসে ডেটা স্থানান্তর করতে সক্ষম হইনি । এমনকি সাহায্যও করেনি। এক ঘন্টা পরে, আমি আবার চেষ্টা করেছি এবং সংযোগগুলি 50-50 ছিল, তাই কয়েকটি চেষ্টার পরে আমার একটি সফল হয়েছিল এবং আমার অ্যাপটি আবার বাতাসে ফিরে এসেছে। এটি ছিল ... একটি মজার দিন নয়। আপনি যদি এটি গুগল করেন তবে এক কাপ জল পান করুন। pg:backups capturepgAdminpg:killallpg:backups copy
অর সরফ

1
আমি এখন আবার এই হচ্ছে। আমার পূর্বের অভিজ্ঞতাটি নথিভুক্ত করার জন্য কত ভাগ্যবান ... সম্পাদনা: এই বার পুনরায় চালু করা যথেষ্ট ছিল।
অর সরফ

উত্তর:


56

আপনি হয় max_connectionsকনফিগারেশন সেটিংস বৃদ্ধি করতে হবে বা (সম্ভবত আরও ভাল) একটি সংযোগ পুলের মাধ্যমে প্রচুর সংখ্যক ব্যবহারকারীর অনুরোধের জন্য সংযোগ পুলিং ব্যবহার করতে হবে।

https://wiki.postgresql.org/wiki/Number_Of_Database_Connections


14
এছাড়াও একটি সাধারণ সমস্যা হ'ল ক্লায়েন্টের সাইড অ্যাপ্লিকেশনটি ক্র্যাশ হয়ে যাওয়ার এবং সংযোগগুলি খোলা রেখে পুনরায় চালু হওয়ার পরে নতুন খোলার মতো something যদি এই ধরণের জিনিস অনেক ঘটে তবে আপনার সংযোগ শেষ হয়ে যাবে। বা অ্যাপ্লিকেশনটি কেবলমাত্র ভুলভাবে কনফিগার করা হয়েছে এবং অনেকগুলি সংযোগ খোলে।
স্কট মার্লো

5
আমি মনে করি না আমি হিরোকুতে কনফিগারেশন সেটিংস পরিবর্তন করতে পারি। সমস্ত উন্মুক্ত সংযোগ বন্ধ করার উপায় আছে?
নাথানচাহিল

1
আশা করি মোটামুটি আক্রমণাত্মক ভিত্তিতে সার্ভারটি রক্ষণশীল প্যাকেটের জন্য কনফিগার করা হয়েছে। যদি সংযোগগুলি হঠাৎ করে ভেঙে যায় তবে এটি যুক্তিসঙ্গত সময়ে সেশনগুলি সরিয়ে দেবে। যদি এটি কনফিগার করা না থাকে, আপনি যদি ডেটাবেস সুপারসউসার হিসাবে লগ ইন করতে পারেন pidতবে সেশনের মানগুলি সনাক্ত করতে এবং pg_terminate_backend()এগুলি হত্যার জন্য ফাংশনটি ব্যবহার করতে পারেন । সমস্যা এড়ানোর জন্য, ক্লায়েন্টের পক্ষ থেকে হঠাৎ করে হত্যা না করে সংযোগগুলি সঠিকভাবে বন্ধ করার বিষয়ে নিশ্চিত হন।
কেজিগ্রিটন

@ নাথানচাহিল ডাটাবেসের সাথে সমস্ত সংযোগ শেষ করুন:heroku pg:killall
রোকো

9

এই ব্যতিক্রম ঘটেছে যখন আমি সংযোগগুলি বন্ধ করতে ভুলে গেছি


7

হেরোকু দেখুন "পিএসকিএল: ফ্যাটাল: অবশিষ্ট সংযোগ স্লটগুলি অন-প্রতিলিপি সুপারসার সংযোগের জন্য সংরক্ষিত আছে" :

হেরোকু মাঝে মাঝে ডাটাবেস লোড ভারসাম্য নিয়ে সমস্যা করে।

André Laszlo, markshizএবং আমি সমস্ত প্রশ্নের মন্তব্যে এটির সাথে ডিল করার রিপোর্ট করেছি।

আপনাকে সমর্থন কলটি সংরক্ষণ করতে, হিরোকু সমর্থন থেকে অনুরূপ সমস্যার জন্য আমি যে প্রতিক্রিয়া পেয়েছি তা এখানে:

হ্যালো,

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

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

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

যদি এটি অবিরত থাকে, আপনি হিরকু অ্যাডনগুলি সহ একটি নতুন ডাটাবেস (একটি ভিন্ন সার্ভারে) সরবরাহ করার চেষ্টা করতে পারেন: যোগ করুন, তারপরে ডেটা সরাতে pg: অনুলিপিটি ব্যবহার করুন। মনে রাখবেন যে শখের স্তরগুলির নিয়মগুলি $ 9 বেসিক পরিকল্পনার পাশাপাশি ফ্রি ডাটাবেসের ক্ষেত্রেও প্রযোজ্য।

ধন্যবাদ, ব্র্যাডলি


1
আমি অবাক হই যে আপনি যখন $ 50 / মাসের ডাটাবেস পরিকল্পনায় থাকবেন তখন ডাবের প্রতিক্রিয়া কী?
এমপাইসট

1
কেবল শখের স্তরগুলি ভাগ করা ডাটাবেস সার্ভার ব্যবহার করে। $ 50 / মাসের পরিকল্পনার সাথে আপনার নিজের সার্ভার রয়েছে, তাই আপনি যদি এই সমস্যাটিতে চলে থাকেন তবে এটি আপনার নিজস্ব অ্যাপ তৈরি করছে। আপনার কাছে $ 50 / মাসের পরিকল্পনার সাথে আরও প্রশাসনিক বিকল্প রয়েছে, তাই এটি নির্ণয় করা এবং ঠিক করা আরও সহজ।
জেসামিন স্মিথ

স্ট্যান্ডার্ড বিকল্পের সাথে প্রশাসনিক বিকল্পগুলি কী কী তা আপনি ব্যাখ্যা করতে পারেন? এছাড়াও 200 বার সংযোগ সহ এই বার্তাটি পাচ্ছে।
পেনসিল চেক

6

আমি আসলে ব্যবহার করে জ্যাঙ্গো প্রান্তে সংযোগ পুলিং বাস্তবায়নের চেষ্টা করেছি:

https://github.com/gmcguire/django-db-pool

তবে 20 টি ওপেন সংযোগের মান বিকাশের ডিবি কোটার নীচে উপলব্ধ সংযোগের সংখ্যা কমিয়ে সত্ত্বেও আমি এখনও এই ত্রুটিটি পেয়েছি।

অ্যামাজন আরডিএস-এর ফ্রি / সস্তা স্তরে কীভাবে আপনার পোস্টগ্রেকসএল ডাটাবেস স্থানান্তরিত করবেন সে সম্পর্কে এখানে একটি নিবন্ধ রয়েছে। এটি আপনাকে max_connectionsউচ্চতর সেট করতে দেয় । এটি আপনাকে পিবিজিউনসার ব্যবহার করে ডাটাবেস পর্যায়ে সংযোগগুলি পুল করার অনুমতি দেবে।

https://www.lewagon.com/blog/how-to-migrate-heroku-postgres-database-to-amazon-rds

হালনাগাদ:

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


আমি মনে করি এটির উপর সম্পূর্ণ নিয়ন্ত্রণ রাখার জন্য ডাটাবেস সরিয়ে নেওয়া সবচেয়ে ভাল সমাধান। নিবন্ধের জন্য ধন্যবাদ।
নাথানচাহিল 17'13

-3

নিম্নলিখিত পোস্টে আপনার পোস্টগ্রিজ ডাটাবেস পুনরায় চালু করুন:

postgres -D /usr/local/var/postgres

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