mon_sh
mon.sh
ent-7.5.0, ent-8.0.0
1. Disk to Disk
• repl-diskless-sync no
• repl-diskless-load disabled
• 1번 서버 mon.sh: RDB 생성과 생성된 RDB 파일 전송(SEND)
• 2번 서버 mon.sh: 데이터 받기(RECV)와 받은 데이터 메모리로 올리기(LOAD)
• 1번 서버 RDB 파일 생성 중 process 상태
• 1번 서버 LOG
• 2번 서버 LOG
2. Memory to Disk
• repl-diskless-sync yes
• repl-diskless-load disabled
• 1번 서버 mon.sh: 메모리의 데이터를 바로 2번 서버로 전송(SEND)
• 2번 서버 mon.sh: 데이터 받기(RECV)와 받은 데이터 메모리로 올리기(LOAD)
• 1번 서버 LOG
• 2번 서버 LOG
3. Memory to Memory: Socket
• repl-diskless-sync yes
• repl-diskless-load on-empty-db
• 1번 서버 mon.sh: 메모리의 데이터를 바로 2번 서버로 전송(SEND)
• 2번 서버 mon.sh: 데이터 받기는 동시에 메모리에 적용(RECV)
• 1번 서버 LOG
• 2번 서버 LOG
ent-7.4.8
데이터를 보내는 서버에서는 Diskless 동기화를 지원한다. (바로 전송 가능)
데이터를 받는 서버에서는 Diskless 동기화를 지원하지 않는다. (파일로 받아서 로드(적재))
1. Disk to Disk
• repl-diskless-sync no
• repl-diskless-load disabled
• 1번 서버 mon.sh: RDB 생성과 생성된 RDB 파일 전송(SEND)
실시간 동기화 시작: 마지막 줄에서 'from'이 '1'로 설정되었다(2번 서버 LOAD 완료 후).
• 2번 서버 mon.sh: 데이터 받기(RECV)와 받은 데이터 메모리로 올리기(LOAD)
• 1번 서버 RDB 파일 생성 중 process 상태
• 2번 서버 AOF 파일 생성 중 process 상태
• 1번 서버 LOG
• 2번 서버 LOG
2. Memory to Disk
• repl-diskless-sync yes
• repl-diskless-load disabled
• 1번 서버 mon.sh: 메모리의 데이터를 바로 2번 서버로 전송(표시는 RDB)
• 2번 서버 mon.sh: 데이터 받기(RECV)와 받은 데이터 메모리로 올리기(LOAD)
• 1번 서버 LOG
• 2번 서버 LOG
3. Memory to Memory
• repl-diskless-sync yes
• repl-diskless-load on-empty-db
• 1번 서버 mon.sh: 메모리의 데이터를 바로 2번 서버로 전송(표시는 RDB)
• 2번 서버 mon.sh: 데이터 받기(RECV)와 받은 데이터 메모리로 올리기(LOAD)
• 1번 서버 LOG
• 2번 서버 LOG
ent-7.4.8 -> ent-7.5.0 전체 데이터 동기화: 성공
◼️ 1번 서버(ent748:18504) -> 2번 서버(ent750:18505): 전체 데이터 동기화 테스트 -> 성공
◼️ 1번 서버(ent748:18504): 기본 설정으로 디스크를 사용한 동기화.
• repl-diskless-sync no
• repl-diskless-load disabled
◼️ 2번 서버(ent750:18505): 디스크를 사용하지 않는 동기화 설정(Memory(socket))
• repl-diskless-sync yes
• repl-diskless-load on-empty-db
◼️ 1번 서버(ent748:18504): mon.sh
◼️ 2번 서버(ent750:18505): mon.sh
• 1번 서버 LOG
• 2번 서버 LOG