Aurora MySQL에 대해 향상된 binlog 설정 - Amazon Aurora

Aurora MySQL에 대해 향상된 binlog 설정

향상된 binlog는 binlog를 켜서 발생하는 컴퓨팅 성능 오버헤드를 줄여 주는데, 이 오버헤드는 경우에 따라 최대 50% 까지 증가할 수 있습니다. 향상된 binlog를 사용하면 이러한 오버헤드를 약 13%로 줄일 수 있습니다. 오버헤드를 줄이기 위해 향상된 binlog는 바이너리 로그와 트랜잭션 로그를 스토리지에 병렬식으로 기록하여 트랜잭션 커밋 시 기록되는 데이터를 최소화합니다.

또한 향상된 binlog를 사용하면 커뮤니티 MySQL binlog에 비해 다시 시작 및 장애 조치 후 데이터베이스 복구 시간이 최대 99% 향상됩니다. 향상된 binlog는 기존 binlog 기반 워크로드와 호환되며 커뮤니티 MySQL binlog와 상호 작용하는 것과 동일한 방식으로 상호 작용합니다.

향상된 binlog는 Aurora MySQL 버전 3.03.1 이상에서 사용할 수 있습니다.

향상된 binlog 파라미터 구성

향상된 binlog 파라미터를 켜거나 끄면 커뮤니티 MySQL binlog와 향상된 binlog 간에 전환할 수 있습니다. 기존 binlog 소비자는 binlog 파일 시퀀스의 공백 없이 binlog 파일을 계속 읽고 사용할 수 있습니다.

향상된 binlog를 켜려면 다음 파라미터를 설정합니다.

파라미터 기본값 설명
binlog_format binlog_format 파라미터를 원하는 바이너리 로깅 형식으로 설정하여 향상된 binlog를 켭니다. binlog_format parameter가 OFF로 설정되어 있지 않은지 확인하세요. 자세한 내용은 Aurora MySQL 이진 로깅 구성을 참조하세요.
aurora_enhanced_binlog 0 Aurora MySQL 클러스터와 연결된 DB 클러스터 파라미터 그룹에서 이 파라미터를 1로 설정합니다. 이 파라미터의 값을 변경할 때 DBClusterParameterGroupStatus 값이 pending-reboot로 표시되면 라이터 인스턴스를 재부팅해야 합니다.
binlog_backup 1 향상된 binlog를 켜려면 이 파라미터를 끄세요. 이렇게 하려면 이 파라미터의 값을 0으로 설정합니다.
binlog_replication_globaldb 1 향상된 binlog를 켜려면 이 파라미터를 끄세요. 이렇게 하려면 이 파라미터의 값을 0으로 설정합니다.
중요

향상된 binlog를 사용하는 경우에만 binlog_backupbinlog_replication_globaldb 파라미터를 끌 수 있습니다.

향상된 binlog를 끄려면 다음 파라미터를 설정합니다.

파라미터 설명
aurora_enhanced_binlog Aurora MySQL 클러스터와 연결된 DB 클러스터 파라미터 그룹에서 이 파라미터를 0로 설정합니다. 이 파라미터의 값을 변경할 때 DBClusterParameterGroupStatus 값이 pending-reboot로 표시되면 라이터 인스턴스를 재부팅해야 합니다.
binlog_backup 향상된 binlog를 끄려면 이 파라미터를 켜세요. 이렇게 하려면 이 파라미터의 값을 1으로 설정합니다.
binlog_replication_globaldb 향상된 binlog를 끄려면 이 파라미터를 켜세요. 이렇게 하려면 이 파라미터의 값을 1으로 설정합니다.

향상된 binlog가 켜져 있는지 확인하려면 MySQL 클라이언트에서 다음 명령을 사용하세요.

mysql>show status like 'aurora_enhanced_binlog'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | aurora_enhanced_binlog | ACTIVE | +------------------------+--------+ 1 row in set (0.00 sec)

