Master Slave Replication Postgresql là gì?
Master Slave Replication Postgresql là việc chạy song song hai database cùng một lúc. Master sẽ đóng vai trò là database chính để người thao tác trên đó. Trong khi đó, Slave sẽ đóng vai trò là 1 database phụ, nó có trách nhiệm chạy khi Master ngưng hoạt động. Tuy nhiên database Slave chỉ cho phép đọc dữ liệu, không cho phép ghi hay xóa dữ liệu. Hai database master và slave hoạt động song song và luôn trao đổi dữ liệu qua lại.
Bài viết này sẽ hướng dẫn cách cài đặt Master Slave Replication Postgresql. Các bạn có thể ứng dụng cho các database của Odoo.
Hướng dẫn cách thực hiện.
1. Cài đặt postgresql trên cả master và slave.
Cài đặt.
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib postgresql-client
2. Cấu hình trên Master.
Chạy user postgres.
sudo su – postgres
Tạo user để tạo liên kết database giữa master và slave.
psql -c "CREATE USER rep REPLICATION LOGIN CONNECTION LIMIT 1 ENCRYPTED PASSWORD 'yourpassword';"
Chỉnh sữa file pg_hba.conf.
cd /etc/postgresql/9.3/main
nano pg_hba.conf
Thêm dòng sau và lưu lại.
host replication rep IP_address_of_slave/32 md5
Chỉnh sữa file postgres.conf.
nano postgresql.conf
Tìm các biến sau và chỉnh lại như bên dưới:
listen_addresses = '*'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 1
hot_standby = on
Restart service postgresql.
service postgresql restart
3. Cấu hình trên Slave.
Stop service postgresql.
service postgresql stop
Chỉnh sữa file pg_hba.conf.
cd /etc/postgresql/9.3/main
nano pg_hba.conf
Thêm dòng sau và lưu lại.
host replication rep IP_address_of_master/32 md5
Chỉnh sữa file postgres.conf.
nano postgresql.conf
Tìm các biến sau và chỉnh lại như bên dưới:
listen_addresses = '*'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 1
hot_standby = on
4. Đổ dữ liệu từ master qua slave.
Trên Master.
Chạy câu lệnh sau:
sudo su -postgres
psql -c "select pg_start_backup('initial_backup');"
rsync -cva --inplace --exclude=*pg_xlog* /var/lib/postgresql/9.3/main/ slave_IP_address:/var/lib/postgresql/9.3/main/
psql -c "select pg_stop_backup();"
Trên Slave.
Tạo file recovery.
cd /var/lib/postgresql/9.3/main
nano recovery.conf
Thêm vào các dòng sau:
standby_mode = 'on'
primary_conninfo = 'host=master_IP_address port=5432 user=rep password=yourpassword'
trigger_file = '/tmp/postgresql.trigger.5432'
Restart service postgresql
service postgresql restart
Kết luận:
Mình vừa giới thiệu đến các bạn cách cài đặt Master Slave Replication Postgresql. Các bạn có thắc mắc gì có thể để lại comment chia sẽ bên dưới.
Cảm ơn các bạn theo dõi.