PostgreSQL 9.1 এ স্বয়ংক্রিয়ভাবে ব্যর্থতা over


18

PostgreSQL 9.1 এ স্বয়ংক্রিয় ব্যর্থতার জন্য কীভাবে একটি সেটআপ দুটি অভিন্ন সার্ভার করে।

অপারেটিং সিস্টেম

Centos 5
PostgreSQL 9.1 উত্স থেকে সংকলিত পোস্টগ্রিজ
ব্যবহারকারী অ্যাকাউন্ট উভয় মেশিনে বিদ্যমান এবং উভয় মেশিনে সংযোগ করার জন্য একটি এসএসএস পাসওয়ার্ডহীন কী রয়েছে।

আমার বর্তমান সেটআপ:

মাস্টার সার্ভার কনফিগারেশন:

postgresql.conf:

listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 16    
wal_keep_segments = 8 
archive_mode = on    
archive_command = 'cp "%p" /opt/pgsql91/archive/"%f"'  

pg_hba.conf:

 host  replication   all   10.0.66.1/32      trust
 host  replication   all   10.0.66.2/32      trust

স্ট্যান্ডবাই সার্ভার

postgresql.conf এবং pg_hba.conf মাস্টার সার্ভারে যা কনফিগার করা হয়েছে তার সমান।

recovery.conf:

 standby_mode = 'on'
 primary_conninfo = 'host=10.0.66.1'
 trigger_file = '/opt/pgsql91/data/trigger.txt'

HzRoot ধন্যবাদ, আমি এখন বুঝতে পারি কীভাবে স্ট্যান্ডবাই থেকে মাস্টারটিতে সার্ভারটি স্যুইচ করা যায়।

নিম্নলিখিত কমান্ডগুলি ব্যবহার করে, আমি নতুন স্লেভকে নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ করতে পারি এবং তারপরেই রেপ্লিকেশন ব্যাকআপ এবং চলমান পেতে পারি।

নতুন মাস্টারে (10.0.66.2)

  1. su - postgres
  2. / opt / pgsql91 / ডাটা / ইন
  3. পুনরুদ্ধার.কনফ পুনরুদ্ধার হয়ে যায়
  4. psql -c "; নির্বাচন করুন pg_start_backup ('ব্যাকআপ', সত্য)";
  5. আরএসআইএনসি -এ -ভি-এসএসএস / অপ্ট / পিএসএসকিএল91 / ডেটা / 10.0.66.1:/opt/pgsql91/data/ - পোস্টমাস্টার.পিড অন্তর্ভুক্ত করুন
  6. psql -c "; নির্বাচন করুন pg_stop_backup ()";

নতুন দাসে (10.0.66.1)

  1. রিকভারি.কনফ: সিপি রিকভারি তৈরি করুন recovery
  2. vi পুনরুদ্ধার.কেন্ফ আইপি ঠিকানা পরিবর্তন করুন: প্রাথমিক_কন্নিনফো = 'হোস্ট = 10.0.66.2'
  3. postgresql শুরু করুন

সুতরাং আমার প্রশ্নগুলি এখন:

  1. এটি কি ভূমিকা পাল্টানোর সঠিক উপায়?
  2. কেউ কি এই প্রক্রিয়াটি স্বয়ংক্রিয় করেছেন, তা হলে আপনি কী করেছেন?
  3. যদি সিঙ্ক্রোনাস প্রতিলিপি সক্ষম করা থাকে তবে আমি লক্ষ্য করেছি যে নতুন মাস্টার সার্ভার কোনও লেনদেন করবে না কারণ এটি দাসটির প্রতিক্রিয়া জানার জন্য অপেক্ষা করছে। কোনও গোলাম নেই যদিও অন্য সার্ভার, পুরানো মাস্টার ডাউন রয়েছে। এটি কি সঠিক বা নতুন দাসটি ডাউন থাকাকালীন আমার কি সাময়িকভাবে সিঙ্ক্রোনাস প্রতিলিপি অক্ষম করা দরকার?

১. হ্যাঁ সঠিক ২ that প্রক্রিয়াটি স্বয়ংক্রিয় না করাই ভাল। ৩. সুতরাং আপনার কমপক্ষে ২ জন ক্রীতদাস এবং ১ জন মাস্টার প্রয়োজন। কারণ আপনি যেমন সিঙ্ক বলেছেন। প্রতিরূপকরণের কমিটস সিঙ্কটি পুশ করতে কমপক্ষে 2 টি নোডের প্রয়োজন। যদি এটির জন্য কেবলমাত্র একটি মাস্টার নোড থাকে তবে আপনি প্রতিশ্রুতিবদ্ধ হতে পারবেন না
sftsz

