AWS Aurora MySQL 환경
Engine Version : 5.7.mysql_aurora.2.09.2
Instance Class : Master - db.r5.xlarge (Reader, Writer 2 Instance) / Slave - db.r5.large (Writer 1 Instance)
* Master 와 Slave 간 Cross-Region Replication 으로 DR 을 구축하여, 일반적인 DR 구성이 아닌 다른 Region 에 복제 DB 를 한 개 추가했다고 보면 된다.
AWS Aurora MySQL Error 이슈 및 조치 사항
- Slave DB 의 Error Log 에 아래의 Error_code: 1032 발생, 발생 후 Slave DB에 동기화가 되지 않음.
[ERROR] Slave SQL for channel ": Could not execute Delete_rows event on table mysql.event; Can't find record in 'event', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log myssql-bin-changelog.000014, end_log_pos 45731848, Error_code: 1032
1. Slave DB 상태 체크 (Slave_SQL_Running 이 No 로 동작하지 않은 상태)
show slave status;
-- 결과값
Slave_IO_Running : Yes
Slave_SQL_Running : No
2. Slave DB 선조치(강제로 오류를 SKIP 처리)
-- 강제로 Error Repl Error Skip
call mysql.rds_skip_repl_error;
-- Slave_SQL_Running 값이 Yes 로 변경되었는지 확인, No 인 경우 다시 수행
show slave status;
-- Slave_SQL_Running 값이 Yes 로 변경될 때까지 반복 수행
call mysql.rds_skip_repl_error;
3. Master/Slave DB 전체 데이터 검증 및 DB 환경 점검
AWS Aurora MySQL Error 원인
Known Issue 로 Aurora 2.10.2 에서 Fixed 된 버그
- Fixed an issue that causes a binlog replica to stop with an HA_ERR_FOUND_DUPP_KEY error when replicating certain DDL and DCL statements. The issue occurs when the source instance is configured with MIXED binary logging format and READ COMMITED or READ UNCOMMITED isolation level.
본 DB 의 Error 원인은 파라미터 tx_isolation = READ COMMITED, binlog_format = MIXED 값 사용 환경에서 "DROP EVENT" 구문 수행 시 HA_ERR_FOUND_DUPP_KEY Error 를 발생하면서 replication 이 정상적으로 수행되지 않음.
현재까지 확인된 DDL/DCL 수행 시 발생되는 사례
- DROP EVENT 구문을 수행하는 경우
- DROP 된 User 에게 GRANT/REVOKE 구문을 수행하는 경우
- OBJECT 에 대해 특정 유저에게 grant *.* 구문을 수행하는 경우
* 버그 Fixed 가 되지 않은 DB 환경에서는 DDL/DCL 수행 후 Slave DB 에서 상태를 체크 필요
댓글