1. Thiết lập Replication

Bước 1: Chuẩn bị Cơ Sở Dữ Liệu Chính (Primary)

# Chỉnh sửa tệp cấu hình postgresql.conf
wal_level = replica         # Thiết lập mức độ WAL cho replication
max_wal_senders = 5         # Số lượng tối đa WAL sender processes
wal_keep_segments = 64      # Số lượng WAL segment cần giữ
hot_standby = on            # Cho phép truy vấn trên replica
# Chỉnh sửa tệp pg_hba.conf để cho phép kết nối từ replica
host    replication     all             /32        md5
# Khởi động lại dịch vụ PostgreSQL
sudo systemctl restart postgresql

Bước 2: Tạo Backup của Primary

# Tạo backup bằng pg_basebackup từ máy chủ replica
pg_basebackup -h  -D /path/to/replica/data -U  -P --wal-method=stream

2. Cấu Hình Replica

Bước 1: Cấu hình Tệp recovery.conf

# Tạo tệp recovery.conf trong thư mục dữ liệu của replica
standby_mode = 'on'
primary_conninfo = 'host= port=5432 user= password='
trigger_file = '/tmp/postgresql.trigger.5432'  # Tùy chọn
# Đảm bảo quyền truy cập an toàn cho recovery.conf
chown postgres:postgres /path/to/replica/data/recovery.conf
chmod 600 /path/to/replica/data/recovery.conf

3. Khởi Động Replica

# Khởi động PostgreSQL trên replica
sudo systemctl start postgresql
-- Kiểm tra trạng thái replication trên primary
SELECT * FROM pg_stat_replication;

4. Quản Lý Replica

Bước 1: Kiểm Tra và Giám Sát

-- Giám sát WAL và replication lag
SELECT * FROM pg_stat_replication;
SELECT pg_current_wal_lsn(), pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn();

Bước 2: Promotion Replica

# Nâng cấp replica thành primary
pg_ctl promote -D /path/to/replica/data

5. Bảo Trì

  • Sao lưu định kỳ: Đảm bảo rằng cả primary và replica đều được sao lưu định kỳ.
  • Theo dõi log: Kiểm tra log của PostgreSQL để phát hiện các vấn đề liên quan đến replication.