이 글에서는 Mysql의 바이너리 로그를 통해 데이터베이스 데이터를 복원하는 방법을 주로 자세히 소개하고 있으니 관심 있는 분들은 참고하시면 좋을 것 같습니다.
웹사이트 관리자는 여러 가지 이유와 운영으로 인해 실수로 웹사이트 데이터를 삭제하고, 웹사이트를 백업하지 않아 손해를 보는 경우가 많으며, 웹사이트 운영 수익성에 부정적인 영향을 미칩니다. 그래서 이번 글에서는 MySQL의 두 번째 메커니즘인 로그(binlog)를 통해 데이터를 복구하는 방법을 알려드리겠습니다.
시스템 환경:
운영 체제: CentOS 6.5 X64(가상 머신) 웹 서비스: PHP+Mysql+apache웹사이트: 편의를 위해 Chanzhi 시스템을 사용하여 로컬에서 직접 DEMO 사이트를 구축합니다.
작업 단계:
1. binlog 기능을 활성화합니다. 2. 사이트에 데이터를 추가합니다. 4.데이터를 삭제합니다. >5. binlog 로그 내용 분석
1. binlog 기능 및 기본 작업 활성화Mysql 사용
의 binlog 기능을 사용하려면 먼저 Mysql구성 파일 에서 이 기능을 활성화해야 합니다. Mysql 구성 파일을 찾아 파일에 "log_bin = mysql-bin" 행을 추가하십시오. 실제로 제가 설치
한 다양한 MySQL 환경에서는 이 기능이 기본적으로 켜져 있는 경우가 많습니다.binlog 기능을 켜면 mysql-bin.000001, mysql-bin.000002 등의 파일이 mysql 데이터베이스 디렉토리에 있을 것이다. 이것은 mysql의 바이너리 로그 파일이다. mysql이 시작되거나 로그가 수동으로 새로 고쳐질 때마다 새로운 바이너리 로그 파일이 생성됩니다. 먼저 mysql 명령줄에서 "show master log" 명령을 사용하여 기존 binlog 파일을 봅니다.
2. 사이트에 데이터 추가웹사이트의 백그라운드 글 모듈에 여러 개의 테스트 데이터를 추가했습니다. .
3. binlog 로그 새로 고침
이전에는 mysql의 binlog 파일이 mysql-bin.000001이었는데, 웹사이트 백그라운드에서 데이터베이스로 전송되었습니다. 에 3개의 기사가 추가되었습니다. 이제 binlog 로그를 새로 고치면 다음과 같이 새로운 mysql-bin.000002 파일이 생성됩니다:
flush logs;
show master logs;
4. 데이터 삭제
여기서 방금 추가한 기사 3개를 모두 삭제했습니다.
5. Binlog 로그 내용 분석
MySQL의 바이너리 로그 파일에는 방금 삭제 작업 등의 mysql 작업이 기록되어 있습니다. 로그 파일. mysql의 mysqlbinlog 명령 사용:mysqlbinlog /data/mysql/mysql-bin.000002참고: 내 로컬 mysqlbinlog는 binlog 구성에서 default-character-set=utf8을 인식할 수 없기 때문에 여기서는 명령을 사용하고 있습니다. "-no-defaults"를 추가한 후에만 작동하며 모든 사람이 이 명령에서 배울 수 있습니다.
6. ;
mysql binlog 로그를 통해 데이터를 복원할 때 특정 시점으로 복구를 지정할 수 있는데, 이는 서버 스냅샷 관리와 약간 비슷합니다. 이제 방금 삭제한 기사를 복원하려고 합니다. 삭제 전 시점을 찾아 해당 시점으로 복원할 수 있습니다.
mysqlbinlog 명령어 사용에 대해서는 다음과 같이 mysqlbinlog help 명령어를 통해 확인할 수 있다.mysqlbinlog –no-defaults –help
도움말 문서에 나와 있듯이, 데이터를 복원하기 위해 시간이나 지정된 위치를 지정할 수 있습니다. 여기서는 지정된 시간을 예로 설명하겠습니다.
다음과 같이 mysql-bin.000001 로그 파일을 확인해 보겠습니다.
mysqlbinlog -no--defaults /data/mysql/mysql-bin.000001이전 단계를 통해 아시다시피, 데이터를 삭제하기 전에 mysql-bin.000002 로그 파일을 생성했기 때문에 이 시점까지만 복원하면 됩니다. 이 시점을 위 사진에서 찾아봤습니다.
명령어는 다음과 같습니다.
复制代码 代码如下:
mysqlbinlog –no-defaults –stop-datetime='2017-04-11 09:48:48'/data/mysql/mysql-bin.000001 |mysql –uroot –p123456
这时我们在看后台,发现刚才删除的三篇文章都已恢复回来了,从而到达我们期望的目的。
总结:
本文和大家分享了如何通过mysql的二进制日志文件恢复数据。但还是要提醒大家,在平时要做好网站数据备份,现在的一些主流CMS建站系统都会内置数据库备份功能,比如这里我用的蝉知系统,数据是网站的命脉,做好数据备份以避免后期不必要的麻烦或损失。
위 내용은 MySQL 바이너리 로그를 통해 데이터베이스 데이터를 복원하는 방법에 대한 자세한 설명(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!