RDS MySQL에서 RDS Aurora로 DB이전(드라마앤컴퍼니) – 다운타임 최소화

출처 : 드라마앤컴퍼니 기술블로그
드라마앤 컴퍼니 기술 블로그에서 과거 DB이전을 시행했는데, 과정을 잘 정리 해 두어서 참고하기 위해 링크 첨부해드립니다^^

AuroraDB  db.r3.2xlarge – 8 vCPU, 61GiB RAM 을 만드는데 4시간 반 걸렸다고 하네요.

DB이전을 할 때 다운타임을 최소화 하기 위한 방법으로 Aurora뿐만 아니라 MariaDB에도 적용됩니다.

1. mysql 에서 binlog를 삭제하는 주기를 조정하기 위해 프로시저 호출

call mysql.rds_set_configuration(‘binlog retention hours’, 48);

2. mysql- binary log의 file 과 position 부분을 메모 (Migrate중 데이터 처리분 복사 위함)

SHOW MASTER STATUS;

3. RDS 에서 Migrate Latest Snapshot 을 통한 AuroraDB 생성

4. mysql의 SecurityGroup에서 AuroraDB IP -InboundRule 추가

5. mysql에서 AuroraDB가 접근 가능한 계정 생성 및 권한 설정

CREATE USER ‘repl_user’@’%’ IDENTIFIED BY ‘yourpassword’;
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO ‘repl_user’@’%’ IDENTIFIED BY ‘yourpassword’;

6. AuroraDB 접속 후 mysql  Replication설정 및 실행

CALL mysql.rds_set_external_master(‘mysql end point’, 3306, ‘repl_user’, ‘yourpassword’, ‘mysql-bin-changelog.188412’, 788, 0);
CALL mysql.rds_start_replication;

7. AuroraDB에서 show slave status 에러 발생시 스킵하기

call mysql.rds_skip_repl_error;

8. 모든 DB Endpoint를 Aurora Endpoint로 전환 후 마침

Advertisements