4, 5 এবং 6 পদক্ষেপগুলি নতুন মাস্টারের জন্য প্রয়োজনীয় নয় কারণ ভাল, আপনি এর সাথে পুনরায় প্রতিলিপি করছেন। দ্বিতীয়ত, যদি মাস্টার মারা যায় এবং অফলাইন হয় - তবে আপনি এটির সাথে সংযোগ করতে সক্ষম হবেন না। 4,5, এবং 6 ধাপগুলি সাধারণত একটি নতুন দাস নোডে প্রতিরূপ পুলে যোগদান করা হয়।
এরিক

@ এরিক যেমন আমি এটি খেলেছি, পুরানো মাস্টারকে কর্মক্ষম অবস্থায় ফিরিয়ে আনতে 4,5,6 পদক্ষেপ নেওয়া দরকার। স্ট্যান্ডবাইকে নতুন প্রাইমারি তৈরি করা সঙ্গে সঙ্গে নতুন ওয়াল এন্ট্রি করে, তাই এখন পুরানো মাস্টারের আগে এটি 1 টি প্রবেশ। পুরানো মাস্টারটি স্ট্যান্ডি মোডে শুরু করা আমার উপর ত্রুটি ছুঁড়ে ফেলেছে, তাই নতুন মাস্টারের সাথে এটি সিঙ্ক করার জন্য আমাকে পুরানো মাস্টারের 4,5,6 পদক্ষেপগুলি করতে হয়েছিল (pg_basebackup ব্যবহার করে, যা নতুন মাস্টার থেকে পুরো xlog স্ট্রিম করতে পারে) - পোস্টগ্রেসে 4,5,6 পদক্ষেপগুলি প্রতিস্থাপন করে> = 9.1 আমার মনে হয়)। আমি কি সংশোধন করছি বা আমি কিছু ভুল করেছি এবং এই চিৎকারটি প্রয়োজনীয় নয়?
ডালিবোর ফিলাস

উত্তর:


8

পরীক্ষা করে দেখুন repmrg :

repmgr হ'ল ওপেন সোর্স সরঞ্জামগুলির একটি সেট যা ডিবিএ এবং সিস্টেম প্রশাসকদের PostgreSQL ডাটাবেসের একটি ক্লাস্টার পরিচালনা করতে সহায়তা করে ..

পোস্টগ্রাইএসকিউএল 9 এ প্রবর্তিত হট স্ট্যান্ডবাই সক্ষমতার সুবিধা গ্রহণ করে, repmgr উচ্চ প্রাপ্যতা এবং স্কেলিবিলিটি প্রয়োজনীয়তা সহ ডেটাবেস সেট আপ এবং পরিচালনা করার প্রক্রিয়াটিকে ব্যাপকভাবে সহজ করে।

repmgr প্রশাসন এবং দৈনন্দিন পরিচালনকে সহজতর করে, উত্পাদনশীলতা বাড়ায় এবং পোস্টগ্রাইএসকিউএল ক্লাস্টারের সামগ্রিক ব্যয় হ্রাস করে:

  • প্রতিরূপ প্রক্রিয়া পর্যবেক্ষণ; ডিবিএগুলিকে উচ্চ ইস্যু করার অনুমতি দেয়
  • স্যুইচ-ওভারস এবং ব্যর্থ ওভারের মতো উপলভ্যতা ক্রিয়াকলাপ।

এটি দুটি কাজ করে:

  1. repmgr: কমান্ড প্রোগ্রাম যা আপনার ক্লাস্টারে কাজ করে এবং তারপরে প্রস্থান করে
  2. repmgrd: পরিচালনা এবং পর্যবেক্ষণ ডেমন যা ক্লাস্টার দেখে এবং দূরবর্তী ক্রিয়াকলাপ স্বয়ংক্রিয় করতে পারে।

স্বয়ংক্রিয় ব্যর্থতার জন্য, repmgrd কৌশলটি করে এবং আপনার নেটওয়ার্কে পিপিপুলের মতো কোনও এসপিওএফ নয়। তবে, সমস্ত ডিমনগুলি পর্যবেক্ষণ করা এবং ব্যর্থতার পরে এগুলি ফিরিয়ে আনা গুরুত্বপূর্ণ।

সংস্করণ 2.0 প্রকাশিত হতে চলেছে, আরপিএম সহ।


হ্যালো ফ্র্যাঙ্ক, আপনার উত্তরের জন্য আপনাকে ধন্যবাদ। আমি repmrg এর কথা শুনিনি এবং আমি অবশ্যই চেষ্টা করে দেখব।
ক্রেগ ইফ্রেইন

হ্যালো আবার ফ্র্যাঙ্ক, repmgr এর জন্য ধন্যবাদ, এটি ঠিক আমি যা খুঁজছিলাম। আমি অবশেষে আজ চেষ্টা করে দেখতে পেলাম।
ক্রেগ এফ্রেইন

