很不幸的,win2003server疏于管理,中毒了,清理了病毒以后。oracle也瘫痪了。上次备份还在一周前,这一周的数据咋办?

首先的想法,是另找一台机器,装个一模一样的oracle。再把被删的文件复制过来。

实施起来发现被删掉的文件不止几个exe这么简单,dll文件还有oracle服务也被删掉了,恢复起来还挺麻烦的。





然后就选择第二条路。重装oracle。首先记得要把原有的oracle主文件夹备份了。

第1次尝试:

选择不创建数据库,仅安装软件,选择原文件夹,然后报错,说安装位置冲突

[INS-32025]所选安装与指定Oracle主文件夹中已安装的软件冲突

解决的方法:删除C:\Program Files\Oracle文件夹,安装继续

然后又提示原文件夹有内容,选择继续,安装完毕。

可是安装完毕后,啥都没变。删除的文件没有回来。

第2次尝试

把原product文件夹删掉,再装。这次删除的exe和dll文件回来了,可是oracle服务没有恢复。执行数据库配置助手。发现它也没有识别并载入到原数据库文件。

第3次尝试

先卸载,提示要使用deinstall.exe,照做,一路回车,卸载完成。然后彻底删除原oracle,包含注冊表、主文件夹、和其他文件。具体參见网络文章。

再次安装,这次选择了创建数据库,实例名还是保持原来的一样。

安装过程中出现了一些问题,比方无权改动键,监听创建失败,数据库创建失败等,心都凉了,也仅仅能一路忽略继续。

装完后发现服务回来了,手工启动TNSListener监听服务。启动OracleService实例服务。所幸没有影响。正常启动,可以正常登录连接熟悉的scott。哦也。

然后就是恢复数据了,停掉OracleService服务。把备份的原库主文件夹下的oradata文件夹所有覆盖过去。

连接提示:ORA-12528: TNS: 监听程序: 全部适用例程都无法建立新连接

别慌。打开主文件夹\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件,在SID_LIST_LISTENER配置改动成:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.1.0\db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = 数据库实例名)

      (ORACLE_HOME = c:\oracle\product\10.1.0\db_1)

      (SID_NAME = 数据库实例名)

    )

  )

蓝色是加入的,保存后重新启动TNSListener。

这次似乎成功了,sysdba能够连接上了,但是连接scott时又报错了:ora-01033:oracle initializationg or shutdown in progress

用cmd方式。运行sqlpuls /nolog,打开sqlplus,

SQL>connect sys/password@orcl as sysdba  用sysdba连接数据库

SQL>shutdown immediate      停止服务

出现一个ORA-01507的报错,只是还是显演示样例程已关闭,那就别管这个错了。

SQL>startup                          启动服务

发现报错:

ORACLE 例程已经启动。

Total System Global Area  778387456 bytes

Fixed Size                  1374808 bytes

Variable Size             234882472 bytes

Database Buffers          536870912 bytes

Redo Buffers                5259264 bytes

ORA-00211: ??

?

?

?

?

??

?

??

????

ORA-00202: ????: ''D:\ORACLE11G\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL''

那就是这个文件有问题罗

     SQL>shutdown immediate      再次停止服务

把备份的原库主文件夹下的FLASH_RECOVERY_AREA文件夹所有覆盖过去。

SQL>startup                          再次启动服务

连接scott。成功。

连接生产用户。成功。。!

差点哭了……

假设上天给我再来一次的机会,我一定搞成每天自己主动备份。

ORACLE11g中毒恢复的更多相关文章

  1. 传奇装备锻造升级UPGRADEITEMEX功能详解

    装备升级功能可以指定升级物品及属性,按指定机率得到结果.需要升级的装备物品必须放在身上.命令格式UPGRADEITEMEX 物品位置(0-12) 属性位置(0-14) 成功机率(0-100) 点数机率 ...

  2. DBC里首饰不同代码的含义

    DuraMax"这个就是我们要找的物件持久的属性了,一开始怎么也找不到,原来这里的变量中 "1000"表示1个持久度,那么"40000"就表示40个持 ...

  3. oracle11g 数据文件误删恢复(无备份)

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  4. Oracle-11g 基于 NBU 的 rman 冷备份及恢复

    html,body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...

  5. ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

    1.副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复.而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rma ...

  6. 教你u盘中毒后如何恢复被隐藏文件

    方法1: 1)在桌面空白处单击鼠标右键,新建一个文本文档,如下图所示: 2) 然后将下列一段代码拷贝到文档中: for /f "delims=?" %%a in ('dir /a ...

  7. ORACLE11G 将dataguard的rman备份恢复到測试环境的单机oracle中的具体过程

    . 也就是说此时数据库仅仅能进行不全然恢复了,在打开数据库时得使用resetlogs打开. recover database until scn 11412370952; RMAN> recov ...

  8. ORACLE11g 重装系统后根据dbf恢复数据库

    1.安装一个和原系统一致的oracle 环境,主要包括版本.数据名sid.实例名.路径和数据库编码一致 2.修改listener.ora的参数 SID_LIST_LISTENER = (SID_LIS ...

  9. 测试oracle数据库的脱机备份和恢复

    环境:windows7.Oracle11g 一.脱机备份 脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份. 在书上学到的备份步骤: 1.记录所要备份数据库文件所在的操作系统路径: 2.关闭数据 ...

随机推荐

  1. scala 学习笔记七 基于类型的模式匹配

    1.介绍 Scala 提供了强大的模式匹配机制,应用也非常广泛. 一个模式匹配包含了一系列备选项,每个都开始于关键字 case.每个备选项都包含了一个模式及一到多个表达式.箭头符号 => 隔开了 ...

  2. 【翻译自mos文章】CRS显示 正在执行的db instance 是offline状态

    CRS显示 正在执行的db instance 是offline状态 转自: CRS shows Running Instance Status as OFFLINE (Doc ID 1673397.1 ...

  3. GIT 恢复已删除的提交

    在Git中一切的操作都是可以恢复的,包括已经删除的提交,今天在做一个项目时就遇到了这种问题,也不知道是怎么回事不小心就把上午提交的所有代码都删除了,于是赶紧通过git log来查看日志,但奇怪的是当时 ...

  4. CSS种让border-bottom大道text-decoration一样的效果,甚至要比它的效果更理想一些!

    <p style="width:300px;line-height: 30px;margin:0 auto;text-indent: 24pt;word-break:break-all ...

  5. Java+FlashWavRecorder实现网页录音并上传

    [注意] 最新版本号请看这里:http://uikoo9.com/blog/detail/java-flashwavrecorder [前言] 肯定有需求要网页录音,并且要上传.这奇葩需求. 然后找到 ...

  6. IOS 将公历日期转换为中国农历

    代码方法: //日期阳历转换为农历: - (NSString *)convertDateToNongLi:(NSString *)aStrDate { NSDate *dateTemp = nil; ...

  7. python中的静态成员方法和类成员方法

    Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数: 2)从第1条,静态方法是无法访问 ...

  8. 转:C#委托与事件

    委托与事件    Ganesh Nataraj最近写了一篇解释委托与事件的文章,在坊间流传较广,今天翻译成中文与大家共享,如有不妥之处,欢迎留言讨论.    C#中的委托类似于C或C++中的函数指针. ...

  9. java 图片数据Base64编解码

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  10. CSS3实现两行或三行文字,然后多出的部分省略号代替

    概述 -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中.限制在一个块元素显示的文本的行数. 为了实 ...