Mysql 의 바 이 너 리 로 그 를 통 해 데이터베이스 데 이 터 를 복원 하 는 방법 에 대한 자세 한 설명

3769 단어 mysql2 진법로그
사이트 관리자 들 이 여러 가지 원인 과 조작 으로 인해 사이트 데이터 가 잘못 삭제 되 고 사이트 백업 도 하지 않 아 어 쩔 줄 모 르 며 사이트 운영 과 이윤 에 부정적인 영향 을 미 치 는 경우 가 많다.그래서 본 고 는 Mysql 의 2 체제 로그(binlog)를 통 해 데 이 터 를 복원 하 는 방법 을 여러분 과 함께 공유 할 것 입 니 다.
시스템 환경:
운영 체제:CentOS 6.5 X64  (가상 컴퓨터
웹 서비스:PHP+Mysql+apache;
사이트:편 의 를 위해 현지에서 매미 지 시스템 으로 데모 사 이 트 를 직접 구축 합 니 다. 
작업 단계:
1.binlog 기능 및 기본 조작 오픈;
2.사이트 에 데이터 추가 하기;
3.binlog 로그 새로 고침;
4.데이터 삭제 하기;
5.binlog 로그 내용 분석;
6.지정 한 데 이 터 를 복원 합 니 다.
1.binlog 기능 및 기본 동작 오픈
Mysql 의 binlog 로그 기능 을 사용 하려 면 먼저 Mysql 설정 파일 에서 이 기능 을 켜 야 합 니 다.조작 이 간단 합 니 다.Mysql 프로필 을 찾 아 파일 에'log'줄 을 추가 합 니 다.bin=mysql-bin"이면 됩 니 다.사실 제 가 설치 한 각종 Mysql 환경 에서 이 기능 은 보통 기본 으로 켜 져 있 습 니 다.
binlog 기능 을 켜 면 my sql 데이터베이스 디 렉 터 리 에 my sql-bin.00001,my sql-bin.00002 등 파일 이 있 습 니 다.이것 이 바로 my sql 의 바 이 너 리 로그 파일 입 니 다.my sql 이 시작 되 거나 수 동 으로 로 그 를 새로 고 칠 때마다 바 이 너 리 로그 파일 을 새로 만 듭 니 다. 
우선 my sql 명령 행 에서"show master logs"명령 으로 기 존 binlog 파일 을 봅 니 다.
 
 2.사이트 에 데이터 추가
사이트 배경 글 모듈 에 나 는 몇 개의 테스트 데 이 터 를 추가 했다.
 
3.binlog 로그 새로 고침
이전에 mysql 의 binlog 파일 은 mysql-bin.00001 이 었 고 사이트 배경 에서 데이터베이스 에 세 편의 글 을 추가 했다.현재 binlog 로 그 를 새로 고치 면 새로운 my sql-bin.00002 파일 이 생 성 됩 니 다.다음 과 같 습 니 다.

flush logs;

show master logs; 

4.데이터 삭제
여기 서 나 는 방금 추 가 된 세 편의 문장 을 모두 삭제 했다.
5.binlog 로그 내용 분석
Mysql 의 바 이 너 리 로그 파일 에 기 록 된 my sql 작업,예 를 들 어 방금 삭제 작업,로그 파일 의 구체 적 인 내용 을 살 펴 보 겠 습 니 다.
mysql 의 mysql binlog 명령 사용 하기:

 mysqlbinlog /data/mysql/mysql-bin.000002
메모:로 컬 mysqlbinlog 에서 binlog 설정 의 default-character-set=utf 8 을 식별 할 수 없 기 때문에 명령 에'Cno-defaults'를 추가 해서 여러분 이 거울 로 삼 습 니 다.
 
다음은 로그 내용 부분 캡 처:
 
6.지정 한 데 이 터 를 복원 합 니 다.
my sql 의 binlog 로 그 를 통 해 데 이 터 를 복원 할 때 구체 적 인 시간 대 를 지정 할 수 있 습 니 다.이것 은 서버 스냅 샷 관리 와 같 습 니 다.그래서 우 리 는 지금 방금 삭 제 된 그 글 을 복원 하려 고 합 니 다.삭제 하기 전에 시간 을 찾 아 그 시간 으로 복원 하면 됩 니 다.
my sqlbinlog 명령 의 사용 방법 에 대해 서 는 my sqlbinlog 의 도움말 명령 을 통 해 다음 과 같이 볼 수 있 습 니 다.

mysqlbinlog Cno-defaults Chelp

도움말 문서 에서 보 듯 이 지정 한 시간 이나 지정 한 위 치 를 통 해 데 이 터 를 복원 할 수 있 습 니 다.여 기 는 제 가 지정 한 시간 을 예 로 들 어 보 여 드 리 겠 습 니 다.
로그 파일 my sql-bin.00001 을 살 펴 보 겠 습 니 다.다음 과 같 습 니 다.

mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001

앞의 작업 절 차 를 통 해 우 리 는 데 이 터 를 삭제 하기 전에 my sql-bin.00002 로그 파일 을 만 들 었 다 는 것 을 알 고 있 습 니 다.그래서 우 리 는 이 시간 까지 만 회복 하면 됩 니 다.위의 그림 에서 나 는 이미 이 시간 을 찾 았 습 니 다.
명령 은 다음 과 같 습 니 다.

mysqlbinlog Cno-defaults Cstop-datetime='2017-04-11 09:48:48'/data/mysql/mysql-bin.000001 |mysql Curoot Cp123456
이때 우 리 는 백 스테이지 에서 방금 삭 제 된 세 편의 글 이 모두 회복 되 어 우리 가 기대 하 는 목적 에 도달 한 것 을 발견 했다.
 요약:
이 글 은 my sql 의 바 이 너 리 로그 파일 을 통 해 데 이 터 를 복원 하 는 방법 을 공유 하고 있 습 니 다.그러나 평소에 사이트 데이터 백업 을 잘 해 야 한 다 는 것 을 알려 드 려 야 합 니 다.현재 의 일부 주류 CMS 건설 시스템 은 모두 데이터 베이스 백업 기능 을 내장 합 니 다.예 를 들 어 제 가 사용 하 는 매미 지 시스템,데 이 터 는 사이트 의 명맥 이 고 데이터 백업 을 잘 해서 후기 에 불필요 한 번 거 로 움 이나 손실 을 피 할 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기