MySQL GTID 복제 (async / semi-sync)
MySQL난이도: 중급소요 시간: 45–90분설치된 MySQL 서버로 source 1대 + replica N대의 GTID 기반 복제를 구성합니다: 복제 사용자, clone 플러그인 또는 mysqldump를 이용한 기존 데이터 이전, SOURCE_AUTO_POSITION, TLS, 선택적 semi-sync, super_read_only replica, 지연 모니터링, 수동 failover 절차. 완료하면 쓰기는 source에서, 읽기는 replica에서 처리할 수 있는 모니터링되는 토폴로지를 갖추게 됩니다. 자동 failover가 필요하면 InnoDB Cluster를, 구성된 복제의 일상 운영과 장애는 복제 운영 가이드를 참고하십시오.
구성: source 1대 + replica 1..5대
시작하기 전에
- 모든 서버에 MySQL …가 같은 마이너 버전으로 설치되어 실행 중이고(DBAtlas MySQL 단일 서버 설치 가이드), binlog와 GTID가 켜져 있습니다. 운영체제 root가 mysql로 비밀번호 없이 접속할 수 있습니다.
- server_id와 server_uuid가 서버마다 다릅니다. (서버를 복사/복제해서 만들었다면 datadir의 auto.cnf가 같을 수 있습니다: 삭제하고 서비스를 재시작하십시오.)
- 서버끼리 … 포트로 접근할 수 있습니다(…).
- 시계가 동기화되어 있습니다(chrony). 지연 측정과 PITR은 타임스탬프에 의존합니다.
- Replica에 source 데이터 크기만큼의 여유 공간이 있습니다…. 덤프 파일을 둘 공간도 필요합니다….
- Source의 데이터 크기와 네트워크 속도를 알고 있습니다(이전 시간 예측용).
- 복제 사용자…와 임시 clone 사용자…용 강력한 비밀번호가 준비되어 있습니다(8자 이상, 대/소문자, 숫자, 특수 문자 포함, ' 및 \ 사용 불가). 비밀번호는 각 단계에서 화면에 표시되지 않는 방식으로 입력받습니다.
- 애플리케이션이 쓰기는 source로만, 읽기는 (선택적으로) replica로 보낸다는 점이 확인되어 있습니다. Replica는 super_read_only가 됩니다.
가이드 단계
- 사전 준비 (모든 서버) — 서버 식별자 확인 · 방화벽에서 다른 node 허용 · 복제 설정 추가 (source) · 복제 설정 추가 (…) · MySQL 재시작
- Source 준비 — 복제 사용자 생성 · Semi-sync 플러그인 설치 · Source에서 semi-sync 활성화
- 데이터를 replica로 이전 (clone) — clone 플러그인 설치 · 임시 clone 사용자 생성 · Source 복제(clone) (…)
- 데이터를 replica로 이전 (mysqldump) — Source에서 일관된 덤프 생성 · 덤프를 replica로 복사 · 덤프 로드 (…)
- 복제 시작 — Replica를 읽기 전용으로 설정 (…) · Source 지정 및 복제 시작 (…)
- 검증 — Source에서 연결된 replica 확인 · 테스트 쓰기 (source) · Replica에서 테스트 쓰기 읽기 (…) · 테스트 데이터베이스 삭제
- 지연 및 상태 모니터링 — 복제 상태와 지연 (…)
- 정리 — clone 사용자 삭제 · 덤프 파일 삭제
- 수동 failover (source 손실) — Failover: 후보 상태 확인 · Failover: 후보 상태 확인 · Failover: 후보를 source로 전환 · Failover: 후보를 source로 전환 · Failover: 다른 replica를 새 source에 연결 (…) · Failover: 다른 replica를 새 source에 연결 (…) …