PostgreSQL আপগ্রেড ব্যর্থতা

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

উপসর্গ

PostgreSQL ডাটাবেস আপডেট করার সময় আপনি একটি ত্রুটি পান।

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

ERROR: PostgreSQL Upgrade FAILED 

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

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

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

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
    

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

    /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 ব্যবহারকারী ব্যতীত অন্য ইনস্টল ব্যবহারকারী দ্বারা সঞ্চালিত হয়

রোগ নির্ণয়

  1. এই পদক্ষেপগুলি অনুসরণ করে রোলসুপার সত্যে সেট করা অন্য কোনও ব্যবহারকারী আছে কিনা তা পরীক্ষা করুন:

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

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

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

      এই ধরনের ভূমিকা সমস্যা পরীক্ষা করতে, নিম্নলিখিত SQL প্রশ্নগুলি চালান:

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

রেজোলিউশন

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

    psql -h $(hostname -i)  -U apigee
    
  2. পুরানো ডিবি-তে বিদ্যমান 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 psql
    

    বা

    update-alternatives --list pgsql
    

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

    update-alternatives --auto psql
    

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