美文网首页数据库
DBF文件数据恢复

DBF文件数据恢复

作者: 南湖Giser | 来源:发表于2018-12-25 17:45 被阅读0次

背景

    由于机房意外断电导致oracle数据库控制文件损坏,数据库实例无法正常启动。在网上查阅了很多资料,有很多讲如何重建控制文件恢复数据的,但是我并没有成功。最后打算换个思路,利用现有工具帮我实现数据恢复。

准备

    1.数据恢复工具AUL(如有需要请联系本人获取)
    2.待恢复DBF数据文件


数据准备
  • system01.dbf:记录系统运行信息,包含所有数据库字典,PL/SQL程序代码及其他系统信息
  • undotbs01.dbf:存放回退信息,即DML操作后的旧数据信息
  • sysaux01.dbf:system文件的辅助文件,存放支持oracle系统活动的多种工具如logminer
  • users01.dbf:新建用户未指定存储空间是,默认数据存放在该文件中
  • temp01.dbf:临时表空间数据
  • user1_data.dbf:这是你即将恢复的数据所在的表空间,名字依实际情况而定

恢复步骤

    1.解压AUL6.zip,解压后的文件包括一个exe和一个dll文件。杀毒软件会报木马,我当时为了恢复数据还是冒险打开了,但没有发现什么异常,所以可以忽略。
    2.在aul6.exe同级目录下建两个文件,system.cfg和userdata.cfg,system.cfg中使用的两个dbf是oracle系统的dbf,userdata.cfg中使用的dbf是新建数据库中存放数据的dbf,其不含有表名/结构等信息,仅存放裸数据。
     - 在system.cfg文件中键入:
    0 0 E:\AUL\SYSTEM01.DBF
    0 0 E:\AUL\UNDOTBS01.DBF
     - 在userdata.cfg文件中键入:
    0 0 E:\AUL\USER1_DATA.DBF
    3.双击aul.exe打开命令窗口,输入open system.cfg,正常会出现如下图所示结果:



4.依次执行下面四条命令:
unload table user$;
unload table obj$;
unload table tab$;
unload table col$;
执行完后,aul6.exe同级目录下会生产四个大小均不为0的文件:aulusr.txt, aulobj.txt,aultab.txt, aulcol.txt,如果有文件大小为0,则说明存在问题。


执行命令
执行结果
5.打开aulusr.txt,可找到你要恢复数据所属用户的名称,比如此处我们要恢复的数据用户是user1。

6.执行命令:open userdata.cfg,回车,正常情况,效果应与打开system.cfg时效果相同,输出数据块大小、数量等信息。

7.执行命令:list table user1 to user1.txt;回车,生成所有待导出数据表脚本,此处user1即数据表的用户名。在aul6.exe同级目录下找到user1.txt,正常情况该文件大小不为0,打开,找到待恢复的数据表,把其它记录(大多为系统表)全部删除,保存,将文件扩展名改为sql。如下图:
1.jpg
8.执行命令:@user1.sql;执行完后,aul6.exe同级目录下一个表会生成3个文件,如图:
1.jpg

9.打开PLSQL连接一个正常的数据库,执行POI_syntax.sql文件,创建数据表。


SQL执行
SQL执行结果
10.使用oracle自带的sqlldr命令装载文本数据,新开cmd窗口,将路径切换到aul6.exe同级目录下,执行命令:sqlldr usr/pwd control=ACCOUNT_MANAGE_sqlldr.ctl;回车,usr/pwd为你当前数据库的用户名/密码,需与plsql登录时用户名/密码相同。正常情况命令执行结束时会输出逻辑记录计数,表示插入了多少条记录,且在aul6.exe同级目录下生成日志文件account_manage_sqlldr.log,包含执行结果的详细信息。

11.查看数据表,数据已成功恢复。有时候可能会因为新旧数据库环境不一致导致中文乱码,这个解决方法十分简单。可以自己写一段代码直接从POI.txt读取数据写入数据库。
1.jpg

相关文章

  • DBF文件数据恢复

    背景 由于机房意外断电导致oracle数据库控制文件损坏,数据库实例无法正常启动。在网上查阅了很多资料,有很多讲如...

  • dbf文件操作工具

    dbf文件 DBF文件格式是一种比较“古老”的数据库文件格式了,dbf是dBase和FoxPro所使用的数据库格式...

  • PostGIS中dbf file (.dbf) can not

    postgis数据库文件shapefile导入 dbf file (.dbf) can not be opened...

  • excel转dbf教程

    一、目标 将给定excel文件根据例库格式转为dbf数据库文件,如:例库: 原始Excel文件: 转换后的dbf数...

  • 创建删除数据库

    oracle创建数据库database有以下三步: 1,创建两个数据库的文件(.dbf | _temp.dbf) ...

  • dbf文件sql驱动 工具

    dbf文件简介 dbf 文件的接收和使用工具可以参考 dbf jdbc 驱动简介 目前市面上有的dbf jdbc驱...

  • 03_oracle基本操作

    数据库 Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文...

  • Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库

    Oracle数据库的体系结构 数据库: Oracle数据库是数据的物理存储,这就包括(数据文件ORA或者DBF、控...

  • oracle数据库dbf中勒索病毒*.dbf.[helpback

    oracle数据库dbf中勒索病毒*.dbf.[helpbackup@email.tg].Devos[http:/...

  • Redis持久化

    使用RDB文件恢复数据 步骤一:使用RDB文件恢复数据 RDB介绍: Redis数据库文件,全称Reids Dat...

网友评论

    本文标题:DBF文件数据恢复

    本文链接:https://www.haomeiwen.com/subject/criflqtx.html