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-এর সাথে যাচাই করা। ম্যানুয়াল ফেইলওভার প্রয়োজনে একটি স্লেভকে মাস্টারে প্রোমোট করে।