আমার যখন দুটি পোস্টগ্রিএসকিউএল সার্ভার ইনস্টল করা দরকার তখন আমি কীভাবে pg_dump দিয়ে একটি "সার্ভার সংস্করণ অমিল" সমাধান করব?


13

আমি আমার কম্পিউটারে দুটি পোস্টগ্রেএসকিউএল সার্ভার ইনস্টল করেছি। একটি 9.1 এবং অন্যটি 9.3। আমার উভয় সার্ভার ইনস্টল করা দরকার।

আমি যখন পিজি_ডাম্প চালাই, তবে আমি একটি সংস্করণ অমিল ত্রুটি পেয়েছি:

server version: 9.3.6; pg_dump version: 9.1.15
pg_dump: aborting because of server version mismatch

আমি কিভাবে এটা সমাধান করতে পারে? (উভয় সংস্করণ আনইনস্টল করতে পারি না - আমি 9.1 প্রথম এবং 9.3.3 অনেক মাস পরে ইনস্টল করেছি - আমার উভয় ডাটাবেস সার্ভার ইনস্টল করা প্রয়োজন)।


স্পষ্টভাবে 9.3 সংস্করণ চালান pg_dump। উভয়ই ইনস্টল করা আছে তবে কেবলমাত্র একটি ডিফল্ট। দেখুন update-alternativesপাথ, অথবা dpkg -Lতারা কোথায় PostgreSQL ক্লায়েন্ট প্যাকেজ দেখতে। নিজেকে দেখাতে কোনও উবুন্টু বাক্সে তাত্ক্ষণিকভাবে অ্যাক্সেস পাবেন না।
ক্রেগ রিঞ্জার

না পারেন. Pg_dump কমান্ডটি অন্য অ্যাপ্লিকেশন থেকে চালানো হচ্ছে।
লুইস মাসুয়েলি

PATHএরপরে আপনাকে অ্যাপ্লিকেশনটির সাথে পরিবেশের পরিবর্তনশীল পরিবর্তন করতে হবে ।
ক্রেগ রিঞ্জার

আমারও একই সমস্যা ছিল। আমাকে পোস্টগ্র্যাস এসকিউএল এপিটি সংগ্রহস্থলের মাধ্যমে ইনস্টল করতে হয়েছিল: Askubuntu.com/a/831293/448857
নিউ

উত্তর:


16

টিএল; ডিআর : যদি পোস্টগ্র্রেএসকিউএল উভয়ই দৃষ্টান্ত উবুন্টু প্যাকেজগুলি দ্বারা পরিচালিত হয় (যেমন তাদের করা উচিত) তবে --clusterব্যাকআপের জন্য পোস্টগ্র্রেএসকিউএল উদাহরণ নির্বাচন করার জন্য বিকল্পটি ব্যবহার করুন এবং এটি স্বয়ংক্রিয়ভাবে পিজি_ডম্পের সাথে সম্পর্কিত সংস্করণটি চয়ন করবে:

pg_dump --cluster 9.1/main [other pg_dump options]

অথবা

pg_dump --cluster 9.3/main [other pg_dump options]

mainএটি একটি ডিফল্ট মান, কলামে pg_lsclustersআপনার আসল নামগুলি দেখতে চালান Cluster

এটি কীভাবে কাজ করে: উবুন্টু প্যাকেজগুলির দ্বারা ইনস্টল করা /usr/bin/pg_dumpআসলে এটির সাথে একটি সফট-লিঙ্ক /usr/share/postgresql-common/pg_wrapper, যার উদ্দেশ্য সঠিকভাবে সঠিক উদাহরণটি নির্বাচন করা এবং সংশ্লিষ্ট বাইনারি চালানো। --clusterস্টক পোস্টগ্র্রেএসকিউএল কমান্ডে বিদ্যমান নেই, এটি একটি দেবিয়ান / উবুন্টু সংযোজন যা এই একাধিক সংস্করণ / একাধিক পাথ সমস্যার সমাধান করে।

এই জন্য একই psql, createdb, createuser, ইত্যাদি প্রায় 18 postgres আদেশগুলিতে /usr/binআসলে দ্বারা পরিচালিত হয় pg_wrapper

দেখুন মানুষ pg_wrapper আরো অনেক কিছুর জন্য।


সংস্করণ / প্রধান কি জন্য? মূল কি?
আলেকজান্ডার মিলস

1
@ আলেকজান্ডারমিলস: version= পোস্টগ্রেসকিএল এর বড় সংস্করণ এবং main= ক্লাস্টারের ডিফল্ট নাম। Pg_lsclusters এবং pg_wrapper এর ম্যান্যাপগুলি দেখুন।
ড্যানিয়েল ভ্যারিট

7

তুমি ব্যবহার করতে পার:

sudo find / -name pg_dump

pg_dumpআমার ক্ষেত্রে আপনার সংস্করণগুলি খুঁজে পেতে :/usr/pgsql-9.6/bin/pg_dump

সুতরাং পরবর্তী আমরা করতে পারেন:

sudo ln -sfn /usr/pgsql-9.6/bin/pg_dump /usr/bin/pg_dump

আমাদের যা প্রয়োজন তার আপডেট করার জন্য

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