কম্পিউটার টিউটোরিয়াল

ধাপে ধাপ গাইড: CentOS 8-এ PostgreSQL 12 স্ট্রিমিং রেপ্লিকেশন সেটআপ

PostgreSQL স্ট্রিমিং রেপ্লিকেশন একটি প্রাইমারি (মাস্টার) নোড থেকে স্ট্যান্ডবাই (স্লেভ) নোডগুলোর দিকে Write-Ahead Log (WAL) ডেটা liên tục স্ট্রিম করে, হাই অভেইলেবিলিটি এবং ফল্ট টলরেন্সের জন্য নিয়ার-রিয়েল-টাইম ডেটাবেস কপি তৈরি করে।

Master Read/Write WAL Slave 1 Slave 2 Read-only Read-only

মাস্টার নোড কনফিগারেশন

১. WAL আর্কাইভিং সক্ষম করুন

postgresql.conf এডিট করুন:

archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/12/archive/%f'
wal_level = replica
max_wal_senders = 3

২. রেপ্লিকেশন কানেকশন অনুমতি দিন

pg_hba.conf এডিট করুন:

# TYPE DATABASE USER ADDRESS METHOD
host replication repluser 192.168.1.20/32 md5

৩. রেপ্লিকেশন ইউজার তৈরি করুন

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

এই পরিবর্তনগুলোর পর মাস্টারে PostgreSQL রিস্টার্ট করুন।

স্লেভ নোড কনফিগারেশন

১. মাস্টার থেকে বেস ব্যাকআপ

sudo -u postgres pg_basebackup -h master_ip -D /var/lib/pgsql/12/data -U repluser -P -R

২. recovery.conf কনফিগার করুন

/var/lib/pgsql/12/data/recovery.conf তৈরি করুন:

standby_mode = 'on'
primary_conninfo = 'host=master_ip port=5432 user=repluser password=securepass'
restore_command = 'cp /var/lib/pgsql/12/archive/%f "%p"'

৩. স্লেভ চালু করুন

sudo systemctl start postgresql-12
sudo systemctl enable postgresql-12

রেপ্লিকেশন যাচাই করুন

মাস্টারে রান করুন কানেক্টেড রেপ্লিকাস চেক করতে:

SELECT client_addr, state, sync_state FROM pg_stat_replication;
client_addr | state | sync_state
----------------+-----------+------------
192.168.1.20 | streaming | async

ম্যানুয়াল ফেইলওভার

যদি মাস্টার ফেইল করে:

  • ফেইলড মাস্টার থেকে রেপ্লিকেশন ডিসকানেক্ট করুন
  • স্লেভে, recovery_target_timeline = 'latest' সেট করুন recovery.conf-এ
  • প্রোমোটেড স্লেভে PostgreSQL রিস্টার্ট করুন
  • pg_stat_replication ব্যবহার করে অন্যান্য স্লেভ নতুন মাস্টারের সাথে কানেক্ট করেছে কিনা যাচাই করুন

উপসংহার

CentOS 8-এ PostgreSQL 12 স্ট্রিমিং রেপ্লিকেশন জড়িত: মাস্টারে WAL আর্কাইভিং এবং রেপ্লিকেশন অ্যাক্সেস কনফিগার করা, স্লেভে বেস ব্যাকআপ এবং recovery.conf তৈরি করা, তারপর pg_stat_replication-এর সাথে যাচাই করা। ম্যানুয়াল ফেইলওভার প্রয়োজনে একটি স্লেভকে মাস্টারে প্রোমোট করে।

ধাপে ধাপ গাইড: CentOS 8-এ PostgreSQL 12 স্ট্রিমিং রেপ্লিকেশন সেটআপ
  1. Matplotlib-এ ইউনিকোড সিম্বল ব্যবহার করা

  2. CSS দিয়ে আইকনসহ সাইড নেভিগেশন মেনু তৈরি

  3. HTML DOM scrollLeft প্রোপার্টি

  4. HTML <dfn> ট্যাগ