PostgreSQL আপগ্রেড করা যায়নি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

সমস্যার উপসর্গ

PostgreSQL ডেটাবেস আপডেট করার সময় আপনি কোনও সমস্যা দেখতে পান।

ত্রুটি বার্তা

ERROR: PostgreSQL Upgrade FAILED 

সম্ভাব্য কারণ

কারণ বিবরণ সমস্যার সমাধান সংক্রান্ত নির্দেশাবলী এগুলির ক্ষেত্রে প্রযোজ্য
PostgreSQL কনফিগারেশন ফাইলে ভুল রেপ্লিকেশন সেটিংস আপগ্রেড করার সময় ভুল রেপ্লিকেশন সেটিংসের কারণে PostgreSQL আপগ্রেড করা যায়নি। Edge Private Cloud ব্যবহারকারী
apigee ব্যবহারকারী ছাড়া অন্য ইনস্টল ব্যবহারকারীর দ্বারা PostgreSQL ইনস্টলেশন করা হয়েছে PostgreSQL প্রথমে অন্য ব্যবহারকারীকে ইনস্টল ব্যবহারকারী হিসেবে নিয়ে ইনস্টল করা হয়েছিল, যার ফলে আপগ্রেড করা যায়নি। Edge Private Cloud ব্যবহারকারী

সমস্যার সমাধান সংক্রান্ত সাধারণ ধাপ

PostgreSQL ডেটাবেস আপগ্রেড করার সময় কোনও সমস্যা হলে, প্রথমে নিম্নলিখিত ডায়াগনস্টিক ধাপগুলি অনুসরণ করুন:

  1. PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:

    mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
    
  2. আপনার আসল ব্যাক-আপ ডেটা /opt/apigee/data/apigee-postgresql/pgdata-version.old/ নামের ফোল্ডারে আছে কিনা তা নিশ্চিত করুন

    যেমন:

    /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/
    
  3. নিম্নলিখিত কমান্ড ব্যবহার করে /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
  4. db_upgrade কমান্ড আবার রান করুন:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
    
  5. আপনি যদি নিম্নলিখিত সমস্যাটি পান...

    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 
    
  6. db_upgrade কমান্ড আবার রান করুন:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
    

    সমস্যাটি থেকে গেলে, কারণ: PostgreSQL কনফিগারেশন ফাইলে ভুল রেপ্লিকেশন সেটিংস বিকল্পে যান।

কারণ: PostgreSQL কনফিগারেশন ফাইলে ভুল রেপ্লিকেশন সেটিংস

রোগ নির্ণয়

  1. PostgreSQL কনফিগারেশন ফাইলে /opt/apigee/apigee-postgresql/conf/pg_hba.conf আপনার উদ্দেশ্য অনুযায়ী রেপ্লিকেশন সেটিংস আছে কিনা তা চেক করুন।
  2. এই ফাইলে প্রত্যাশিত রেপ্লিকেশন সেটিংস থাকলে, "apigee" ব্যবহারকারী ছাড়া অন্য ইনস্টল ব্যবহারকারীর দ্বারা সম্পাদিত PostgreSQL ইনস্টলেশন বিকল্পে যান।
  3. না হলে, সমাধান বিভাগে যান।

সমাধান

  1. নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:

    mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
    
  2. নিশ্চিত করুন যে আসল ব্যাক-আপ ডেটা এই নামের ফোল্ডারে আছে: /opt/apigee/data/apigee-postgresql/pgdata-version.old/

    যেমন:

    /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/
    
  3. নিম্নলিখিত কমান্ড ব্যবহার করে /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 
    
  4. আপনি কখনও স্লেভ হোস্ট পরিবর্তন করে থাকলে, কনফিগারেশন ফাইল আপডেট করতে /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 trust 
    
  5. apigee-postgresql পরিষেবা রিস্টার্ট করে নিশ্চিত করুন যে উপরে ৪ নম্বর ধাপে সেট করা প্রপার্টি কনফিগ ফাইলে আপডেট করা হয়েছে pg_hba.conf:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
    
  6. PostgreSQL আপগ্রেড করার সময় ভুল সেটিংসের সাথে এটি আপডেট না হয় তা নিশ্চিত করতে, নিম্নলিখিত কমান্ড ব্যবহার করে কনফিগারেশন ফাইল pg_hba.conf অপরিবর্তনীয় করুন:

    chattr +i /opt/apigee/apigee-postgresql/conf/pg_hba.conf 
    
  7. db_upgrade কমান্ড আবার রান করুন:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
    
  8. কনফিগারেশন ফাইল থেকে অপরিবর্তনীয় সেটিং সরিয়ে দিন pg_hba.conf:

    chattr -i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
    

