声明下Percona Data Recovery Tool for InnoDB工具的问题!(带遇到问题的说明) 精选 原创 insist_way 2017-05-10 11:22:33 ©著作权 文章标签 Mysql 数据恢复 DELETE 文章分类 MySQL 数据库 ©著作权归作者所有:来自51CTO博客作者insist_way的原创作品,谢绝转载,否则将追究法律责任 首先呢,请各位注意此工具的适用范围:1)本次应用的恢复工具仅适用与innodb存储引擎,Myisam不支持2)Truncate tabe 不能恢复3)Drop table 想也别想了恢复原理:对于INNODB存储引擎而言,DELETE操作,不是真正删除物理文件上的行,而是给删除的行添加了一个删除的标记,我们利用此工具找到那些标注了删除标记的行,然后将其存放到一个文本中去,最后通过load data恢复数据;而truncate操作,是直接将数据行清空,并非添加删除标记(查看物理文件,执行truncate的表的ibd文件会缩小,而执行了DELETE的表,甚至比之前大) 正文开始:1、安装Percona Data Recovery Tool for InnoDB工具好吧,总是需要先安装一些依赖包啥的yum -y install ncurses-devel.x86_64不安此包,会报错的,啥错,忘记写进来了rpm -ivh glibc-static-2.17-55.el7.x86_64.rpm --force --nodeps ()不安此包:看看啥报错:gcc -DHAVE_OFFSET64_T -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -Wall -O3 -g -I include -I mysql-source/include -I mysql-source/innobase/include -static -lrt -o page_parser page_parser.c lib/tables_dict.o lib/libut.a /usr/bin/ld: cannot find -lrtcollect2: ld 返回 1make: *** [page_parser] 错误 1 2、正式配置安装cd percona-data-recovery-tool-for-innodb-0.5/mysql-source/./configure cd ..make[root@dns1 percona-data-recovery-tool-for-innodb-0.5]# make gcc -I include -I mysql-source/include -I mysql-source/innobase/include -o innochecksum innochecksum.cgcc -o ibdconnect ibdconnect.c最后,没什么ERROR报错信息,就是正常的 3、OK,准备工作已经完成,来恢复你的数据1)从服务器的层面提取你误删的数据[root@dns1 percona-data-recovery-tool-for-innodb-0.5]# ./page_parser -5 -f /var/lib/mysql/test/site_ksteam.ibd[root@dns1 percona-data-recovery-tool-for-innodb-0.5]# lscheck_data.c create_defs.pl ibdconnect incrementalupdate.c INSTALL mysql-source pages-1494339302 split_dump.plconstraints_parser docs ibdconnect.c innochecksum lib page_parser pages-1494339674 tables_dict.c[root@dns1 percona-data-recovery-tool-for-innodb-0.5]# ls pages-1494339302/FIL_PAGE_INDEX/0-2475 0-2476 0-2477在FIL_PAGE_INDEX目录下会生成主键和索引,数据最小的是主键,后面的依次是每个列的索引,如0-2475是site_ksteam表的主键,0-2476是表的索引2)生成site_ksteam表的表结构:[root@dns1percona-data-recovery-tool-for-innodb-0.5]# ./create_defs.pl --host localhost --port 3306 --user root --password 123456 --db test --table site_ksteam > include/table_defs.h 正常情况下没有任何的报错3)还得再次执行make命令[root@dns1 percona-data-recovery-tool-for-innodb-0.5]# makegcc -DHAVE_OFFSET64_T -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -Wall -O3 -g -I include -I mysql-source/include -I mysql-source/innobase/include -static -lrt -o page_parser page_parser.c lib/tables_dict.o lib/libut.a 最后是这条信息,就是正常的4)将查找到的数据保存到/tmp/site_ksteam.txt文件[root@dns1percona-data-recovery-tool-for-innodb-0.5]# ./constraints_parser -D -5 -f pages-1494339674/FIL_PAGE_INDEX/0-2351/ > /tmp/site_ksteam.txt -D 恢复删除的行;-5表的文件格式,默认Compact;-f 指定site_ksteam表的主键目录LOAD DATA INFILE '/com/percona-data-recovery-tool-for-innodb-0.5/dumps/default/site_ksteam' REPLACE INTO TABLE `site_ksteam` FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'site_ksteam\t' (id, catid, typeid, title, style, thumb, keywords, description, posids, url, listorder, status, sysadd, islink, username, inputtime, updatetime, contact, titles, level, cp_w_picpath, bp_w_picpath, language, subject);5)连接Mysql,将数据导入表中mysql> LOAD DATA INFILE '/tmp/site_ksteam.txt' REPLACE INTO TABLE `site_ksteam` FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'site_ksteam\t' (id, catid, typeid, title, style, thumb, keywords, description, posids, url, listorder, status, sysadd, islink, username, inputtime, updatetime, contact, titles, level, cp_w_picpath, bp_w_picpath, language, subject);最后呢,还是想吐槽下,开始搞这个工具的时候,网上的资料,呵呵,人云亦云的,也不说中间可能遇到啥问题,怎么解决,最最重要的是, 此工具对在线运行的数据库进行恢复操作,会出现数据丢失现象!!!到底是我哪里没理解到,还是本是如此,欢迎留言! 赞 收藏 评论 分享 举报 上一篇:mysql-zrm增备数据恢复时的注意事项 下一篇:MySQL FAQ系列 pt-table-checksum 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 hive表修改分区数据日期 在Hive中,表的分区是一种组织数据的方式,它允许将表中的数据根据一个或多个列的值进行划分。每个分区可以看作是表的一个子集,它包含具有特定列值的行。分区列通常用于经常查询的条件,这样可以提高查询效率,因为Hive可以在查询时只扫描相关的分区,而不是整个表。当需要修改Hive表中的分区数据日期时,通常是因为需要更新分区列中的日期值。这可能是因为数据已经发生变化,或者需要纠正分区数据。以下是详细步骤和 数据 Hive 原始数据 如何生成日期维度表 在数据分析中,日期维度表是一个非常重要也是使用频率很高的一个维度表,用于存储日期相关的信息,如年、月、日、星期,等等,它可以作为其他事实表的外键,用于连接事实表和其他维度表,提供灵活的时间分析和报表功能。在元表纪中可以非常轻松简单的构建日期维度表,并生成日期数据信息 数据 元表 字段 python 日期字符串转换为指定格式的日期 python 日期字符串转换为指定格式的日期 字符串 python 返回结果 使用Percona Data Recovery Tool for InnoDB恢复数据 一、准备1.下载: https://launchpad.net/percona-data-recovery-tool-for-innodb/trunk/release-0.5/+download/percona-data-recovery-tool-for-innodb-0.5.tar.gz2. 安装: .tar -xvf percona-data-recovery-too percona-data-recover (转)使用Percona Data Recovery Tool for InnoDB恢复数据 地数据库的重要数据由于误操作被删除,需要进行紧急恢复,用户的数据库日常并没有进行过任何备份,binlog也没有开启,所以从备份和binlog入手已经成为不可能,咨询了丁奇,发了一篇percona的文章给我,顿时感觉有希望,于是到percona的官网上下载了恢复工具:一.安装:.tar -xvf percon... 数据库 数据 表结构 如何使用Percona Data Recovery Tool恢复mysql 被delete的数据 引擎:innodb场景:没有做备份,没有开启binlog原理:在InnoDB引擎,delete删除操作,不是真正的删除物理文件上的行,而是增加一个删除的标记。注意:引擎必须是innodb,可以在mysql的配置文件my.cnf中添加[mysqld]default-storage-engine=InnoDB重启数据库,查看1)安装Percona Data Recovery Tool for Inno 恢复 mysql XtraBackup 单表文件恢复(Percona Server可用) 导入或导出单张表 默认情况下,InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植,即便使用了innodb_file_per_table选项。而使用Xtrabackup工具可以实现此种功能,不过,此时需要“导出”表的mysql服务器启用了innodb_file_per_table选项(严格来说,是要“导出”的表在其创建之前,mysql服务器就启用了innodb_file mysql XtraBackup 单表恢复 利用Percona XtraBackup进行单表备份恢复 大部分情况下,使用用Percona XtraBackup进行整库的备份和恢复比较容易,此处略去;对于单表的恢复略有不同,而且对数据库版本和Percona XtraBackup的版本都有限制局限性:1.源库MySQL版本无要求,但启用了innodb_file_per_table=12.目的库开启innodb_file_per_table=1,Percona XtraDB或者MySQL5.6官方要求开 XtraBackup 单表备份 java 当前日期 data格式 # Java中的当前日期和时间格式化在Java中,处理日期和时间是非常常见的任务。Java提供了许多类和方法来处理日期和时间,其中一个重要的类是`java.util.Date`。然而,从Java 8开始,Java引入了`java.time`包,该包提供了更多功能强大和灵活的日期和时间处理类。本文将介绍如何使用Java中的`java.time`包来格式化当前日期。## `java.time. java Java 当前日期 percona 备份恢复数据库 percona 备份数据库安装、备份、恢复、排错 备份 percona hive 表 日期格式 # Hive 表日期格式化Hive是一个基于Hadoop的数据仓库工具,常用于大数据分析和数据处理。在实际应用中,我们经常需要处理日期数据,例如统计每天的销售额、计算某个时间段内的用户活跃度等。Hive提供了丰富的日期函数和类型,使得日期数据的处理变得更加简单和高效。在本篇文章中,我们将介绍Hive中的日期格式和日期函数,并通过示例代码演示如何创建日期表、进行日期格式化和日期计算。## Hive 数据 日期格式化 SQL SERVER 日期格式,日期表 1、获取当前日期:SELECT getdate()2、Style ID Style 格式Style ID Style 格式================================100 或者 0 mm dd yyyy hh:miAM (或者 PM)101 mm/dd/yy102 yy.mm.dd103 dd/mm/yy104 dd.mm.yy105 dd-mm-yy106 dd mon SQL SERVER 日期格式 Hive表中如何删除错误日期格式的分区 ### Hive表中如何删除错误日期格式的分区在Hive中,我们可以使用以下步骤来删除错误日期格式的分区:#### 1. 查看分区信息首先,我们需要查看表中的所有分区以及它们的日期格式,以便确定哪些分区是错误的。可以使用以下Hive命令来获取分区信息:```markdownSHOW PARTITIONS table_name;```#### 2. 确定错误格式的日期在分 日期格式 Hive 饼状图 mysql 查询表中错误日期数据 # MySQL 查询表中错误日期数据在使用MySQL进行数据存储和查询的过程中,经常会遇到日期数据的处理。然而,有时候我们可能会遇到一些错误的日期数据,这可能是由于数据录入错误、数据转换错误或者其他原因导致的。在这篇文章中,我们将介绍如何使用MySQL查询表中的错误日期数据,并提供一些代码示例来帮助您解决这个问题。## 1. 需求分析在开始之前,我们需要明确一下我们的需求。我们希望找出 数据 MySQL 日期函数 mysql创建表日期格式 # MySQL创建表日期格式的步骤## 概述在MySQL中创建表时,可以设置日期格式来规范存储日期数据的方式。本文将介绍如何使用MySQL创建表并设置日期格式。## 步骤概览以下是创建表日期格式的步骤概览。```mermaidpie title 创建表日期格式的步骤概览 "创建表" : 60 "设置日期格式" : 40```## 步骤详解### 日期格式 创建表 数据 hive建表日期格式 # Hive建表日期格式## 简介在Hive中,日期是常见的数据类型之一。Hive提供了丰富的日期函数和格式化选项,以便更方便地处理日期数据。本文将向你介绍如何在Hive中建表并使用日期格式。## 建表流程下面是建表的流程,可以使用表格展示每个步骤和相应的代码。| 步骤 | 描述 | 代码 || --- | --- | --- || 1 | 创建数据库 | `CREATE Hive 数据库 建表 centos mysql data数据恢复 # CentOS MySQL Data数据恢复## 简介在使用CentOS操作系统和MySQL数据库的过程中,由于各种原因,可能会出现数据丢失的情况。数据恢复是一项非常重要的任务,它可以帮助我们从备份或其他方式中恢复丢失的数据。本文将介绍如何在CentOS上进行MySQL数据恢复,并提供相关的代码示例。## 数据恢复流程下面是数据恢复的基本流程图:```mermaidflow MySQL 数据 数据恢复 python csv 日期格式 插入数据表 # 如何在Python中将CSV文件中的日期格式数据插入数据库表## 引言作为一名经验丰富的开发者,我将指导你如何在Python中将CSV文件中的日期格式数据插入数据库表。这是一个常见的数据处理任务,特别适用于需要将CSV数据导入数据库中的情况。## 流程图```mermaidflowchart TD A[读取CSV文件] --> B[连接数据库] B --> C[创 CSV 数据 数据库表 truncate表后使用FY_Recover_Data恢复数据 FY_Recover_Data过程包的源码如下:createorreplacepackageFY_Recover_Datais--WWW.HelloDBA.COM-----CreatedBy:Fuyuncat-----CreatedDate:08/08/2012-----Email:Fuyuncat@gmail.com-----Copyright(c),2014,WWW.HelloDBA.COMA 数据恢复 recover Percona Data Recovery Tool 单表恢复 mysql 数据 数据恢复 恢复数据 表结构