Postgresql Streaming Replication(9.1)
과거 메모(2년전 자료)
Master: 192.168.0.5
Slave: 192.168.0.14
Master
1. postgresql.conf 설정
- wal_level = hot_standby
- max_wal_senders = 3 // WAL 파일 전송할 수 있는 최대 서버 수
- wal_keep_segments = 50 // 해당 옵션에 따라 저장하고 있는 최대 WAL 개수 설정
2. replication 전용 role 생성
- Create role forrepl login replication
- alter user forrepl with password ‘forrepl’
3. pg_hba.conf 설정
- host replication forrepl 192.168.0.14/32 trust
4. DB datafile 동기화
- psql -c “select pg_start_backup(‘repbackup’);”
scp를 하는 경우(압축이 필요하므로 압축진행) - tar cvfP ./db_backup.tar $PostgreSQL/data 또는 rsync를 이용한다. (rsync가 압축 필요없어 편함) rsync 하는 경우(걍 rsync 바로 시전 5번 스킵) - rsync -azvh data/ 192.168.0.14:/home/ehdvudee/bin/postgresql-9.1.24/data[1] |
- psql -c “select pg_stop_backup();”
5. 백업본(db_backup)을 Slave에 전달(rsync했을 경우 필요없음)
- scp ./db_backup.tar [slave계정]@192.168.0.14:/$PostgreSQL
Slave
1. $PostgreSQL/data 파일 백업(rsync했을 경우 필요없음)
- mv $PostgreSQL/data $PostgreSQL/data.old
2. Master로부터 받은 파일을 압축 해제(rsync했을 경우 필요없음)
tar xvfP ./db_backup.tar
3. 압축 해제한 backup 파일을 Slave DB가 읽을 수 있게 한 후, postmaster.pid삭제
rm -f $PostgreSQL/data/postmaster.pid
4. postgresql.conf 설정
hot_standby = on
5. recovery.conf 설정
vim recovery.conf
- primary_conninfo = 'host=192.168.0.5 port=5432 user=forrepl password=forrepl'
- standby_mode = on
6. replication 전용 role 생성
- create role forrepl login replication
- alter user forrepl with password ‘forrepl’
7. pg_hba.conf 설정
- host replication forrepl 192.168.0.5/32 trust
그리고 master, slave DB의 log를 꼭 확인한다.
streaming replication 성공 시, 관련 로그를 확인할 수 있다.
[1] rsync를 할 경우, Master 설정 5번과 Slave 설정 1,2번은 생략한다.
'개발관련 > (과거)메모' 카테고리의 다른 글
Docker 분석/정리 (0) | 2021.03.16 |
---|---|
ChartJS 소개 및 기본 예제 (0) | 2021.02.04 |
PostgreSQL 백업 & 복구 (0) | 2021.01.20 |
PostgreSQL 서버 중요 설정 정보 (0) | 2021.01.18 |
다양한 스프링 활용기(지속적인 업데이트 - 수정:20.12.31) (0) | 2020.12.31 |