欢迎投稿

今日深度:

ORACLE11g中毒恢复

ORACLE11g中毒恢复


 

非常不幸的,win2003服务器疏于管理,中毒了,清理了病毒以后,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,成功!

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

差点哭了……

如果上天给我再来一次的机会,我一定搞成每天自动备份!

www.htsjk.Com true http://www.htsjk.com/oracle/23597.html NewsArticle ORACLE11g中毒恢复 非常不幸的,win2003服务器疏于管理,中毒了,清理了病毒以后,oracle也瘫痪了。上次备份还在一周前,这一周的数据咋办? 首先的想法,是另找一台机器,装个一模一...
相关文章
    暂无相关文章
评论暂时关闭