메뉴 건너뛰기

조회 수 7316 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
실수로 삭제한 mysql DB 복구방법

delete나 truncate 같은 명령으로 데이터를 지웠을때 복구하는 방법입니다.
mysql의 모든 명령들은 로그를 남기기때문에 가능합니다.

일단 mysql의 DB가 쌓이는 디렉토리로 이동합니다.

대게 /usr/local/mysql/data /usr/local/mysql/var 등으로 설정해 놓으셨을겁니다.
해당 디렉토리로 이동하면 xxx-bin.001 xxx-bin.002 같은 바이너리 파일들이 존재할겁니다.

이게 바로 DB를 첨 생성할때부터 지금까지 쌓여온 로그인데요 이 파일을 활용하시면 삭제된 데이터도 살릴수 있습니다.
바이너리 파일이기때문에 그냥 접근하시면 이상한 문자들이 보이구요
mysqlbinlog 명령을 이용하셔서 사용해야 합니다.

다음은 예제입니다.

일단 DB 디렉토리로 이동한다.

# cd /usr/local/mysql/data

바이너리 파일을 소스파일로 변환한다.
# ../mysqlbinlog leopit-bin.002 > rescue.sql

필요한 구문만 가져온다.
# grep "insert" rescue.sql > rescue1.sql

이렇게 하시면 rescue1.sql은 지금까지의 인서트구문이 다 들어옵니다.
여기서 필요없는 부분은 지우세요

이제 최종적으로 DB에 삽입만 하시면 됩니다.
# mysql -u 계정아이디 -p DB이름 < rescue1.sql

List of Articles
번호 제목 날짜 조회 수
86 [MySQL] 백업 및 복구 2017.04.12 5392
85 [mysql,mariaDB] 컬럼 암호화, 복호화 2020.11.25 775
84 UPDATE ~ CASE 문을 사용한 조건별 업데이트 file 2020.07.28 1396
83 Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기 2017.11.21 3918
82 SQL 고급 file 2017.12.22 6035
81 order by field 와 union, 원하는 대로 정렬 하기 2021.03.26 768
80 no exists, not in 을 이용한 조건에 만족하지 않는 것들 구하기, 둘의 차이점 2021.03.26 125
79 MySQL의 alter table 명령어 모음 2017.04.12 5105
78 MySQL에서 원격 IP 접속 허용하기 2017.04.12 5621
77 MySQL에서 사용자 권한 주기 (grant 명령어) 2017.04.12 5885
76 MySQL〃오라클의 nextval을 MySQL에서 사용하기 2018.07.24 3864
75 mysqlbinlog (mysql 백업, 로그남기기) 2021.03.26 201
74 MySQL/MariaDB 백업 & 복원 - mysqldump 2015.08.07 7384
73 mysql-bin(binary log)파일 정리 및 삭제 2023.01.12 117
72 mysql-bin 로그를 SQL 문으로 변환한는 방법 2018.07.18 1672
71 mysql(union,join) file 2017.11.16 3837
70 mysql(exists, not exists) file 2017.11.16 4090
69 MYSQL 프로시져 PROCEDURE file 2021.03.27 197
68 mysql 포트 바꾸기, 외부에서 접속하기 2021.03.26 5081
67 MySQL 파티션 개요 file 2017.12.22 4150
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved