আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
সমস্যার উপসর্গ
PostgreSQL ডেটাবেস আপডেট করার সময় আপনি কোনও সমস্যা দেখতে পান।
ত্রুটি বার্তা
ERROR: PostgreSQL Upgrade FAILED
সম্ভাব্য কারণ
| কারণ | বিবরণ | সমস্যার সমাধান সংক্রান্ত নির্দেশাবলী এগুলির ক্ষেত্রে প্রযোজ্য |
|---|---|---|
| PostgreSQL কনফিগারেশন ফাইলে ভুল রেপ্লিকেশন সেটিংস | আপগ্রেড করার সময় ভুল রেপ্লিকেশন সেটিংসের কারণে PostgreSQL আপগ্রেড করা যায়নি। | Edge Private Cloud ব্যবহারকারী |
| apigee ব্যবহারকারী ছাড়া অন্য ইনস্টল ব্যবহারকারীর দ্বারা PostgreSQL ইনস্টলেশন করা হয়েছে | PostgreSQL প্রথমে অন্য ব্যবহারকারীকে ইনস্টল ব্যবহারকারী হিসেবে নিয়ে ইনস্টল করা হয়েছিল, যার ফলে আপগ্রেড করা যায়নি। | Edge Private Cloud ব্যবহারকারী |
সমস্যার সমাধান সংক্রান্ত সাধারণ ধাপ
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
সমস্যাটি থেকে গেলে, কারণ: 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
আপনি কখনও স্লেভ হোস্ট পরিবর্তন করে থাকলে, কনফিগারেশন ফাইল আপডেট করতে
/opt/apigee/customer/application/postgresql.propertiesআপনাকে অবশ্যই নিম্নলিখিত প্রপার্টি আপডেট করতে হবেpg_hba.conf:conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trustapigee-postgresqlপরিষেবা রিস্টার্ট করে নিশ্চিত করুন যে উপরে ৪ নম্বর ধাপে সেট করা প্রপার্টি কনফিগ ফাইলে আপডেট করা হয়েছেpg_hba.conf:/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 ব্যবহারকারীর পরিবর্তে ইনস্টল ব্যবহারকারী হিসেবে সেট করা হয়েছে। যেকোনও ব্যবহারকারী যার rolesuper ভূমিকা আছে এবং কম OID আছে তাকে ইনস্টল ব্যবহারকারী হিসেবে বিবেচনা করা হয়।
এই ধরনের ভূমিকা সংক্রান্ত সমস্যা চেক করতে, নিম্নলিখিত SQL কোয়েরি চালান:
select oid,rolname,rolsuper from pg_roles; select * from pg_user;
সমাধান
নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL-এ লগ-ইন করুন:
psql -h $(hostname -i) -U apigee
পুরনো DB-তে আগে থেকে থাকা
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.logauto-এ বিকল্প সেট করা আছে কিনা তা চেক করতে, নিম্নলিখিত অপারেটিং সিস্টেম কমান্ডের আউটপুট দিন।update-alternatives --display psql
অথবা
update-alternatives --display pgsqlupdate-alternatives --listবিকল্প
manualহিসেবে সেট করা থাকলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সেগুলিautoহিসেবে সেট করতে পারবেন:update-alternatives --auto psql
auto-এর বিকল্প সেট করলে,psqlওpostgresবাইনারি আপগ্রেড করা ভার্সনে পয়েন্ট করে। অন্যথায়, বাইনারিগুলি পুরনো ভার্সনের দিকে পয়েন্ট করবে, যার ফলে সমস্যা হতে পারে।