কারণ: apigee ব্যবহারকারী ছাড়া অন্য কোনও ইনস্টল ব্যবহারকারী PostgreSQL ইনস্টলেশন পারফর্ম করেছেন

রোগ নির্ণয়

  1. অন্য কোনও ব্যবহারকারীর rolesuper-এর মান true সেট করা আছে কিনা তা এইসব ধাপ অনুসরণ করে চেক করুন:

    1. PostgreSQL নোডে, নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL-এ লগ-ইন করুন:

      psql -h $(hostname -i)  -U apigee
      
    2. নিম্নলিখিত SQL কোয়েরি চালান:

      select * from pg_authid;
      
    3. rolesuper-এর মান true সেট করা আছে এমন একাধিক ব্যবহারকারী আছেন কিনা তা চেক করুন। যদি থাকে, তাহলে PostgreSQL আপগ্রেড করা যাচ্ছে না কারণ অন্য কোনও ব্যবহারকারীকে apigee ব্যবহারকারীর পরিবর্তে ইনস্টল ব্যবহারকারী হিসেবে সেট করা হয়েছে। যেকোনও ব্যবহারকারী যার rolesuper ভূমিকা আছে এবং কম OID আছে তাকে ইনস্টল ব্যবহারকারী হিসেবে বিবেচনা করা হয়।

      এই ধরনের ভূমিকা সংক্রান্ত সমস্যা চেক করতে, নিম্নলিখিত SQL কোয়েরি চালান:

      select oid,rolname,rolsuper from pg_roles;
      select * from pg_user;
      

সমাধান

  1. নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL-এ লগ-ইন করুন:

    psql -h $(hostname -i)  -U apigee
    
  2. পুরনো DB-তে আগে থেকে থাকা apigee রোলটির নাম পরিবর্তন করে সাময়িক ব্যবহারকারী (যেমন: apigee2) করুন:

    update pg_authid set rolname ='apigee2' where rolname = 'apigee'; 
    
  3. ধরা যাক, অন্য একজন ইনস্টল ব্যবহারকারী srcapige ছিলেন। srcapige ভূমিকার নাম পরিবর্তন করে apigee করুন:

    update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
    
  4. apigee2 ব্যবহারকারীর নাম পরিবর্তন করে srcapige করুন:

    update pg_authid set rolname ='secapigee' where rolname = 'apigee2'; 
    
  5. নাম পরিবর্তন করা হয়েছে এমন সব ব্যবহারকারীর পাসওয়ার্ড আপডেট করুন:

    ALTER ROLE apigee WITH PASSWORD '<secret>'; 
    ALTER ROLE srcapige WITH PASSWORD '<secret>'; 
    
  6. নিম্নলিখিত কমান্ড ব্যবহার করে PostgreSQL ডেটা ফোল্ডারের নাম পরিবর্তন করুন:

    mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
    
  7. /opt/apigee/data/apigee-postgresql/pgdata-version.old/নামের ফোল্ডারে আসল ব্যাক-আপ ডেটা আছে কিনা তা নিশ্চিত করুন

    যেমন:

    /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/
    
  8. নিম্নলিখিত কমান্ড ব্যবহার করে /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 
    
  9. db_upgrade কমান্ড আবার রান করুন:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade 
    
  10. সব 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 সহায়তা টিমের সাথে যোগাযোগ করুন এবং তাদের সাথে এই তথ্য শেয়ার করুন:

  1. /opt/apigee/apigee-postgresql/lib/actions/db_upgrade ফাইলের দ্বিতীয় লাইনে set -x যোগ করুন।
  2. সাধারণ ডায়াগনসিস ধাপ অনুসরণ করুন এবং সহায়তা টিমকে db_upgrade কমান্ডের কনসোল আউটপুট দিন:

    opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
    
  3. সহায়তা টিমের কাছে নিম্নলিখিত লগ ফাইল জমা দিন:

    /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
    /opt/apigee/var/log/apigee-postgresql/update.log
    
  4. auto-এ বিকল্প সেট করা আছে কিনা তা চেক করতে, নিম্নলিখিত অপারেটিং সিস্টেম কমান্ডের আউটপুট দিন।

    update-alternatives --display psql 
    

    অথবা

    update-alternatives --display pgsql
    update-alternatives --list 
    

    বিকল্প manual হিসেবে সেট করা থাকলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে সেগুলি auto হিসেবে সেট করতে পারবেন:

    update-alternatives --auto psql
    

    auto-এর বিকল্প সেট করলে, psql ও postgres বাইনারি আপগ্রেড করা ভার্সনে পয়েন্ট করে। অন্যথায়, বাইনারিগুলি পুরনো ভার্সনের দিকে পয়েন্ট করবে, যার ফলে সমস্যা হতে পারে।