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

คำแนะนำทีละขั้นตอน:การตั้งค่าการจำลองแบบสตรีมมิ่ง PostgreSQL 12 บน CentOS 8

PostgreSQL Streaming Replication จะสตรีมข้อมูล Write-Ahead Log (WAL) อย่างต่อเนื่องจากโหนดหลัก (มาสเตอร์) ไปยังโหนดสแตนด์บาย (สเลฟ) สร้างสำเนาฐานข้อมูลที่ใกล้เคียงเรียลไทม์เพื่อความพร้อมใช้งานสูงและความทนทานต่อข้อผิดพลาด

มาสเตอร์อ่าน/เขียน WAL Slave 1 Slave 2 อ่านอย่างเดียว อ่านอย่างเดียว

การกำหนดค่าโหนดหลัก

1. เปิดใช้งานการเก็บถาวร WAL

แก้ไข postgresql.conf ?

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

2. อนุญาตการเชื่อมต่อการจำลอง

แก้ไข pg_hba.conf ?

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

3. สร้างผู้ใช้การจำลอง

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

รีสตาร์ท PostgreSQL บนต้นแบบหลังจากการเปลี่ยนแปลงเหล่านี้

การกำหนดค่าโหนดรอง

1. การสำรองข้อมูลพื้นฐานจาก 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. เริ่มทาส

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

บทสรุป

การจำลองแบบสตรีมมิ่ง PostgreSQL 12 บน CentOS 8 เกี่ยวข้องกับการกำหนดค่าการเก็บถาวร WAL และการเข้าถึงการจำลองแบบบนต้นแบบ การสร้างการสำรองข้อมูลพื้นฐานและ recovery.conf บนทาส จากนั้นตรวจสอบด้วย pg_stat_replication . การเฟลโอเวอร์ด้วยตนเองจะเลื่อนระดับทาสให้เป็นต้นแบบเมื่อจำเป็น

คำแนะนำทีละขั้นตอน:การตั้งค่าการจำลองแบบสตรีมมิ่ง PostgreSQL 12 บน CentOS 8