데이터 베이스 MySQL 튜토리얼 无全量备份、未开启binlog日志,利用percona工具恢复delete的数据

无全量备份、未开启binlog日志,利用percona工具恢复delete的数据

Jun 07, 2016 pm 04:48 PM
delete recover

当我们忘记做全量备份时,并且没有开启binlog,并执行了deletefromsbtest;数据全部丢失,要想恢复是很有难度的。今天,利用PerconaDataRecoveryToolforInnoDB工

当我们忘记做全量备份时,并且没有开启binlog,并执行了

delete from sbtest;

数据全部丢失,要想恢复是很有难度的。


今天,利用Percona Data Recovery Tool for InnoDB工具(仅支持InnoDB,MyISAM不支持),可以找回被删除的数据。


原理:在InnoDB引擎,delete删除操作,,不是真正的删除物理文件上的行,而是增加一个删除的标记,我们都用过WORD吧?在修改字体的时候,有一个删除线的标记,如《MySQL 管理之道》,该工具利用这个特性,找回那些标注了删除线的数据,并存入到一个文本里,然后通过load data命令,批量插入到表里。


注:truncate不能恢复(truncate是直接清空数据行,并不是添加删除标记,你可以通过查看物理文件,执行了truncate操作,ibd文件变小,而执行了delete操作,ibd文件还跟之前的一样大),drop不能恢复(数据文件都没了,还怎么恢复?)。


一、安装Percona Data Recovery Tool for InnoDB工具

# wget https://launchpad.net/percona-data-recovery-tool-for-innodb/trunk/release-0.5/+download/percona-data-recovery-tool-for-innodb-0.5.tar.gz

# cd percona-data-recovery-tool-for-innodb-0.5/mysql-source # ./configure # cd .. # make

二、全表删除sbtest表

delete from sbtest;

三、恢复

1、提取ibd物理文件,按照每页16K,单独存放。

# cd percona-data-recovery-tool-for-innodb-0.5/ # ./page_parser -5 -f /usr/local/mysql-5.5.37/data/test/sbtest.ibd

在这里,0-28是sbtest表的主键(id),0-29是sbtest表的索引(k)。记住这个目录数字,后面我们需要通过这个目录恢复数据。


2、生成表结构

# cd percona-data-recovery-tool-for-innodb-0.5/ # ./create_defs.pl --host localhost --port 3306 --user root --password 123456 --db test --table sbtest > include/table_defs.h

-- host 主机地址

-- port 端口

-- user 用户名

-- password 密码

-- db 数据库名

-- table 表名


3、再次执行make编译命令

# cd percona-data-recovery-tool-for-innodb-0.5/ # make

wKiom1QWj3nzmDC0AAUbkA6b0jc746.jpg


4、恢复删除的数据

# cd percona-data-recovery-tool-for-innodb-0.5/ # ./constraints_parser -D -5 -f pages-1410414511/FIL_PAGE_INDEX/0-28/ > /tmp/sbtest.txt

-D 恢复删除的行

-5 表的文件格式,默认是Compact

(不清楚的朋友,可以用show table status命令查看)


总结:

通过上述方法,顺利的完成了delete数据恢复。在数据被删除后,切记要备份ibd数据文件,一定不要覆盖,否则都是不能完成修复的。目前该工具不支持字符串set类型。



本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

키보드의 삭제 키는 무엇입니까? 키보드의 삭제 키는 무엇입니까? Mar 16, 2023 pm 04:48 PM

키보드 삭제 키에는 del(삭제) 키와 백스페이스 키라는 두 가지 키가 있습니다. 백스페이스는 백스페이스 키라고도 합니다. 이 키는 커서 앞의 텍스트 내용을 삭제할 수 있으며 삭제 키는 문자, 파일 및 선택한 개체를 삭제할 수 있습니다. del 키를 누를 때마다 커서 오른쪽에 있는 문자가 삭제되고, 하나 이상의 파일/폴더가 선택되면 커서 오른쪽에 있는 문자가 한 프레임 왼쪽으로 이동합니다. 키를 누르면 빠르게 삭제됩니다. 일부 응용 프로그램에서는 프로그램에서 개체를 선택하고 Del 키를 누르면 선택한 개체가 빠르게 삭제됩니다.

삭제 키의 기능은 무엇입니까 삭제 키의 기능은 무엇입니까 Mar 10, 2023 pm 06:07 PM

삭제 키의 기능은 다음과 같습니다. 1. 문자 삭제 삭제 키를 누를 때마다 커서 오른쪽에 있는 문자가 삭제되고 커서 오른쪽에 있는 문자가 왼쪽으로 한 프레임 이동합니다. 2. 파일을 삭제합니다. 하나 이상의 파일/폴더를 선택한 경우 삭제 키를 눌러 빠르게 삭제합니다(복구하려면 휴지통으로 이동). 3. 선택한 개체를 삭제합니다. 일부 응용 프로그램에서는 개체를 선택하고 삭제 키를 눌러 선택한 개체를 빠르게 삭제합니다.

