很不幸的,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. 分解大量switch-case分支的两种方法

    项目经过长期多人的维护,所谓人多手杂,出现不少过多过长的switch-case分支,或者多重switch-case嵌套.每每添加功能,我都会紧皱眉头,然后带着罪恶感向已经成百上千行的函数里再添上一个c ...

  2. Oracle基础重点概要

    表空间                                                                 逻辑上处于数据库之下,利用表空间可以更灵活地规划数据库结构. 创 ...

  3. ObservableCollection

    1)可以使绑定控件与基础数据源保持同步2)还可以在您添加.删除.移动.刷新或替换集合中的项目时引发 CollectionChanged 事件3)还可以在您的窗口以外的代码修改基础数据时做出反应4)相互 ...

  4. 直接修改class文件内容即使是文本会导致App异常,正确方式是修改java再用生成的class替换掉原有的class

    前几天来了个小任务,把某项目中某人的邮件地址改了下. 由于对项目不熟悉,于是采用find方式找出app中所有包含某人邮件地址的文件都找出来了. xml,properties大约三四个,还有两个clas ...

  5. Python访问MongoDB数据库

    #encoding: utf-8 __author__ = 'Administrator' #import pymongo from pymongo import MongoClient,GEO2D ...

  6. TCP协议为什么会采用三次握手,若采用二次握手可以吗?

     TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的.基于IP的传输层协议,采用三次握手确认建立一个连接. TCP为了保证报文传输的 ...

  7. Linux网卡高级命令

    网卡的高级命令 [root@gechong ~]# mii-tool No interface specified usage: mii-tool [-VvRrwl] [-A media,... | ...

  8. sqlserver 创建对某个存储过程执行情况的跟踪

    有时候需要抓取执行存储过程时某个参数的值,有时候程序调用存储过程执行后结果不太对,不确定是程序的问题还是存储过程的问题,需要单独执行存储过程看结果 即可用下面的方法 --=============== ...

  9. JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生

    一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...

  10. 文本挖掘之文本聚类(OPTICS)

    刘 勇  Email:lyssym@sina.com 简介 鉴于DBSCAN算法对输入参数,邻域半径E和阈值M比较敏感,在参数调优时比较麻烦,因此本文对另一种基于密度的聚类算法OPTICS(Order ...