联系:手机/微信(+86 17813235971) QQ(107644445)

标题:删除数据库文件并部分覆盖情况下Oracle恢复

作者:惜分飞版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

有客户由于磁盘空间满了,人工删除了数据库30多个数据文件,导致数据库无法正常工作,然后又被人offline这些文件启动数据库,并运行了一段时间,导致写入了大量的trace和部分数据库归档日志,导致被删除的数据文件发生了覆盖,对于这样情况,通过底层反删除工具对磁盘进行扫描,发现了部分被删除文件,但是大小基本上显示0kb


对于这种情况,os层面反删除恢复,肯定无法恢复出来合适的数据文件,只能做底层数据块扫描恢复,参考以前类似case:
rm -rf误删Oracle数据库恢复
win系统删除oracle数据文件恢复
Oracle 数据文件大小为0kb或者文件丢失恢复
解决一次硬件恢复之后数据文件0kb的故障恢复case
这个客户的情况相对复杂一些:
1. 该磁盘分区中有历史库(也就是说单纯的软件直接按照rdba方式无法直接区分出来合适的数据块,儿实现数据重组)
2. 删除的文件比较多(33个数据文件),分区较大(5T+)
3. 删除文件之后,分区还写入了不少数据,会引起一些覆盖和导致碎片数量增加,导致工作量增加和恢复效果变差
通过对客户alert日志分析,发现一个好消息,客户数据每个数据文件是固定大小(没有设置自增长),这种情况,一般来说数据比较连续,碎片相对比较容易区分出来.



通过工具扫描识别出来oracle block,并把结果记录到数据库中,然后通过人工在数据库中对其进行挑选识别,然后生成dd语句恢复出来数据文件,比如这个只是被覆盖了文件头的22号文件,就比较容易恢复



对于一些碎片严重的文件,就需要人工生成大量dd语句来恢复



对于所有恢复出来的文件,使用工具检查坏块情况



然后把这些数据文件中的数据恢复到新库中,完成本次数据恢复工作,最大限度抢救客户数据.

删除数据库文件并部分覆盖情况下Oracle恢复---惜分飞的更多相关文章

  1. 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)

    [DATAGUARD]物理dg在主库丢失归档文件的情况下的恢复(七) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到 ...

  2. Oracle redo 日志损坏的几种情况下的恢复

    Oracle redo 日志损坏的几种情况下的恢复 第一:损坏的redo为非正在使用的redo log 1.归档模式,不是当前正在日志损坏,数据库打开模式. 模拟损坏:SQL> select * ...

  3. Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

    本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http: ...

  4. SQL2005 如何在没有日志文件的情况下如何恢复MDF数据库文件?

    第一步:先建立一个同名数据库,停止SQL SERVER2005,将没有日志的的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库. 第二步:在查询分析器中运行如下代码(将数据库名修改为您 ...

  5. SQL Server中使用SQL语句关闭数据库连接和删除数据库文件

    有时候我们想用DROP DATABASE语句删除数据库和数据库文件,会删不掉,因为有其他人正在使用要删除的数据库,这里有一个方法可以强制断开其它数据库连接,再删除数据库. 假如我们要删除的数据库是[T ...

  6. Oracle 无备份情况下的恢复--控制文件/数据文件

    13.3无备份恢复控制文件 没有备份恢复控制文件其实就是在nomount状态,create control创建一个新的控制文件. dba必须知道4个信息才能正确的创建:数据库名.在线日志路径及其大小. ...

  7. python3 在文件确实存在的情况下,运行提示找不到文件

    提示 [Errno 2] No such file or directory: 但是路径下确实存在此文件,在不改动的情况下,再次运行,执行成功. 百思不得其解,看到此链接下的回答 http://bbs ...

  8. mysql删除数据库文件ibdata1后引发的故障

    进行性能测试是发现大量报错: Duplicate entry主键重复 可以看到mysql数据库中已经没有innodb引擎启动信息了 之前发现ibdata1占用了大量硬盘,为了省出空间删除了数据库ibd ...

  9. Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205

    13.5 恢复临时文件 临时文件没有也不应该备份.通过V$TEMPFILE可以找到所有的临时文件. 此类文件的损坏会造成需要使用临时表空间的命令执行失败,不至于造成实例崩溃或session中断.由于临 ...

  10. 怎样一步一步删除(linux & UNIX)环境下 oracle 11g 集群节点

     Deleting a Cluster Node on Linux and UNIX Systems 1.确定要删除的节点,是否active,pinned $ olsnodes -s -t 假设 ...

随机推荐

  1. shell 一下子创建多个 文件 和文件夹

    #!bin/bash seq -f "led%01g" 0 35| xargs mkdir for((i = 0;i<36;i++)) do led="led&qu ...

  2. NPM 自动管理包依赖

    简介 包依赖的实例 可以时刻保持 模块是最新的js版本 code { "name":"d3-project-template", "version&q ...

  3. Timeseries Prediction Demo base on LSTM

    示例代码 import json import time import datetime import requests as req import numpy as np import pandas ...

  4. [学习笔记] KMP算法——烤馍片(超详细)

    1. KMP简介 kmp算法,是一种线性字符串匹配(父子串为 root,子子串为 s),由 D.E.Knuth,J.H.Morris 和 V.R.Pratt 提出的,因此人们称它为KMP算法. 2. ...

  5. P9013 [USACO23JAN] Find and Replace S

    前言 这是考试的时候放的一道题,考的时候没做出来. 调了一个晚上,心态爆炸,故作此篇.顺便,鸣谢泥土笨笨大佬的题解,给我的代码提供了强有力的对拍参照. 正题 首先看到题目,虽然字符串长度不超过 \(1 ...

  6. PHP对接2020年东京奥运会奖牌榜API接口

    2020年东京奥运会奖牌榜查询, 该接口5分钟更新一次, 免费请求, 对接简单, 底部带效果图 成本网页以为大家做好, 可用iframe引入到自己网站或直接跳转, 不加任何广告 1. PHP代码部分 ...

  7. 力扣算法189:轮转数组 —— 进阶版:空间复杂度 O(1)

    题目:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] ...

  8. 01Java基础语法之注释、标识符、关键字、数据类型及拓展

    注释.标识符.关键字 注释 注释并不会被执行,是给写代码的人看的 书写注释是一个非常好的习惯 书写代码一定要规范 Java中的注释有三种: 单行注释,// // 这是一个单行注释 多行注释,/* XX ...

  9. 浅谈MCU的启动

    目前正在学习STM32F407芯片, 我们通过KEIL将代码生成Application.bin后,通过JFLASH烧录到0x08000000, 然后重新上电MCU就开始工作了. 那APPlicatio ...

  10. 网站SSL证书怎么选?不用SSL证书会怎么样?

    SSL 证书(Secure Sockets Layer Certificate)作为一种数字证书,由可信赖的第三方机构(CA,Certificate Authority)予以颁发.其主要功能在于,在客 ...