제어 + Alt + 삭제 방법: Mac 튜토리얼 제어 + Alt + 삭제 방법: Mac 튜토리얼 Apr 16, 2023 pm 12:37 PM

Ctrl+Alt+Delete: "Mac" 모드 Ctrlaltdel은 Windows 사용자가 작업 관리자를 열 때 사용하는 일반적인 키 조합입니다. 그들은 일반적으로 컴퓨터의 일부 공간을 확보하기 위해 관리자 메뉴에서 원치 않는 응용 프로그램을 종료합니다. Control+Alt+Delete Mac 변형을 사용하면 강제 종료 메뉴를 열 수 있습니다. Mac 사용자가 문제를 일으키는 프로그램을 종료하거나 열려 있는 프로그램을 보려면 메뉴와 상호 작용하여 추가 조사를 수행할 수 있습니다. Mac에서 ControlAltDelete를 수행하는 방법은 무엇입니까? 응용 프로그램이 오작동하는 경우 이 키 조합을 사용해야 합니다.

삭제된 파일을 복구할 수 있나요? 삭제된 파일을 복구할 수 있나요? Feb 24, 2023 pm 03:49 PM

삭제로 삭제된 파일은 복구가 가능합니다. 사용자가 삭제를 사용하여 파일을 삭제하면 해당 파일은 휴지통으로 이동되고 완전히 삭제되지는 않기 때문입니다. 복구 방법: 1. "휴지통"을 열고 복원할 파일을 선택한 다음 "이 항목 복원"을 클릭합니다. 2. "휴지통"을 열고 복원할 파일을 선택한 다음 실행 취소 단축키를 사용합니다. "ctrl+z"를 사용할 수 있습니다.

SpringBoot에서 PUT 및 삭제 요청을 사용하는 방법 SpringBoot에서 PUT 및 삭제 요청을 사용하는 방법 May 13, 2023 pm 12:16 PM

PUT 및 삭제 요청은 Form 양식에서 사용되며 get 및 post 메소드만 지원합니다. put 메소드를 구현하려면 다음 세 단계를 구현할 수 있습니다. 1) SpringMVC에서 HiddenHttpMethodFilter 구성 2) 페이지에 게시 양식 생성 3) 이름이 ="_method"인 입력 항목을 만듭니다. 값은 지정된 요청 메서드입니다. HiddenHttpMethodFilter 클래스에서 "_method" 값을 가져와 새 요청 메서드를 가져옵니다. 번째 태그는 thymeleaf 템플릿입니다. 이는 직원이

Golang 예외 처리의 패닉 및 복구 Golang 예외 처리의 패닉 및 복구 Apr 15, 2024 pm 06:15 PM

Go에서는 예외 처리를 위해 Panic 및 Recover가 사용됩니다. 패닉은 예외를 보고하는 데 사용되고 복구는 예외에서 복구하는 데 사용됩니다. 패닉은 프로그램 실행을 중지하고 인터페이스{} 유형의 예외 값을 발생시킵니다. 복구는 지연된 함수나 고루틴에서 예외를 포착하고 발생하는 인터페이스 유형의 예외 값을 반환할 수 있습니다.{}

jQuery에서 테이블 행을 추가, 편집 및 삭제하는 방법은 무엇입니까? jQuery에서 테이블 행을 추가, 편집 및 삭제하는 방법은 무엇입니까? Sep 05, 2023 pm 09:49 PM

오늘날의 웹 개발 시대에는 특히 데이터가 많은 웹 애플리케이션을 다룰 때 효과적이고 효율적인 테이블 관리가 매우 중요해졌습니다. 테이블에서 행을 동적으로 추가, 편집 및 삭제하는 기능은 사용자 경험을 크게 향상시키고 애플리케이션을 보다 대화형으로 만들 수 있습니다. 이를 달성하는 효과적인 방법은 jQuery의 기능을 활용하는 것입니다. jQuery는 개발자가 작업을 수행하는 데 도움이 되는 많은 기능을 제공합니다. 테이블 행 테이블 행은 HTML의 요소로 표시되는 상호 연관된 데이터의 모음입니다. 테이블의 셀(요소로 표시)을 그룹화하는 데 사용됩니다. 각 요소는 테이블의 행을 정의하는 데 사용되며 다중 속성 테이블의 경우 일반적으로 하나 이상의 요소를 포함합니다. 구문$(선택기).append(co

디버깅 시 golang 프레임워크 패닉 및 복구 적용 디버깅 시 golang 프레임워크 패닉 및 복구 적용 Jun 04, 2024 pm 01:01 PM

Go 프레임워크의 Panic은 복구할 수 없는 예외를 발생시키는 데 사용되고 Recover는 Panic에서 복구하고 정리 작업을 수행하는 데 사용됩니다. 데이터베이스 연결 실패와 같은 예외를 처리하여 애플리케이션 안정성과 사용자 경험을 보장할 수 있습니다.

See all articles