oracle 11g从DBF文件恢复数据

oracle 11g从DBF文件恢复数据

因为C盘扩容,把临近的D盘数据备份到E盘,修改了注册表和服务,折腾了很久oracle实例还是无法启动,于是只能卸载重装oracle,从DBF文件恢复数据。

sqlplus登录数据库

sqlplus / as sysdba

备份控制文件

alter database backup controlfile to trace;
在这里插入图片描述

停止数据库

执行shutdown immediate命令停止数据库实例。
在这里插入图片描述

备份新数据库的DBF(实例名:XE)

把目录E:\oracle11g\app\oracle\oradata的实例XE备份
将需要还原的老数据库实例的所有DBF文件复制进去
在这里插入图片描述

找到刚刚备份的trc文件

一般在目录:E:\oracle11g\app\oracle\diag\rdbms\xe\xe\trace
在这里插入图片描述

打开trc后开始构建数据恢复命令

找到原来的log文件,老目录:E:\D_backup\oracle_11g\app\oracle\fast_recovery_area\XE\ONLINELOG
将原来的log文件复制到新的数据库相应的目录,E:\oracle11g\app\oracle\fast_recovery_area\XE\ONLINELOG
>
根据实际情况修改
在这里插入图片描述

CREATE CONTROLFILE REUSE DATABASE "XE" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'E:\ORACLE11G\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_JGJ36F71_.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'E:\ORACLE11G\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_JGJ36FF6_.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSTEM.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSAUX.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\USERS.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSTEM2.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSTEM3.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSTEM4.DBF',
  'E:\ORACLE11G\APP\ORACLE\ORADATA\XE\SYSTEM5.DBF'
CHARACTER SET AL32UTF8
;
开始恢复

执行startup nomount,启动数据库到nomount状态
在这里插入图片描述
执行创建控制文件的SQL语句

在这里插入图片描述

恢复数据库,然后开始执行下面的命令

> RECOVER DATABASE
> ALTER DATABASE OPEN;

在这里插入图片描述
在这里插入图片描述

错误排查

如果老数据库有TMP.DBF和CONTROL.BDF,可能导致控制文件的SQL执行失败。可以删除这两个DBF,然后修改sql重试。

参考

oracle10G-通过DBF文件恢复数据
作者:爱吃鱼的菲菲

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
恢复Oracle 11g数据库中的dbf文件,有几个步骤需要遵循。 首先,确定哪个dbf文件需要恢复。可以通过检查数据库的日志文件或使用Oracle Enterprise Manager来确定数据库中的故障或损坏的dbf文件。 然后,停止数据库实例以进行恢复操作。可以使用SQL*Plus工具连接到数据库服务器,并使用SHUTDOWN IMMEDIATE命令停止实例。 接下来,创建一个新的控制文件来指向缺失的dbf文件。可以使用SQL*Plus工具连接到数据库,并使用ALTER DATABASE BACKUP CONTROLFILE TO TRACE命令创建一个跟踪文件。 然后,编辑刚创建的跟踪文件,将其中的缺失dbf文件路径替换为正确的路径。最后,使用SQL*Plus工具连接到数据库,并使用STARTUP MOUNT命令启动数据库实例,并使用ALTER DATABASE OPEN命令将数据库实例打开。 完成这些步骤后,数据库实例将尝试自动恢复缺失的dbf文件。如果文件在备份中可用,将会使用备份进行恢复。如果没有备份,可以尝试使用Oracle Recovery Manager(RMAN)工具进行恢复。 使用RMAN工具可以执行以下命令来恢复缺失的dbf文件: RECOVER DATAFILE '<dbf文件路径>'; 这将尝试从备份中恢复缺失的dbf文件。如果找不到备份,可能需要联系数据库管理员或使用其他数据恢复工具进行进一步的恢复尝试。 总之,要恢复Oracle 11g数据库中的dbf文件,需要确定缺失的文件、创建新的控制文件并进行路径替换,然后尝试使用备份或数据恢复工具进行恢复操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值