1.로그 비교
항목 | 바이너리 로그 (Binary Log) | InnoDB 트랜잭션 로그 (InnoDB Transaction Log) |
목적 | 데이터베이스의 변경 사항을 기록하여 복원 및 복제에 사용 | 트랜잭션 무결성 유지 및 시스템 충돌 복구에 사용 |
저장 방식 | 비휘발성 저장소에 저장 (디스크에 기록) | 비휘발성 저장소에 저장 (디스크에 기록) |
주요 기능 | - 시점 복원 가능 | - 트랜잭션 롤백 지원 |
- 데이터 복제 지원 | - 크래시 리커버리 지원 | |
로그 유형 | - Statement-based | - Redo Log (변경 사항 기록) |
- Row-based | - Undo Log (롤백 정보 기록) | |
- Mixed | ||
복원 방식 | - FULL 백업 + 바이너리 로그를 사용하여 특정 시점으로 복원 | - 시스템 크래시 후 자동 복구 (재시작 시 자동 수행) |
사용 예 | - 특정 시점 복원 필요할 때 사용 | - 트랜잭션이 실패한 경우 롤백하거나, 시스템 충돌 후 복구 시 사용 |
설정 방법 | log-bin 설정 필요 | 기본적으로 활성화되어 있으나, 크기 설정 필요 (innodb_log_file_size) |
확인 방법 | SHOW BINARY LOGS;로 로그 파일 확인 | SHOW ENGINE INNODB STATUS;로 트랜잭션 로그 상태 확인 |
Mysql 에서 변경사항을 기록하는 로그는 위와 같이 두 가지가 있습니다.
일반적으로 사용자가 특정 시점으로 롤백을 하는 경우에 바이너리 로그 (Binary Log) 를 사용합니다.
2.복원 방법
2.1.Mysql 옵션 확인
[Mysql]
-- 현재 MySQL 서버에서 바이너리 로그가 활성화되어 있는지 확인합니다.
SHOW global variables LIKE '%log_bin%';
-- MySQL의 데이터 디렉토리 설정을 확인합니다
SHOW variables like '%dir';
-- 현재 서버에서 사용 가능한 모든 바이너리 로그 파일의 목록을 보여줍니다.
SHOW BINARY LOGS;
--현재 로그를 플러시하여 새로운 로그 파일을 생성합니다. (이전 로그와 분리)
FLUSH LOGS;
2.2.Mysql 로그 추출
[cmd]
-- 특정 바이너리 로그 파일의 내용을 복구하거나 확인합니다.
mysqlbinlog /var/lib/mysql/binlog.000022 > vbinlog.000022.sql
-- (선택 사항) 전체 바이너리 로그를 덤프하여 전체 데이터를 복구하거나 확인합니다.
mysqlbinlog /var/lib/mysql/binlog.0* > vbinlog.sql
2.3.복원
-- 복원
mysql -u root -p -f < vbinlog.000022.sql
⇒ insert 했던 쿼리를 볼 수 있다.
마침 😊
'♣ Learning Logs > MYSQL' 카테고리의 다른 글
[MYSQL] Mysql Group Replication 구축(2) (1) | 2024.10.25 |
---|---|
[MYSQL] Mysql Group Replication 구축(1) (0) | 2024.10.25 |