# PostgreSQL High Availability

PostgreSQL log: High availablity

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:

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:


RyanX September 30, 2023
Share this post
Archive