꼭 테스트용 서버 두대 이상 을 구해서 충분히 테스트 해보고 개발 DB → 운영 DB 순으로 적용할 것!

WAL

PostgreSQL 에서 제공하는 복제 서버 구축 방식을 요약하면 다음과 같다.

  1. 마스터 서버에서 발생하는 모든 작업을 로그로 만든다.
  2. 이 로그를 스탠바이 서버들로 전달한다.
  3. 스탠바이 서버들에서 받은 로그를 복원(재실행) 한다.

이렇게 하면 마스터 서버와 같은 스키마/데이터를 가지는 복제 서버가 탄생하게 된다. 이 때, 마스터 서버의 로그를 WAL(Write Ahead Log) 이라고 한다.

WAL 전달 방식

WAL 파일 자체를 스탠바이 서버로 전달(file copy)하면 Log-Shipping 방식이다.

WAL 파일 저장 여부와 관계 없이 로그의 내용을 스탠바이 서버로 직접 전달하면 Streaming 방식이 된다.

Log-Shipping(Physical Replication)

마스터 서버에서 지정된 WAL 파일의 크기를 다 채워야 스탠바이 서버로 전송이 일어나기 때문에, 그 시간 동안 마스터/스탠바이 서버의 데이터가 어긋나 있는 상태가 유지된다. 만약 이 때 마스터 서버에 장애가 발생한다면 WAL 파일을 다 채우지 못해서 전달되지 못한 로그는 유실될 수 밖에 없다.