주문, 정산, 회원 상태처럼 실패했을 때 함께 되돌릴 논리 범위를 먼저 정한다.
배치 제어
대량 변경 기준
무조건 1000건씩 커밋하는 공식은 없다. 업무적으로 되돌릴 수 있는 경계, Undo/Redo 로그 증가량, 복제 지연, 락 보유 시간을 함께 보며 배치 크기를 정한다.
원자성
로그
분할
큰 트랜잭션은 Undo 공간, Redo flush, row lock, replica apply 시간을 한꺼번에 키운다.
PK 범위나 생성 시각으로 자르고 각 조각의 처리 시간과 영향 행 수를 기록한다.
마지막 성공 key, 실패 SQL, 예상 보상 작업을 남겨 같은 행을 중복 변경하지 않게 한다.
업무 원자성은 좋지만 장시간 락과 복제 지연이 커져 온라인 서비스에는 위험하다.
장애 반경은 줄지만 중간 상태가 노출될 수 있으므로 상태 컬럼과 idempotent 재실행이 필요하다.
실행 전후 row count, checksum, slow query, replication lag를 같은 표에 남겨 롤백 판단 근거로 삼는다.