Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

คู่มือทีละขั้น: ตั้งค่า PostgreSQL 12 Streaming Replication บน CentOS 8

PostgreSQL Streaming Replication สตรีมข้อมูล Write-Ahead Log (WAL) จากโหนดหลัก (Master) ไปยังโหนดสำรอง (Standby/Slave) อย่างต่อเนื่อง สร้างสำเนาฐานข้อมูล Near-real-time สำหรับ High Availability และ Fault Tolerance

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

การตั้งค่า Master Node

1. เปิดใช้งาน WAL Archiving

แก้ไข postgresql.conf

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

2. อนุญาตการเชื่อมต่อ Replication

แก้ไข pg_hba.conf

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

3. สร้าง Replication User

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

Restart PostgreSQL บน Master หลังเปลี่ยนแปลงเหล่านี้

การตั้งค่า Slave Node

1. Base Backup จาก Master

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

2. ตั้งค่า 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"'

3. เริ่ม Slave

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

ตรวจสอบ Replication

รันบน Master เพื่อตรวจสอบ Replicas ที่เชื่อมต่อ

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

Manual Failover

หาก Master ล้มเหลว

  • ตัดการ Replication จาก Master ที่ล้มเหลว
  • บน Slave ตั้ง recovery_target_timeline = 'latest' ใน recovery.conf
  • Restart PostgreSQL บน Slave ที่โปรโมท
  • ตรวจสอบ Slaves อื่นเชื่อมต่อ Master ใหม่ด้วย pg_stat_replication

สรุป

PostgreSQL 12 Streaming Replication บน CentOS 8 เกี่ยวข้องกับการตั้งค่า WAL Archiving และการเข้าถึง Replication บน Master, สร้าง Base Backup และ recovery.conf บน Slave, แล้วตรวจสอบด้วย pg_stat_replication Manual Failover โปรโมท Slave เป็น Master เมื่อจำเป็น

คู่มือทีละขั้น: ตั้งค่า PostgreSQL 12 Streaming Replication บน CentOS 8