현재 두 대의 서버가 이중화 되어있고 PostgreSQL 또한 리플리케이션이 맺어져있습니다.
스트리밍 복제를 통해 동기화 중이며, 정상적으로 동작하고 있습니다. 또한 현재 DB의 크기는 38G입니다.
장애가 나거나 절체를 하여, 슬레이브가 마스터로 승격되고 마스터가 슬레이브가 되어 새로운 마스터의 데이터를 복제를 합니다.(리플리케이션이 끊어져서)
이 때 리플리케이션을 다시 맺을 때, pg_rewind를 사용하는데, 걸리는 시간이 38G 기준으로 6분이 소요됩니다. // pg_basebackup 사용 시 체크포인트를 찾는 시간이 추가로 소요
pg_rewind --target-pgdata = "targetdir" --source-server="sourceserver"
모든 것이 정상적으로 이루어 지지만, 시간이 오래걸린다는 문제를 해결하기 위해 고민중입니다.
절체 후 새로운 마스터의 데이터를 가져오는데 바뀐 부분만 가져오거나, 소요되는 시간을 줄일 수 있는 방법이 있다면 알려주시면 감사하겠습니다.
-----------------------------------------------------------------------------------------------
I use Streaming Replication, and Replication works normally.
Two servers are HA and PostgreSQL DB is replicated.
The data in the DB is about 40G.
When a failover occurs, the slave is successfully promoted to master, master becomes slave, and tries to replicate new master data.
But, It takes a long time to replicate data from the new master server.
(using pg_rewind / success / 38G - 6minutes).
**Please let me know if there are other ways to save time.**
------------------------------------------------------------------------------------------------
|