Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

Hướng dẫn từng bước:Thiết lập bản sao phát trực tuyến PostgreSQL 12 trên CentOS 8

PostgreSQL Streaming Replication liên tục truyền dữ liệu Nhật ký ghi trước (WAL) từ nút chính (chính) đến nút dự phòng (nô lệ), tạo các bản sao cơ sở dữ liệu gần như thời gian thực để có tính sẵn sàng cao và khả năng chịu lỗi.

Đọc/ghi chính WAL Slave 1 Slave 2 Chỉ đọc Chỉ đọc

Cấu hình nút chính

1. Bật lưu trữ WAL

Chỉnh sửa postgresql.conf ?

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

2. Cho phép kết nối sao chép

Chỉnh sửa pg_hba.conf ?

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

3. Tạo người dùng bản sao

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

Khởi động lại PostgreSQL trên máy chủ sau những thay đổi này.

Cấu hình nút phụ

1. Sao lưu cơ sở từ Master

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

2. Định cấu hình recovery.conf

Tạo /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. Bắt đầu nô lệ

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

Xác minh bản sao

Chạy trên bản gốc để kiểm tra các bản sao được kết nối ?

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

Chuyển đổi dự phòng thủ công

Nếu chủ nhân thất bại

  • Ngắt kết nối bản sao khỏi bản gốc bị lỗi
  • Trên máy phụ, đặt recovery_target_timeline = 'latest' trong recovery.conf
  • Khởi động lại PostgreSQL trên máy phụ được thăng cấp
  • Xác minh các máy phụ khác kết nối với máy chủ mới bằng pg_stat_replication

Kết luận

Sao chép phát trực tuyến PostgreSQL 12 trên CentOS 8 bao gồm việc định cấu hình quyền truy cập sao chép và lưu trữ WAL trên máy chủ, tạo bản sao lưu cơ sở và recovery.conf trên máy phụ, sau đó xác minh bằng pg_stat_replication . Chuyển đổi dự phòng thủ công sẽ chuyển từ nô lệ sang chủ khi cần thiết.

Hướng dẫn từng bước:Thiết lập bản sao phát trực tuyến PostgreSQL 12 trên CentOS 8