4

আপনার পুনরুদ্ধার.কনফ ফাইলে আপনার একটি লাইন যুক্ত করা উচিত যা পোস্টগ্র্যাসকে মাস্টার থেকে স্লেভে ফেলওভার করতে বলে। আপনি যোগ করা উচিত

trigger_file = '/any/file/to/trigger'

যখন আপনি প্রদত্ত পথে এই ফাইলটি তৈরি করবেন। নোডগুলি পরিবর্তন হবে। (ফাইলের মধ্যে এমন কিছু অন্তর্ভুক্ত নয় যা এটি কেবল একটি ট্রিগার)

আপনি স্ট্রিমিং প্রতিরূপ উপর অতিরিক্ত তথ্য পেতে পারেন

অন্যদিকে, এটি কিছু কৌশল দ্বারা স্বয়ংক্রিয়ভাবে তৈরি করা সম্ভব হতে পারে তবে মনিটরিং সরঞ্জামগুলি ব্যবহার করা এবং ম্যানুয়ালকে ব্যর্থ করা আরও ভাল হবে ..


প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ. আমি এটি পরীক্ষা করার আগে কয়েক দিন হতে পারে তবে আমি অবশ্যই আপনার কাছে ফিরে আসব।
ক্রেগ ইফ্রেইন

আমি ট্রিগার_ফাইলে উত্তরের জন্য আপনাকে +1 দিচ্ছি যা প্রক্রিয়াটি ব্যাপকভাবে প্রবাহিত করতে আমাকে সহায়তা করেছে। প্রক্রিয়াটি সম্পূর্ণরূপে স্বয়ংক্রিয়ভাবে কীভাবে করা যায় এটি সম্পূর্ণ উত্তর নয়। অন্য একটি জিনিস আমি লক্ষ্য করেছি যে মাস্টার নিচে থাকাকালীন লেনদেনগুলি সম্পন্ন হবে না কারণ এটি মাস্টারকে স্বীকার করার জন্য অপেক্ষা করেছিল। এটি async প্রতিলিপি ব্যবহার করে সমাধান করা হয়েছিল
ক্রেগ এফ্রেইন

এটা বেশ দুর্দান্ত। পোস্টগ্রেএসকিউএল এর প্রতিলিপি বাস্তবায়নে নমনীয়তার অভাব সম্পর্কে আমার অনেক সমালোচনা আছে, তবে এটি ব্যর্থতা পরিচালনা করার একটি দুর্দান্ত, সহজ উপায় way
অ্যারন ব্রাউন

1
যদিও মাস্টার নিজে চলমান রয়েছে তখনও এটি প্রধান ভূমিকাটি গ্রহণ করে না (সুতরাং আপনার দুটি মাস্টার রয়েছে)। এটি পোস্টগ্রিজ নিজেই স্বয়ংক্রিয় নয়।
ডালিবোর ফিলাস

0

কেউ কি এর জন্য পিজপুল -২ ব্যবহারের কথা বিবেচনা করেছেন?

http://pgpool.projects.postgresql.org/contrib_docs/simple_sr_setting/index.html

আমি পোস্টগ্রিজ এসকিউএল এর জন্য প্রতিলিপি সেট আপ করছি। পুরানো কর্তা ফিরে আসার পরে মনে হয় এটি জটিল অংশটি ঘটবে।

আমি যা পড়েছি তা থেকে, পিজপুল দেখে মনে হচ্ছে এটি বেশিরভাগটি স্বয়ংক্রিয়ভাবে চালিত হতে পারে। তবে আমি নিশ্চিত নই যে পোস্টগ্রিজ এসকিউএল 9.1-এ ইতিমধ্যে উপস্থিত রেপ্লিকেশন বৈশিষ্ট্যগুলিকে লিভারেজ করেছে কিনা।


1
পিজিপুল হ'ল ব্যর্থতার একক বিন্দু, আপনি যখন নিচে যাবেন তখন আপনি সবকিছু আলগা করুন।
ফ্রাঙ্ক হিকেন্স

1
আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ। আমি সেন্টপস এবং ডেবিয়ান উভয়ের মিশ্র ফলাফল সহ পিজিপি পুল II চেষ্টা করেছি এবং শেষ পর্যন্ত ছেড়ে দিয়েছি।
ক্রেগ ইফ্রেইন

1
এইচএপ্রক্সির সাথে পগপুল II ব্যবহার করবেন না কেন? হার্টবিট এবং ভাসমান আইপি শুনছেন?
mikiemorales

কেবল historicতিহাসিক রেফারেন্সের জন্য, পিজপুল-আইআই বর্তমানে উইন্ডোজে চালিত হয় না।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.