从xtraback 备份文件中 单独恢复一张 innodb 表

从xtraback 备份文件中 单独恢复一张 innodb 表

http://blog.sina.com.cn/s/blog_445e807b0101dbgw.html

能够恢复一张表的前提是独立表空间 即开启了 innodb_per_file_table=1

恢复一张innodb 表 (innodb_per_file_table)
   1>数据错误,但是表没有被删除(drop table, truncate table)
 a. 发出这个ALTER TABLE语句:
 b. ALTER TABLE tbl_name DISCARD TABLESPACE;
  警告:这个语句删除当前.ibd文件。
 c. 把备份的.ibd文件放回到恰当的数据库目录。
 d. 发出这个ALTER TABLE语句:
 e. ALTER TABLE tbl_name IMPORT TABLESPACE;
 注:如果报表id不一致,那么可以使用重建表的方法来调整id一致
  2> 表被删除,但是你依然要知道表结构
       a. mysql> create table saler like students;

b. 关闭mysql服务(必须)
  /opt/app/mysql5/share/mysql/mysql.server stop

c. 准备ibd文件  apply log

d. innobackupex --apply-log --defaults-file=/etc/my.cnf  /opt/backup/2013-01-17_14-02-07/

e. 备份现在的ibd文件(可选)
             cp -a testibd.ibd testibd.bak

f. 复制备份ibd文件
         cp saler.ibd /opt/app/mysql5/var/nigel/

g. chown mysql:mysql /opt/app/mysql5/var/nigel/

h. 使用percona recovery tool修改ibdata
 
        i.  /opt/src/percona-data-recovery-tool-for-innodb-0.5/ibdconnect -o  -f/opt/app/mysql5/var/nigel/saler.ibd -d nigel -t testibd

j. 使用percona recovery tool 重新checksum ibdata

k. /opt/src/percona-data-recovery-tool-for-innodb-0.5/innochecksum -f /opt/app/mysql5/innovar/ibdata1

重复执行以上命令,直到程序输出 "bdata1" 为止。

时间: 2024-10-30 03:59:29

从xtraback 备份文件中 单独恢复一张 innodb 表的相关文章

xtrabackup迁移单独一张INNODB表

xtrabackup迁移单独一张INNODB表

thinkphp + easyUI 不能同时打开两张数据表?

两个linkbutton分别打开一个数据库中不同的两张数据表 现在单独打开两个是可以正确显示的. 但是如果打开了一个linkbutton1,不关掉tabs中对应的linkbutton1,再打开linkbutton2,这时linkbutton2 显示不了数据,但是如果关掉linkbutton1,再打开linkbutton2,是可以正确显示的. 求解 --------解决方案-------- 这是不可能的!thinkphp 每个表是一个对象,不可能出现你说的现象

oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复

格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2.0\oradata\gqxt),重新命名即可,我命名为gqxt_old,(否则装数据库的时候会提示sid已存在). 2,重新安装数据库到原来的路径(不安装到原来的路径也没关系,但是原来的数据库文件必须在原来的路径不能变,也就是oradata\gqxt所在的路径不能变),数据库的名字就是你要恢复的名字

Oracle中恢复drop掉的表中的数据

今天同事不小心把生产上的一张表直接drop掉了,没有做备份,哥们慌的一匹,来找我这个小白来帮忙解决,于是心血来潮简单总结一下. 其实在oralce中,用drop删掉一张表,其实不会真正的删除,只是把表放到了回收站中,可以通过flashback命令来恢复drop掉的表. 例如: 1.创建一张表,删除:再创建一张同名表,字段不同,再删除 在 select original_name,dropscn from recyclebin时候,两个表的dropscn是不同的,在利用闪回恢复时 flashbac

Sql从一张表中更改另一张表数据

语法: update table1 set table1.列=table2.列 from table2 where table2.列=table1.列update NFYSP.dbo.PATIENT     setPATIENT_ADDUSERID=OLD.PATIENT_ADDUSERID,PATIENT_UPDATEUSERID=OLD.PATIENT_UPDATEUSERID,PATIENT_UPDATEUSERNAME=OLD.PATIENT_UPDATEUSERNAME,PATIENT

dedeCMS中单独调用子栏目模板和子栏目的文章时修改源代码给channel和chanenartllist加上limit

在网站文件中找到include-taglib-chanel.lib.php,和chaneartllist.lib.php 下载用php的IDE打开, chanel.php加入limit属性修改如下 <?php /** * 获取栏目列表标签 * * @version $Id: channel.lib.php 1 9:29 2010年7月6日Z tianya $ * @package DedeCMS.Taglib * @copyright Copyright (c) 2007 - 2010, Des

Yii中单独为module加载Bootstrap或其他组件的4种方法

Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮.功能完备的网站.但是有时候我们网站前台并不需要Bootstrap,只要管理后台使用Bootstrap,那么该如何单独为一个module加载Bootstrap呢? 这里有4中方法来实现这个:1.在应用的配置文件中添加如下内容 (protected/config/main.php):     'modules'=>array(         'admin'=>array(             'preload'

获取Storyboard中单独的控制器

最近碰到一个问题,需求如下: 需求:在某个storyboard中有一个单独的控制器VC(没有连线),在storyboard中给此VC随便拖几个控件在上面,同时自定义一个类绑定此VC,问如何获取到此VC并且显示storyboard中此VC设置的界面.如下图: 1,首先要知道是哪个storyboard,先介绍一下storyboard的三个方法: 1> 下面的方法表示通过storyboard的名字从某个包中获取(一般设置为nil表示从主包中获取)storyboard + (UIStoryboard *

Android向系统相册中插入图片,相册中会出现两张 一样的图片(只是图片大小不一致)

向系统相册中插入图片调用此方法时,相册中会出现两张一样的图片 MediaStore.Images.Media.insertImage 一张图片是原图一张图片是缩略图.表现形式为:android4.4.4系统中插入的缩略图和原图在sdcard根目录下的DCIM文件夹这种,Android5.0以上的机型插入的缩略图在sdcard根目录下的Pictures文件夹下,原图存放在DCIM文件夹下. 导致这个问题的原因查看代码后知道在插入原图的同时系统自动生成了一个缩略图并保存再相应的文件目录下,代码如下.