您的位置:首页 > 数据库 > Oracle

系统损坏,移植Oracle(9.2.0.1)数据库(无备份数据文件进行恢复)

2005-12-30 13:33 1301 查看
A机系统环境:

软件:Windows2003Server、Oracle9.2.0.1
硬件:DellSC420(P43.0、2G内存、160GSATA硬盘)

Oracle 数据量:11G。

症状:局域网被病毒感染,网络瘫痪;系统损坏。

解决步骤:
1、把服务器硬盘取下挂到B(Dell Dimension 4550)机把Oracle数据(data file,control file,redo file,archive logfile,spfile,pwdfile )取出。由于硬盘轻微损坏oracle 一表空间文件(redo file)无法取出,故从重建undotbs表空间文件开始(用软件修复无果只能是重建)。

2、在B机上面按照A机oracle环境配置安装Oracle 。

3、首先把B机上面所有服务全部关闭,然后把data file,control file,redo file,archive logfile,spfile,pwdfile 文件覆盖B机文件。
注:data file,control file,redo file,archive logfile,spfile,pwdfile 文件位置:如果你的oracle系统和system系统表空间安装在一起。那就很好找了,例如:我的oraclehome在D盘,sid是:“ogtlogdb”

pwdfile、spfile等在:D:\oracle\admin\ogtlogdb
DataFile、redoFile等在:D:\oracle\oradata\ogtlogdb

4、在SQLPlus中登陆“sys/sys@ogtlogdb as sysdba”(本人第一使用sql的时候在cmd下面这样是不成功的,所以先在命令行中敲入“SQLPlus”再敲入“sys/sys@ogtlogdb as sysdba”)。

5、关闭数据库:sql>Shutdown

6、重起数据库,记住启动时加载出错的文件:SQL >Startup force
屏幕如下:
  Total System Global Area 126950220 bytes
  Fixed Size 453452 bytes
  Variable Size 109051904 bytes
  Database Buffers 16777216 bytes
  Redo Buffers 667648 bytes
  数据库装载完毕。
  ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
  ORA-01110: 数据文件 9: 'D:\ORACLE\ORADATA\XINAHE\USERS01.DBF'

7、把出错和丢失文件全部OffLine drop
sql>alter database datafile 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' offline drop;
如果此处出现其他数据文件错误就和执行上面语句把数据文件offline drop掉。

8、sql>alter database open;
屏幕返回:Database altered;
如果还有数据文件提示错误反复执行第五步。
直到执行本步骤屏幕返回Database altered为止。

9、重建Undotbs表空间:Create undo tablespace undotbs datafile 'C:\ORACLE\ORADATA\ORCL\UNDOTBS02.DBF' size 100M;
屏幕返回:Tablespace created.

10、修复第五步中出现错误的数据文件。
sql>recover automatic datafile 1;
屏幕返回:完成介质恢复。
sql>recover automatic datafile 19;
屏幕返回:完成介质恢复。
把所有offline drop 掉的数据文件用上面语句恢复。

11、把offline drop 掉的文件重新online:
sql>alter database datafile 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' online;
sql>alter database datafile 'D:\ORACLE\ORADATA\ORCL\UNDOTBS019.DBF' online;

12、alter database open;
屏幕返回:database opened.

13、重新启动机器(把oracle 服务设置为自动启动)。

备注:有时候Oracle停电之后出现的SYSTEM01.DBF文件损坏等问题,可以通过以上方法恢复,如果实在恢复表,或者是非归档模式,可以使用:
Oracle系统的隐含命令:
alter system set "_allow_resetlogs_corruption"=true scope=spfile;

将UNDO日志改为手动模式:
alter system set undo_management='manual' scope=spfile;

以上设置后过几分钟后,shutdown一下,再启动可以临时性的读出数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