High Availability (HA) giúp tăng khả năng tải một hệ thống, hạn chế rủi ro mất mất dữ liệu cũng như đảm bảo khả năng sẵn sàng toàn hệ thống. Serie log:
- #1. Cài đặt mô hình Master - Slave PostgreSQL
- #2. Cài đặt Pooler for PostgreSQL - PgBouncer
- #3. Cài đặt Connection clustering - PgPool
Tuỳ nhu cầu từng hệ thống, chọn mô hình phù hợp để tiết kiệm tài nguyên máy chủ
Cài đặt mô hình Master - Slave PostgreSQL
Môi trường cài đặt theo log #1:
- PostgreSQL: 15
- OS: Centos 7
Cài đặt PostgreSQL
Download PostgreSQL Repository RPM
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Cài đặt PosgreSQL:
sudo yum install -y postgresql15-server
Khởi tạo Database:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Start Postgres Database:
sudo systemctl start postgresql-15
Chạy Postgres database dưới dạng service
sudo systemctl enable postgresql-15
Cấu hình Master-slave
Cấu hình file postgresql.conf như cấu hình sau tại node master
Đường dẫn file: /var/lib/pgsql/15/data/postgresql.conf
listen_addresses = '*'
max_connections = 200
archive_mode = on
archive_command = 'cp "%p" "/var/lib/pgsql/archivedir/%f"'
max_wal_senders = 10
max_replication_slots = 10
wal_level = replica
hot_standby = on
wal_log_hints = on
Khởi tạo archivedir:
[master-server]# su - postgres
[master-server]$ mkdir /var/lib/pgsql/archivedir
Cấu hình User postgres
[master-server]# sudo su postgres
[master-server]# psql -U postgres -p 5432
postgres=# SET password_encryption = 'scram-sha-256';
postgres=# CREATE ROLE repl WITH REPLICATION LOGIN;
postgres=# \password repl
postgres=# \password postgres
Cấu hình file pg_hba.conf to bật chế độ mã hóa scram-sha-256:
vi /var/lib/pgsql/15/data/pg_hba.conf
Khởi động lại postgresql:
sudo systemctl restart postgresql-15
Mở firewall trên các server:
sudo firewall-cmd --permanent --zone=public --add-service=postgresql
sudo firewall-cmd --permanent --zone=public --add-port=9999/tcp --add-port=9898/tcp --add-port=9000/tcp --add-port=9694/udp
sudo firewall-cmd --reload
Tại các server Slave, chạy lệnh sau để lấy nhận cấu hình slave server:
[server2]# pg_basebackup -h <IP_Master_DB> -U repl -p 5432 -D /var/lib/pgsql/15/data -Fp -Xs -P -R
[server2]# systemctl start postgresql-15
[server3]# pg_basebackup -h <IP_Master_DB> -U repl -p 5432 -D /var/lib/pgsql/15/data -Fp -Xs -P -R
[server3]# systemctl start postgresql-15
* nếu gặp lỗi sau:
pg_basebackup: error: backup failed: ERROR: could not open file "./https://.postgresql.conf.swp%22/ Permission denied
Sang server master chạy lệnh sau với quyền quản trị để gán lại quyền các file trong thư mục cài đặt postgresql:
chown postgres:postgres -R /var/lib/pgsql/*
Kiểm tra hệ thống đã nhận các node: