আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
উপসর্গ
PostgreSQL ডাটাবেস আপডেট করার সময় আপনি একটি ত্রুটি পান।
ত্রুটি বার্তা
ERROR: PostgreSQL Upgrade FAILED
সম্ভাব্য কারণ
| কারণ | বর্ণনা | সমস্যা সমাধান নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| PostgreSQL কনফিগারেশন ফাইলে ভুল প্রতিলিপি সেটিংস | আপগ্রেডের সময় ভুল প্রতিলিপি সেটিংসের কারণে PostgreSQL আপগ্রেড ব্যর্থ হয়। | এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা |
| পোস্টগ্রেএসকিউএল ইনস্টলেশন অ্যাপিজি ব্যবহারকারী ব্যতীত অন্য ইনস্টল ব্যবহারকারী দ্বারা সঞ্চালিত হয় | PostgreSQL একটি ইনস্টল ব্যবহারকারী হিসাবে অন্য ব্যবহারকারীর সাথে প্রাথমিকভাবে ইনস্টল করা হয়েছিল, যা আপগ্রেড ব্যর্থতার দিকে পরিচালিত করে। | এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
PostgreSQL ডাটাবেস আপগ্রেড করার সময় আপনি যদি একটি ত্রুটি পান, প্রথমে নিম্নলিখিত ডায়গনিস্টিক পদক্ষেপগুলি সম্পাদন করুন:
PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
নিশ্চিত করুন যে আপনার আসল ব্যাকআপ ডেটা
/opt/apigee/data/apigee-postgresql/pgdata- version .old/নামে একটি ফোল্ডারে রয়েছেযেমন:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/নিম্নলিখিত কমান্ড ব্যবহার করে
/opt/apigee/data/apigee-postgresql/pgdata- version .old/থেকে/opt/apigee/data/apigee-postgresql/pgdataতে ব্যাকআপ ডেটা পুনরুদ্ধার করুন:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
যেমন:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
db_upgradeকমান্ডটি পুনরায় চালান:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
আপনি যদি নিম্নলিখিত ত্রুটি পান ...
pg_resetxlog: could not open file "global/pg_control" for reading: No such file or directory...তারপর নিম্নোক্ত কমান্ড ব্যবহার করে
pg_control.oldফাইলটির নাম পরিবর্তন করেpg_controlকরুন:mv /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control.old /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control
db_upgradeকমান্ডটি পুনরায় চালান:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
যদি সমস্যাটি থেকে যায়, তাহলে Cause-এ যান: PostgreSQL কনফিগারেশন ফাইলে ভুল প্রতিলিপি সেটিংস।
কারণ: PostgreSQL কনফিগারেশন ফাইলে ভুল প্রতিলিপি সেটিংস
রোগ নির্ণয়
- PostgreSQL কনফিগারেশন ফাইল
/opt/apigee/apigee-postgresql/conf/pg_hba.confএ আপনার ইচ্ছাকৃত প্রতিলিপি সেটিংস আছে কিনা তা পরীক্ষা করুন। - যদি এই ফাইলটির প্রত্যাশিত প্রতিলিপি সেটিংস থাকে, তাহলে "apigee" ব্যবহারকারী ছাড়া অন্য ইনস্টল ব্যবহারকারী দ্বারা সম্পাদিত PostgreSQL ইনস্টলেশনে যান।
- যদি না হয়, রেজোলিউশনে যান।
রেজোলিউশন
নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
নিশ্চিত করুন যে আসল ব্যাকআপ ডেটা একটি ফোল্ডারে রয়েছে:
/opt/apigee/data/apigee-postgresql/pgdata- version .old/যেমন:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/নিম্নলিখিত কমান্ড ব্যবহার করে
/opt/apigee/data/apigee-postgresql/pgdata- version .old/থেকে/opt/apigee/data/apigee-postgresql/pgdataথেকে ব্যাকআপ ডেটা পুনরুদ্ধার করুন:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
যেমন:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
আপনি যদি কখনও স্লেভ হোস্ট পরিবর্তন করেন তাহলে কনফিগার ফাইল
pg_hba.confআপডেট করতে আপনাকে অবশ্যই/opt/apigee/customer/application/postgresql.propertiesএ নিম্নলিখিত বৈশিষ্ট্য আপডেট করতে হবে:conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trustউপরের ধাপ 4 এ সেট করা সম্পত্তি
pg_hba.confকনফিগারেশন ফাইলে আপডেট করা হয়েছে তা নিশ্চিত করতেapigee-postgresqlপরিষেবাটি পুনরায় চালু করুন:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
PostgreSQL আপগ্রেডের সময় ভুল সেটিংসের সাথে আপডেট না হয় তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি ব্যবহার করে কনফিগার ফাইল
pg_hba.confঅপরিবর্তনীয় করুন:chattr +i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
db_upgradeকমান্ডটি পুনরায় চালান:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
pg_hba.confকনফিগারেশন ফাইলে অপরিবর্তনীয় সেটিংটি সরান:chattr -i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
কারণ: পোস্টগ্রেএসকিউএল ইনস্টলেশন apigee ব্যবহারকারী ব্যতীত অন্য ইনস্টল ব্যবহারকারী দ্বারা সঞ্চালিত হয়
রোগ নির্ণয়
এই পদক্ষেপগুলি অনুসরণ করে রোলসুপার সত্যে সেট করা অন্য কোনও ব্যবহারকারী আছে কিনা তা পরীক্ষা করুন:
PostgreSQL নোডে, নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL এ লগ ইন করুন:
psql -h $(hostname -i) -U apigee
নিম্নলিখিত SQL ক্যোয়ারী চালান:
select * from pg_authid;
রোলসুপার সত্যে সেট করা একাধিক ব্যবহারকারী আছে কিনা তা পরীক্ষা করুন৷ যদি থাকে, তাহলে PostgreSQL আপগ্রেড ব্যর্থ হচ্ছে কারণ apigee ব্যবহারকারীর পরিবর্তে অন্য ব্যবহারকারীকে ইনস্টল ব্যবহারকারী হিসেবে সেট করা হয়েছে। রোলসুপার রোল এবং কম ওআইডি সহ যে কোনও ব্যবহারকারীকে ইনস্টল ব্যবহারকারী হিসাবে বিবেচনা করা হয়।
এই ধরনের ভূমিকা সমস্যা পরীক্ষা করতে, নিম্নলিখিত SQL প্রশ্নগুলি চালান:
select oid,rolname,rolsuper from pg_roles; select * from pg_user;
রেজোলিউশন
নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL এ লগইন করুন:
psql -h $(hostname -i) -U apigee
পুরানো ডিবি-তে বিদ্যমান
apigeeভূমিকাটিকে একটি অস্থায়ী ব্যবহারকারীতে পুনঃনামকরণ করুন (উদাহরণস্বরূপ:apigee2):update pg_authid set rolname ='apigee2' where rolname = 'apigee';
ধরা যাক অন্য একটি ইনস্টল ব্যবহারকারী
srcapigeছিল।srcapigeভূমিকার নাম পরিবর্তন করেapigee:update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
apigee2srcapigeব্যবহারকারীর নাম পরিবর্তন করুন:update pg_authid set rolname ='secapigee' where rolname = 'apigee2';
সমস্ত পুনঃনামকৃত ব্যবহারকারীদের জন্য পাসওয়ার্ড আপডেট করুন:
ALTER ROLE apigee WITH PASSWORD '<secret>'; ALTER ROLE srcapige WITH PASSWORD '<secret>';নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
নিশ্চিত করুন যে
/opt/apigee/data/apigee-postgresql/pgdata- version .old/নামের একটি ফোল্ডারের ভিতরে আসল ব্যাকআপ ডেটা রয়েছেযেমন:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/নিম্নলিখিত কমান্ড ব্যবহার করে
/opt/apigee/data/apigee-postgresql/pgdata- version .old/ফোল্ডারে/opt/apigee/data/apigee-postgresql/pgdataতে ডেটা পুনরুদ্ধার করুন:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
যেমন:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
db_upgradeকমান্ডটি পুনরায় চালান:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
সমস্ত
apigee-qpiddএবংedge-qpid-serverপরিষেবাগুলি পুনরায় চালু করুন:/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd restart/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
যদি সমস্যা এখনও থেকে যায়, তাহলে ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে ।
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
উপরের সমস্যা সমাধানের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন। Apigee সহায়তার সাথে যোগাযোগ করুন এবং সহায়তা দলের সাথে এই তথ্য ভাগ করুন:
-
/opt/apigee/apigee-postgresql/lib/actions/db_upgradeফাইলের দ্বিতীয় লাইনেset -xযোগ করুন। সাধারণ নির্ণয়ের পদক্ষেপগুলি অনুসরণ করুন এবং সমর্থন দলকে
db_upgradeকমান্ডের কনসোল আউটপুট প্রদান করুন:opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
সহায়তা দলকে নিম্নলিখিত লগ ফাইলগুলি প্রদান করুন:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log /opt/apigee/var/log/apigee-postgresql/update.logবিকল্পগুলি
autoসেট করা আছে কিনা তা পরীক্ষা করতে নিম্নলিখিত অপারেটিং সিস্টেম কমান্ডগুলির আউটপুট প্রদান করুন।update-alternatives --display psql
বা
update-alternatives --display pgsqlupdate-alternatives --list psqlবা
update-alternatives --list pgsql
যদি বিকল্পগুলি
manualতে সেট করা থাকে, তাহলে আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সেগুলিautoসেট করতে পারেন:update-alternatives --auto psql
autoবিকল্পগুলি সেট করাpsqlএবংpostgresবাইনারিগুলিকে আপগ্রেড করা সংস্করণগুলিতে নির্দেশ করে৷ অন্যথায়, বাইনারিগুলি পুরানো সংস্করণের দিকে নির্দেশ করবে, যা সমস্যার কারণ হতে পারে।