향상된 binlog가 켜져 있을 경우 aurora_enhanced_binlog에 대한 출력이 ACTIVE로 표시됩니다.

기타 관련 파라미터

향상된 binlog를 켜면 다음 파라미터가 영향을 받습니다.

  • max_binlog_size 파라미터는 표시되지만 수정할 수는 없습니다. 향상된 binlog가 켜지면 기본값 134217728268435456으로 자동 조정됩니다.

  • 커뮤니티 MySQL binlog와 달리 향상된 binlog가 켜져 있을 때는 binlog_checksum이 동적 파라미터로 작동하지 않습니다. 이 파라미터에 대한 변경 사항을 적용하려면 ApplyMethodimmediate인 경우에도 DB 클러스터를 수동으로 재부팅해야 합니다.

  • 향상된 binlog가 켜져 있을 때는 binlog_order_commits 파라미터에 설정한 값이 커밋 순서에 영향을 주지 않습니다. 커밋은 성능에 더 이상 영향을 주지 않고 항상 순서가 지정됩니다.

향상된 binlog와 커뮤니티 MySQL binlog의 차이점

향상된 binlog는 커뮤니티 MySQL binlog와 비교할 때 복제, 백업 및 Aurora Global Database와 다르게 상호 작용합니다. 향상된 binlog를 사용하기 전에 다음과 같은 차이점을 이해하는 것이 좋습니다.

  • 소스 DB 클러스터의 향상된 binlog 파일은 복제된 DB 클러스터에서 사용할 수 없습니다.

  • 향상된 binlog 파일은 Aurora 백업에 포함되지 않습니다. 따라서 DB 클러스터를 복원한 후에는 보존 기간이 설정되어 있더라도 소스 DB 클러스터의 향상된 binlog 파일을 사용할 수 없습니다.

  • Aurora 글로벌 데이터베이스와 함께 사용하면 프라이머리 DB 클러스터의 향상된 binlog 파일이 보조 리전의 DB 클러스터에 복제되지 않습니다.

예시

다음 예는 향상된 binlog와 커뮤니티 MySQL binlog 간의 차이점을 설명합니다.

복원되거나 복제된 DB 클러스터에서

향상된 binlog가 켜져 있으면 복원되거나 복제된 DB 클러스터에서 이전 binlog 파일을 사용할 수 없습니다. 복원 또는 복제 작업 후 binlog가 켜져 있으면 새 DB 클러스터는 1(mysql-bin-changelog.000001)부터 고유한 binlog 파일 시퀀스를 쓰기 시작합니다.

복원 또는 복제 작업 후에 향상된 binlog를 켜려면 복원되거나 복제된 DB 클러스터에서 필요한 DB 클러스터 파라미터를 설정하세요. 자세한 내용은 향상된 binlog 파라미터 구성 단원을 참조하십시오.

예제: 향상된 binlog가 켜져 있을 때 수행되는 복제 또는 복원 작업

소스 DB 클러스터:

mysql> show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog turned on +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

복원되거나 복제된 DB 클러스터에서는 향상된 binlog가 켜져 있을 때 binlog 파일이 백업되지 않습니다. binlog 데이터의 불연속성을 방지하기 위해 향상된 binlog를 켜기 전에 작성한 binlog 파일도 사용할 수 없습니다.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> New sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
예제: 향상된 binlog가 꺼져 있을 때 수행되는 복제 또는 복원 작업

소스 DB 클러스터:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

복원되거나 복제된 DB 클러스터에서는 향상된 binlog를 끈 후에 작성한 binlog 파일을 사용할 수 있습니다.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)

Amazon Aurora Global Database에서

Amazon Aurora Global Database에서는 프라이머리 DB 클러스터의 binlog 데이터가 보조 DB 클러스터에 복제되지 않습니다. 크로스 리전 장애 조치 프로세스 후에는 새로 승격된 프라이머리 DB 클러스터에서 binlog 데이터를 사용할 수 없습니다. binlog가 켜져 있으면 새로 승격된 DB 클러스터는 1(mysql-bin-changelog.000001)부터 고유한 binlog 파일 시퀀스를 시작합니다.

