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.