由于是在内网专用机器上操作,没有日志记录,下面做个简单记录:
 
前几天某供电局的的一个老数据库存储挂了,数据全部丢失,该库没有开归档,没接备份,怎么恢复?
由于存储损坏严重,从存储恢复不好搞。
好在找到一个一年前的“备份”,它是一份直接拷贝的数据文件(没有控制文件和归档日志,数据文件SCN也不一致),总比没有好多了,而且由于这个库是个老库了,最近几年基本只有查询业务,没什么新增数据。
恢复过程:
1、新划文件系统,把数据文件传上去(原来是会用的RAC+ASM,但为了简单快捷就直接rac-off上个单机了),比对MD5确认文件一致;
2、从以前的alert找到数据库名等参数,手动写一个pfile(原spfile在ASM上,也丢了),启动实例;
3、编辑语句手动创建控制文件(控制文件丢失,无备份);
3、使用open resetlogs开库提示只有在不完全恢复的时候使用,那就先来个recover,recover database using backup controlfile auto;
4、再次open提示datafile 1 需要介质恢复,此时恢复是不可能的,此种情况下只有允许不一致开库了;
5、添加_allow_resetlogs_corruption参数后重启再次open,报ORA-00600: internal error code, arguments: [2662],比较常见的600错误;
6、使用oradebug推进SCN:
    oradebug setmypid
    oradebug DUMPvar SGA kcsgscn_
  kcslf kcsgscn_ [060012658, 0600*****) = 000565AE 00000000 00000000 00000000 00000075 00000000 00000000 00000000 00000000 00000000 60012338 00000000
    select to_char(0600*****,'xxxxxxxxxxxxxxxxxxxxxxxxx') from dual;
    14887912323287665
    在此基础上添加值,转换成16进制,然后推进
    oradebug poke 0x060012658 8 0x01********
7、再次open成功,添加临时表空间数据文件后数据库即可正常使用。
8、后续建议将数据导出后新建库再导入,并做好容灾备份工作防止硬件损坏导致数据丢失。

oracle SCN推进恢复数据库 简单记录的更多相关文章

  1. windows重装后,不重装oracle,直接恢复数据库

    windows重装后,不重装oracle,让原来的库可用的问题环境: windows 7/Oracle 11.2.0.1.0  64位 原来的Oracle安装在D盘.重装只格式化了C盘 1.修改注册表 ...

  2. ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库

    在开发机器上经常会遇到重装系统的问题,重装之前如果ORACLE没有及时备份的话重装之后就纠结了,数据还原很头疼. 各种娘中只能找到一些ORACLE安装与重装系统前目录相同的解决办法,目录不同就没招了. ...

  3. Oracle RMAN备份恢复指导书

    目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库. ...

  4. oracle通过修改控制文件scn推进数据库scn

    数据库当前scn 代码如下 复制代码 idle> select checkpoint_change# from v$database; CHECKPOINT_CHANGE#----------- ...

  5. oracle rman恢复数据库 方式恢复到异地数据库

    目的:从某个环境中,获取相关文件,放到异地机器使用rman 恢复.   情况说明:XX系统使用的是oracle数据库,现已从服务器拉下来相关文件,依靠这些文件来早本地的测试机上恢复数据库,方便进行数据 ...

  6. Oracle RMAN 恢复数据库到不同主机(二)

    我们在recover database时报一个错误: RMAN-06054: media recovery requesting unknown archived log for thread 1 w ...

  7. linux/windows系统oracle数据库简单冷备同步

    linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...

  8. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  9. Centos安装Oracle数据库文本记录

    题记,本文旨在记录图形化安装过程,的过程...仅仅是回忆性学习... oracle账号登陆图形界面    #没有图形化,图形检查不通过 运行终端 Terminal cd /u01/database . ...

随机推荐

  1. 【弹性碰撞问题】POJ 1852 Ants

    Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of ...

  2. Java 线程基础,从这篇开始

    线程作为操作系统中最少调度单位,在当前系统的运行环境中,一般都拥有多核处理器,为了更好的充分利用 CPU,掌握其正确使用方式,能更高效的使程序运行.同时,在 Java 面试中,也是极其重要的一个模块. ...

  3. 程序员的修炼-我们为什么会编写BUG

    在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在 ...

  4. Sharepoint 编辑WebPart时,WebPart属性为灰色不可用

    一般在客户端设置就是灰色的,解决方法就是,要在服务器上进行设置,就可以了.:)

  5. thinkphp将对象变成一维数组?

    thinkphp使用select查询出的数据为二维数组,如果想将二维数组转一维,可以使用: $x为二维数组对象 php版本要大于5.5.0 $userid_array = array_column($ ...

  6. Django---进阶8

    目录 前后端传输数据的编码格式(contentType) ajax发送json格式数据 ajax发送文件 django自带的序列化组件(drf做铺垫) ajax结合sweetalert 批量插入 分页 ...

  7. day07 流程控制

    灵魂三问: 什么是?为什么要有?怎么用? 目录 一 分支结构 1.1 什么是分支结构 1.2 为什么要有分支结构 1.3 怎么用分支结构 1.3.1 if语法 二 循环结构 2.1while循环 一 ...

  8. WPF之Converter

    1.Converter介绍 在WPF应用程序中经常遇到类似这样的问题,在定义的类中用的bool类型的值,但是界面上某个控件的显示属性是Visibility的枚举类型的,解决这个问题可以简单在定义的类中 ...

  9. node+express4+multiparty实现简单文件上传

    文件上传 var fs = require('fs'); var express = require('express'); var multiparty = require('multiparty' ...

  10. redis cluster info显示cluster_state:fail解决方案

    1.查看错误信息: 1.1 错误信息(1) 127.0.0.1:7000> get name (error) CLUSTERDOWN The cluster is down 127.0.0.1: ...