장애 조치 후 향상된 binlog를 켜려면 보조 DB 클러스터에서 필수 DB 클러스터 파라미터를 설정해야 합니다. 자세한 내용은 향상된 binlog 파라미터 구성 단원을 참조하십시오.

예제: 향상된 binlog가 켜져 있을 때 글로벌 데이터베이스 장애 조치 작업이 수행됩니다.

이전 프라이머리 DB 클러스터(장애 조치 전):

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog enabled +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

새 프라이머리 DB 클러스터(장애 조치 후):

향상된 binlog가 켜져 있을 때 binlog 파일은 보조 리전에 복제되지 않습니다. binlog 데이터의 불연속성을 방지하기 위해 향상된 binlog를 켜기 전에 작성한 binlog 파일은 사용할 수 없습니다.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> Fresh sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
예제: 향상된 binlog가 꺼져 있을 때 글로벌 데이터베이스 장애 조치 작업이 수행됩니다.

소스 DB 클러스터:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

복원되거나 복제된 DB 클러스터:

향상된 binlog를 끈 후 작성된 binlog 파일은 복제되며 새로 승격된 DB 클러스터에서 사용할 수 있습니다.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 3 rows in set (0.00 sec)

향상된 빈로그를 위한 Amazon CloudWatch 지표

다음 Amazon CloudWatch 지표는 향상된 binlog가 켜진 경우에만 게시됩니다.

CloudWatch 지표 설명 단위
ChangeLogBytesUsed 향상된 binlog가 사용하는 스토리지 양입니다. 바이트
ChangeLogReadIOPs 5분 간격 내에 향상된 binlog에서 수행된 읽기 I/O 작업의 수입니다. 5분당 개수
ChangeLogWriteIOPs 5분 간격 내에 향상된 binlog에서 수행된 쓰기 디스크 I/O 작업의 수입니다. 5분당 개수

향상된 빈로그의 제한 사항

향상된 binlog가 켜져 있는 경우 Amazon Aurora DB 클러스터에 다음과 같은 제한 사항이 적용됩니다.

  • 향상된 binlog는 Aurora MySQL 버전 3.03.1 이상에서만 지원됩니다.

  • 프라이머리 DB 클러스터에 작성된 향상된 binlog 파일은 복제되거나 복원된 DB 클러스터에 복사되지 않습니다.

  • Amazon Aurora Global Database와 함께 사용하면 프라이머리 DB 클러스터의 향상된 binlog 파일이 보조 DB 클러스터에 복제되지 않습니다. 따라서 장애 조치 프로세스 후에는 이전 binlog 데이터를 새 프라이머리 DB 클러스터에서 사용할 수 없습니다.

  • 다음 binlog 구성 파라미터는 무시됩니다.

    • binlog_group_commit_sync_delay

    • binlog_group_commit_sync_no_delay_count

    • binlog_max_flush_queue_time

  • 데이터베이스에서 손상된 테이블을 삭제하거나 이름을 바꿀 수 없습니다. 이 테이블을 삭제하려면 AWS Support에 문의하세요.

  • 향상된 binlog가 켜지면 binlog I/O 캐시가 비활성화됩니다. 자세한 내용은 Aurora MySQL의 이진수 로그 복제 최적화 단원을 참조하십시오.

    참고

    향상된 binlog는 binlog I/O 캐시와 유사한 읽기 성능 향상 및 더 나은 쓰기 성능 개선을 제공합니다.

  • 역추적 기능은 지원되지 않습니다. 다음과 같은 조건에서는 향상된 binlog를 DB 클러스터에서 켤 수 없습니다.

    • 현재 역추적 기능이 활성화된 DB 클러스터.

    • 이전에 역추적 기능이 활성화되었지만 비활성화되지 않은 DB 클러스터

    • 역추적 기능이 활성화된 소스 DB 클러스터 또는 스냅샷에서 복원된 DB 클러스터.