본문 바로가기

redo2

MySQL redo, WAL WAL = Redo 로그라고도 부른다. WAL은 트랜잭션 ACID 중 Durable이랑 가장 밀접하게 연관되어 있다. 하드웨어나 소프트웨어 등 여러가지 장애로 인해 MySQL 서버가 비정상적으로 종료되었을 경우, 데이터 파일에 기록되지 못한 데이터를 잃지 않게 해주는 기능이다. MySQL 서버는 데이터 변경 내용을 로그로 먼저 기록한다. 그 이유는 MySQL은 쓰기보다 읽기 성능을 고려하여 만들어진 자료 구조인 B-tree 를 사용하기 때문에 데이터를 파일에 기록하려면 큰 비용이 필요하다. 이로 인한 성능 저하를 막기 위해 쓰기 비용이 낮은 WAL에 기록해서 디스크와 동기화 시킨다. 하지만 로그 발생할 때마다 로그를 파일에 기록하게 되면 많은 부하가 발생하기 때문에 로그 버퍼에 기록하고 일정한 간격으로 .. 2023. 1. 12.
redo, undo UNDO, REDO REDO : 다시 하다. > 작업을 다시 하다. // 기록을 다시 실행시켜서 복구시킴. 작업을 되돌리다. // 사용자의 작업을 원상태로 되돌림. REDO 데이터를 동해 마지막 체크 포인트까지 장애의 DB BUFFER CACHE를 복구함. > UNDO를 이용하여 COMMIT 되지 않은 데이터를 모두 ROLLBACK 시킴. * 실행순서 REDO > UNDO 2. 쿼리 수행 중 장애 발생 UNDO 를 이용하여 COMMIT 되지 않은 데이터를 모두 ROLLBACK 시킴. UNDO 기록 INSERT 시, insert 된 로우의 rowid 기록 UPDATE 시, 바뀐 컬럼의 바뀌기 전 값 기록 DELETE 시, 지워진 모든 데이터 기록 2022. 12. 29.