마스터/마스터 복제에서 mysql을 실행하는 두 대의 시스템이 있는 시스템을 사용하고 있습니다.
마스터/마스터 복제도 수행하는 새 시스템으로 시스템을 이동하고 싶습니다. 이전 클러스터에서 노드 하나를 제거하고 이를 새 노드로 교체한 후 첫 번째 새 노드에서 두 번째 노드로 새 복제를 생성하지 않고도 이를 수행할 수 있습니까?
활성 상태이고 마스터/마스터를 수행하는 두 개의 노드 node1과 node2가 있다고 가정해 보겠습니다. 너무 많은 가동 중지 시간 없이 클러스터를 new1 및 new2라는 새 노드로 "마법처럼" 이동할 수 있는 방법은 무엇입니까?
답변1
M1 <=> M2가 있습니다. 새로운 하드웨어 M3 <=> M4로 끝내고 싶습니다.
- (잠시 중단) 모든 클라이언트(작성자 및 독자)를 M2로 이동합니다.
- M1 <=> M2 -> M3 토폴로지에서 M3을 만들기 위해 M1을 복제할 수 있을 만큼 오랫동안 내려 놓습니다. (M3는 M2의 슬레이브일 뿐입니다.)
- M3에서 M4를 빌드합니다: M1 <=> M2 -> M3 -> M4. (M3는 아직 사용하지 않아서 지장은 없습니다.)
- (잠시 중단) M1 및 M2의 모든 클라이언트를 이동하여 M3을 가리키도록 합니다. 이 과정에서 모든 복제가 최소한 M3까지 이루어졌는지 확인하세요.
- 제티슨 M1과 M2. 이제 M3 -> M4만 남았습니다.
- (잠시 중단) 이중 마스터(M3 <=> M4)를 설정합니다. 원하는 대로 클라이언트를 재정렬합니다.
세 가지 중단은 각각 죽은 마스터의 실패와 동일합니다.
Dual-Master 사용 시 일반적인 권장 사항: 두 서버 중 하나에만 쓰십시오. 다른 하나는 백업 및 읽기 확장으로 사용합니다.
더 나은 방법은 자동 장애 조치 등을 얻을 수 있도록 Galera 클러스터(또는 InnoDB 클러스터)로 전환하는 것입니다. 이렇게 하면 향후 토폴로지 변경이 훨씬 덜 고통스럽습니다. 이러한 마이그레이션은비슷한내가 방금 설명한 것에 대해.