Loading...
MySQL 9.5 Reference Manual 9.5의 20.8.1 Combining Different Member Versions in a Group의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
20.8.1.1 업그레이드 중인 멤버 버전
20.8.1.2 Group Replication Communication Protocol Version
Group Replication은 Group Replication 플러그인이 함께 제공된 MySQL Server 버전에 따라 버전이 매겨집니다. 예를 들어, 어떤 멤버가 MySQL 9.5.0을 실행 중이라면, 그 버전이 Group Replication 플러그인의 버전입니다. 그룹 멤버에서 MySQL Server 버전을 확인하려면 다음을 실행합니다:
1SELECT MEMBER_HOST,MEMBER_PORT,MEMBER_VERSION FROM performance_schema.replication_group_members; 2+-------------+-------------+----------------+ 3| member_host | member_port | member_version | 4+-------------+-------------+----------------+ 5| example.com | 3306 | 9.5.0 | 6+-------------+-------------+----------------+
MySQL Server 버전을 이해하고 버전을 선택하는 방법에 대한 안내는 Section 2.1.2, “Which MySQL Version and Distribution to Install”를 참조하십시오.
최상의 호환성과 성능을 위해, 그룹의 모든 멤버는 동일한 버전의 MySQL Server, 그리고 따라서 동일한 버전의 Group Replication을 실행해야 합니다. 그러나 온라인 그룹을 업그레이드하는 과정에서 가용성을 최대화하기 위해, 서로 다른 MySQL Server 버전을 실행하는 멤버들이 동시에 존재해야 할 수도 있습니다. MySQL 버전 간에 이루어진 변경 내용에 따라, 이러한 상황에서 비호환성이 발생할 수 있습니다.
예를 들어, 주요 버전 사이에서 어떤 기능이 더 이상 사용되지(deprecated) 않았다면, 해당 기능에 의존하는 멤버가 있는 상태에서 그룹 내에 서로 다른 버전을 조합하면 그 멤버가 실패할 수 있습니다. 반대로, 그룹 내에 더 오래된 MySQL 버전을 실행하는 읽기/쓰기 멤버가 있는 동안 더 새로운 MySQL 버전을 실행하는 멤버에 쓰기를 수행하면, 새 릴리스에서 도입된 기능이 없는 멤버에서 문제가 발생할 수 있습니다.
이러한 문제를 방지하기 위해, Group Replication은 서로 다른 버전의 MySQL을 실행하는 멤버들을 동일한 그룹에 안전하게 조합할 수 있게 해주는 호환성 정책(compatibility policy)을 포함합니다. 멤버는 이러한 정책을 적용하여, 그룹에 정상적으로 조인할지, 읽기 전용 모드로 조인할지, 아니면 그룹에 조인하지 않을지를 결정하며, 이 선택 중 어떤 것이 조인하는 멤버와 그룹의 기존 멤버들 모두의 안전한 동작으로 이어지는지에 따라 판단합니다.
업그레이드 시나리오에서, 각 서버는 그룹을 떠나 업그레이드를 수행한 후, 새 서버 버전으로 그룹에 다시 조인해야 합니다. 이 시점에서 멤버는 새 서버 버전에 해당하는 정책을 적용하며, 이는 원래 그룹에 조인했을 때 적용했던 정책과 달라졌을 수 있습니다.
관리자인 여러분은 서버를 적절히 구성하고 START GROUP_REPLICATION 문장을 실행함으로써, 어떤 서버든 어떤 그룹에든 조인을 시도하도록 지시할 수 있습니다. 그룹에 조인할지 말지, 또는 읽기 전용 모드로 그룹에 조인할지 여부에 대한 결정과 실행은, 여러분이 해당 멤버를 그룹에 추가하려고 시도한 이후에 조인하는 멤버 자신에 의해 이루어집니다.
조인하는 멤버는 현재 그룹 멤버들의 MySQL Server 버전에 대한 정보를 수신하고, 자신이 그 멤버들과 호환되는지를 평가한 다음, 자신이 실행 중인 MySQL Server 버전에서 사용하는 정책(기존 멤버들이 사용하는 정책이 아닌)을 적용하여 호환성 여부를 결정합니다.
멤버가 그룹에 조인을 시도할 때 적용하는 호환성 정책은 다음과 같습니다:
기존 그룹 멤버들이 실행 중인 버전 중 가장 낮은 MySQL Server 버전과 동일한 버전을 실행 중인 멤버는 그룹에 정상적으로 조인합니다.
기존 그룹 멤버들이 실행 중인 버전 중 가장 낮은 버전보다 더 높은 MySQL Server 버전을 실행 중인 멤버는 그룹에 조인하되 읽기 전용 모드 상태를 유지합니다. 이 동작은 그룹이 멀티 프라이머리 모드로 실행 중일 때만 차이를 만듭니다. 싱글 프라이머리 모드로 실행 중인 그룹에서는 새로 추가된 멤버가 어차피 기본적으로 읽기 전용 상태이기 때문입니다.
멤버는 호환성을 확인할 때, 소프트웨어의 major.minor.release 전체 버전을 고려합니다.
서로 다른 MySQL Server 버전을 사용하는 멤버들로 구성된 멀티 프라이머리 모드 그룹에서, Group Replication은 멤버들의 읽기/쓰기 및 읽기 전용 상태를 자동으로 관리합니다. 어떤 멤버가 그룹을 떠나면, 이제 가장 낮은 버전을 실행하게 된 멤버들이 자동으로 읽기/쓰기 모드로 설정됩니다.
group_replication_switch_to_multi_primary_mode()를 사용하여 싱글 프라이머리 모드로 실행 중이던 그룹을 멀티 프라이머리 모드로 변경하면, Group Replication은 각 멤버를 자동으로 올바른 모드로 설정합니다. 그룹에 존재하는 가장 낮은 버전보다 더 높은 MySQL Server 버전을 실행하는 멤버는 자동으로 읽기 전용 모드로 전환되고, 가장 낮은 버전을 실행하는 멤버는 읽기/쓰기 모드로 설정됩니다.
20.8 Upgrading Group Replication
20.8.2 Group Replication Offline Upgrade