Más contenido relacionado La actualidad más candente (20) Similar a Let's Play with Data Safely (20) Let's Play with Data Safely2. 자기소개
절대 깨지지 않는 견고한 서비스를 지향
국내 최초(?) 은행 오픈소스 DB 엔지니어
우육빛깔 까칠행원
(KT하이텔 > 티몬 > 카카오 > 한국카카오은행)
성동찬 (Chris / Chan)
http://gywn.net
https://www.facebook.com/dongchan.sung
6. 사실 처음 시도한것 많아요.
무섭지만, 일단 질러보았지요. ㅋㅋㅋㅋㅋ;;
이제야 고백하지만..
16. 복제 상태 관리가 필요하다.
롤 체인지가 귀찮다.
장애 대응 자동화가 복잡하다.
비동기로 데이터가 복제된다.
20. MHA 로 가용성 우선 확보
master slave
slave
MHA 프로세스
21. MHA 로 가용성 우선 확보
master slave
MHA 프로세스
master
페일오버 + 리플리케이션 재구성
31. 데이터 변경하기
1 100 TEXT1_ABCDEFGHI
2 200 TEXT2_ABCDEFGHI
PK COL1 COL2
UPDATE TBL SET COL1 = COL1 + 10;
33. 데이터 변경 로그(binary log)
트랜잭션이 커밋되면 변경 내용이 기록
STATEMENT(SQL)
ROW : FULL, MINIMAL
38. ROW : FULL
1 100 TEXT1_ABCDEFGHI
2 200 TEXT2_ABCDEFGHI
Binary Log
2 210 TEXT2_ABCDEFGHI
1 110 TEXT1_ABCDEFGHI
OLD
NEW
OLD
NEW
39. ROW : FULL
데이터 변경 전/후 이미지가 기록된다.
변경 데이터가 모두 있기에 연동이 수훨하다.
(안해봤지만) 타임머신도 구현 가능하다.
테이블과 트래픽에 따라 로그가 커질 수 있다.
51. 온라인 ALTER
>= MySQL 5.6 (InnoDB)
Binlog에 ALTER 한 줄만 기록
https://dev.mysql.com/doc/refman/5.7/
en/innodb-create-index-overview.html
53. 온라인 ALTER
인덱스를 각각 노드에서 별도 생성
(set session variable sql_log_bin = OFF)
오래 걸리지 않는 ALTER에 적합
(개인의 선택과 정책과 판단을 존중합니다.)
54. 슬레이브 적용 후 롤 체인지
대형 테이블 스키마 변경
온라인 ALTER 불가 상황
56. 슬레이브 적용 후 롤 체인지
롤 체인지 시 기존 세션 강제 KILL
데이터 안정성 보장 여부 판단 필요
(이건 MHA로 충분히 가능합니다.)
60. 트리거 기반 유틸리티
1 100
2 200
PK COL1
3 300
4 400
5 500
1 100
PK COL1
3 300
BULK INSERT
Trigger
61. 트리거 기반 유틸리티
1 100
2 200
PK COL1
3 300
4 400
5 500
1 100
PK COL1
3 300
BULK INSERT
STATEMENT 로 남기자
62. 트리거 기반 유틸리티
BULK INSERT : STATEMENT
set session tx_isolation='repeatable-read';
set session binlog_format='statement';
TRIGGER : ROW
66. 로그 포멧도 고민해 봤으며
(STATEMENT / ROW:FULL / FOW:MINIMAL)