RDS for MySQL용 기존 읽기 전용 복제본에 대한 GTID 기반 복제 활성화 - Amazon Relational Database Service

RDS for MySQL용 기존 읽기 전용 복제본에 대한 GTID 기반 복제 활성화

읽기 전용 복제본이 포함되어 있고 GTID 기반 복제를 사용하지 않는 기존 MySQL DB 인스턴스의 경우에는 DB 인스턴스와 읽기 전용 복제본 간에 GTID 기반 복제를 구성할 수 있습니다.

기존 읽기 전용 복제본에 대해 GTID 기반 복제를 활성화하려면
  1. DB 인스턴스 또는 모든 읽기 전용 복제본이 RDS for MySQL 버전 8.0.26보다 낮은 버전 8.0을 사용하는 경우 DB 인스턴스 또는 읽기 전용 복제본을 MySQL 8.0보다 높은 8.0.26으로 업그레이드합니다. RDS for MySQL 버전 8.0에 대한 GTID 기반 복제 지원

    자세한 내용은 RDS for MySQL DB 엔진 업그레이드을 참조하세요.

  2. (선택 사항) GTID 파라미터를 재설정하고 DB 인스턴스와 읽기 전용 복제본의 동작을 테스트합니다.

    1. DB 인스턴스 및 각 읽기 전용 복제본과 연결된 파라미터 그룹에서 enforce_gtid_consistency 파라미터가 WARN으로 설정되어 있는지 확인합니다.

      파라미터 그룹을 사용한 구성 파라미터 설정에 대한 자세한 내용은 Amazon RDS의 파라미터 그룹 단원을 참조하십시오.

    2. DB 인스턴스의 파라미터 그룹을 변경한 경우 DB 인스턴스를 재부팅하십시오. 읽기 전용 복제본의 파라미터 그룹을 변경한 경우 읽기 전용 복제본을 재부팅합니다.

      자세한 내용은 DB 인스턴스 재부팅 섹션을 참조하세요.

    3. 보통의 워크로드로 DB 인스턴스와 읽기 전용 복제본을 실행하고 로그 파일을 모니터링합니다.

      GTID 비호환 트랜잭션에 대한 경고가 표시될 경우, GTID 호환 기능만 사용하도록 애플리케이션을 조정하십시오. 다음 단계로 진행하기 전에 DB 인스턴스에서 GTID 비호환 트랜잭션에 대한 경고가 표시되지 않는지 확인합니다.

  3. 읽기 전용 복제본이 모든 트랜잭션을 처리할 때까지 익명 트랜잭션을 허용하는 GTID 기반 복제에 대한 GTID 파라미터를 재설정합니다.

    1. DB 인스턴스 및 각 읽기 전용 복제본과 연결된 파라미터 그룹에서 다음과 같이 파라미터가 설정되었는지 확인합니다.

      • gtid_modeON_PERMISSIVE

      • enforce_gtid_consistencyON

    2. DB 인스턴스의 파라미터 그룹을 변경한 경우 DB 인스턴스를 재부팅하십시오. 읽기 전용 복제본의 파라미터 그룹을 변경한 경우 읽기 전용 복제본을 재부팅합니다.

  4. 익명 트랜잭션이 모두 복제될 때까지 기다립니다. 이러한 트랜잭션이 복제되었는지 확인하려면 다음과 같이 합니다.

    1. 소스 DB 인스턴스에서 다음 문을 실행합니다.

      SHOW MASTER STATUS;

      FilePosition 열의 값을 메모합니다.

    2. 각 읽기 전용 복제본에서 이전 단계에서 메모한 소스 인스턴스의 파일 및 위치 정보를 사용하여 다음 쿼리를 실행합니다.

      SELECT MASTER_POS_WAIT('file', position);

      예를 들어, 파일 이름이 mysql-bin-changelog.000031이고 위치가 107일 경우 다음 명령문을 실행합니다.

      SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);

      읽기 전용 복제본이 지정된 위치에 전달되면 쿼리가 즉시 반환합니다. 그렇지 않으면 함수가 대기합니다. 모든 읽기 전용 복제본에 대해 쿼리가 반환하면 다음 단계로 진행합니다.

  5. GTID 기반 복제에 대해서만 GTID 파라미터를 재설정합니다.

    1. DB 인스턴스 및 각 읽기 전용 복제본과 연결된 파라미터 그룹에서 다음과 같이 파라미터가 설정되었는지 확인합니다.

      • gtid_modeON

      • enforce_gtid_consistencyON

    2. DB 인스턴스와 각 읽기 전용 복제본을 재부팅합니다.

  6. 각각의 읽기 전용 복제본에서 다음 프로시저를 실행합니다.

    CALL mysql.rds_set_master_auto_position(1);