আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
লক্ষণ
PostgreSQL ডাটাবেস আপডেট করার সময় আপনি একটি ত্রুটি পান।
ত্রুটি বার্তা
ERROR: PostgreSQL Upgrade FAILED
সম্ভাব্য কারণ
| কারণ | বিবরণ | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| PostgreSQL কনফিগারেশন ফাইলে ভুল প্রতিলিপি সেটিংস | আপগ্রেডের সময় ভুল রেপ্লিকেশন সেটিংসের কারণে PostgreSQL আপগ্রেড ব্যর্থ হয়। | এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা |
| apigee ব্যবহারকারী ব্যতীত অন্য কোনও ইনস্টল ব্যবহারকারী দ্বারা সম্পাদিত 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
যদি সমস্যাটি থেকে যায়, তাহলে "Case: Incorrect replication settings in PostgreSQL configuration file" বিভাগে যান।
কারণ: PostgreSQL কনফিগারেশন ফাইলে ভুল প্রতিলিপি সেটিংস
রোগ নির্ণয়
- PostgreSQL কনফিগারেশন ফাইল
/opt/apigee/apigee-postgresql/conf/pg_hba.confএ আপনার পছন্দের রেপ্লিকেশন সেটিংস আছে কিনা তা পরীক্ষা করুন। - যদি এই ফাইলটিতে প্রত্যাশিত প্রতিলিপি সেটিংস থাকে, তাহলে "apigee" ব্যবহারকারী ব্যতীত অন্য কোনও ইনস্টল ব্যবহারকারী দ্বারা সম্পাদিত PostgreSQL ইনস্টলেশনে যান।
- যদি না হয়, তাহলে Resolution এ যান।
রেজোলিউশন
নিম্নলিখিত কমান্ড ব্যবহার করে 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উপরের ধাপ ৪-এ সেট করা সম্পত্তিটি কনফিগ ফাইল
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 ইনস্টলেশন করা হয়েছে
রোগ নির্ণয়
এই ধাপগুলি অনুসরণ করে পরীক্ষা করুন যে অন্য কোনও ব্যবহারকারীর rolesuper true তে সেট করা আছে কিনা:
PostgreSQL নোডে, নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL এ লগ ইন করুন:
psql -h $(hostname -i) -U apigee
নিম্নলিখিত SQL কোয়েরিটি চালান:
select * from pg_authid;
rolesuper কে true তে সেট করা একাধিক ব্যবহারকারী আছে কিনা তা পরীক্ষা করুন। যদি থাকে, তাহলে PostgreSQL আপগ্রেড ব্যর্থ হচ্ছে কারণ apigee ব্যবহারকারীর পরিবর্তে অন্য একজন ব্যবহারকারীকে install user হিসেবে সেট করা হয়েছে। rolesuper ভূমিকা এবং কম OID সহ যেকোনো ব্যবহারকারীকে install ব্যবহারকারী হিসেবে বিবেচনা করা হবে।
এই ধরণের ভূমিকা সমস্যা পরীক্ষা করতে, নিম্নলিখিত 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';
apigee2এর নাম পরিবর্তন করেsrcapigeব্যবহারকারী রাখুন: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যদি বিকল্পগুলি
manualতে সেট করা থাকে, তাহলে আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সেগুলিকেautoতে সেট করতে পারেন:update-alternatives --auto psql
autoবিকল্প সেট করলেpsqlএবংpostgresবাইনারিগুলি আপগ্রেড করা সংস্করণগুলিতে নির্দেশিত হয়। অন্যথায়, বাইনারিগুলি পুরানো সংস্করণগুলিতে নির্দেশিত হবে, যা সমস্যার সৃষ্টি করতে পারে।