by 蔡建良 2019-2-25

经过长时间摸索,参考网上各类文章。今天终于让我成功恢复了oracle的sys.tab$表,并成功打开了数据库。

将此过程记录下来,与大家共享。如有疑问可联系我QQ: 304125648

sys.tab$表的恢复要点如下:

1) Tab$表删除后在行记录头部会标记0x7c,没删除前是0x6c。因此只要将找到所有tab$行记录将第一个字节改为0x6c就成功一大半的。

此处建议在linux中恢复数据。可采用虚拟机来创建oracle环境。

Oracle VM VirtualBox6.0+Centos7+oracle11g

安装涉及问题有:

(1) Xshell 5+Xftp 6组合,用来远程控制linux和传输文件。

(2) oracle 11g for linux bbed - Oracle BBED工具安装

l 将三个文件移到$ORACLE_HOME/rdbms/lib/ 目录下。

l $ mv bbedus.msb $ORACLE_HOME/rdbms/mesg/

l $ cd $ORACLE_HOME/rdbms/lib

l $ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

l 安装成功登陆如下:
[oracle@bys3 ~]$ bbed
Password:            默认密码是:blockedit

l BBED> exit

oracle11g for linuxx64编译bbed需要的三个文件

Xshell+Xftp组合安装包

删除tab$记录的恢复脚本文件

2) 禁用sys.tab$的索引I_TAB1:

//这样恢复,索引与表存在不一致情况,要禁用sys.tab$的索引I_TAB1.

BBED> assign /x  dba 1,523 offset 4910= 0x3c
BBED> sum apply dba 1,523
BBED> verify dba 1,523

3) 由于Oracle数据库被注入触发器,因此必须禁用数据库的触发器。

所以总结解决办法如下(处理前最好进行备份):

1、 关闭数据库  shutdown immediate

2、 启动数据库到mount状态下  startup mount  执行以下语句

alter system set "_system_trig_enabled"=false scope=both;

4) Tab$表恢复后将SYSTEM01.dbf文件复制到原来的数据目录覆盖原有文件。

5) 重建控制文件。

6) Open数据库。

具体可参考:

https://www.cnblogs.com/lfree/p/10368150.html

https://www.cnblogs.com/lfree/p/10368158.html

https://www.cnblogs.com/lfree/p/10368167.html

tab$被删除恢复指南的更多相关文章

  1. HDFS副本机制&负载均衡&机架感知&访问方式&健壮性&删除恢复机制&HDFS缺点

    副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与 ...

  2. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  3. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

  4. Linux操作系统启动故障排错之/boot目录被删除恢复案例

    Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...

  5. Recuva ——天下第一的删除恢复应用

    天下第一的删除恢复应用 下载地址    http://www.onlinedown.net/soft/66224.htm   实名diss那个垃圾  易得恢复  98一年,真是趁火打劫(跟个老鼠一样, ...

  6. truncate 命令删除恢复

    truncate命令可以一次性删除当前表中所有记录并且不留任何日志,同时这个表的ID就自动初化从1开始,今天我就来给大家尝试一个利用truncate清除记录之后恢复过程. 实际线上的场景比较复杂,当时 ...

  7. MYSQL管理----数据库删除恢复

    (1) 如果备份了,就好解决了.略. (2)如果日志打开,使用mysqlbinlog来恢复. mysqlbinlog工具的使用,大家可以看MySQL的帮助手册.里面有详细的用, 在这个例子中,重点是- ...

  8. 跟我学SharePoint 2013视频培训课程——删除恢复、文档离线工作(11)

    课程简介 第11天,怎样在SharePoint 2013中删除.恢复文档.文档离线工作. 视频 SharePoint 2013 交流群 41032413

  9. git 学习(3)文件删除恢复

    git学习(3) 撤销编辑 如果我们在编辑版本a的时候,如果在没有add之前,发现需要重新编辑版本a怎么办呢,可以通过git reset --hard comm_id, commit_id是版本a的提 ...

随机推荐

  1. 《Pro SQL Server Internals, 2nd edition》

    设计和优化索引 定义一种应用于所有地方的索引策略是不可能的.每个系统都是独特的,需要基于工作,业务需求和其他一些因素的自己的索引方法.然而,有几个设计的注意事项和指导方针可以被应用到每个系统. 在我们 ...

  2. DatePickerAndroid用法

    一.代码/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import ...

  3. 能ping通域名,却不能上网

    今天遇到了一个奇怪的现象,电脑意外死机,然后重启,再软后就是能够访问ip,也能ping通域名, 就是浏览器无法访问网页. 1. 首先修改了dns ,刷新dns缓存ipconfig /flushdns ...

  4. SQLI DUMB SERIES-13

    (1)检测闭合方式 通过 ') 闭合. (2)尝试输入 admin')# 无回显.尝试报错注入, 爆表payload: admin') and extractvalue(1,concat(0x7e,( ...

  5. 微信小程序之跳转、请求、带参数请求小例子

    wx.request(OBJECT) wx.request发起的是 HTTPS 请求.一个微信小程序,同时只能有5个网络请求连接. 具体参数说明参看微信小程序官方文档-发起请求. 例: //当页面加载 ...

  6. 贴图平移&凹凸贴图偏移

      1. 平移(UV坐标动画) UV 坐标动画或 UV 平移的含义是,水平 (U) 和/或垂直 (V) 移动纹理的 UV 坐标,以产生复杂动画的错觉. 在以下示例中,火焰纹理沿着 U(水平)方向平移, ...

  7. 如何打开kernel最开始的打印

    1.Kernel hacking  ---> Kernel low-level debugging functions -->   Early printk 2.boot option中你 ...

  8. BootStrap的table技术小结:数据填充、分页、列宽可拖动

    本文结构:先说明,后代码.拷贝可直接运行. 一.demo结构: 二.文件引入 这些里面除了下面2个比较难找,其他的都很好找 bootstrap-table-resizable.js colResiza ...

  9. 连接管理 与 Netty 心跳机制

    一.前言 踏踏实实,动手去做,talk is cheap, show me the code.先介绍下基础知识,然后做个心跳机制的Demo. 二.连接 长连接:在整个通讯过程,客户端和服务端只用一个S ...

  10. hnsdfz -- 6.21 -- day7

    yjq ! yjq ! 今天yjq,感觉yjq好赞啊,路转粉 恩因为题很好所以大致讲一下题解吧 a题是几天前吕老板讲过的…… 一列点上每个点有两个权值ai和bi,每个点可以任选其中一个,但是要求任意一 ...