怎么还原oracle程序,一次Oracle数据库恢复过程

单位的Oracle数据库又出问题了,经过努力终于恢复.....[@more@]

2月24日下午3点,一个同事一不小心误删除了一个重要的业务数据表。该表大概有140万记录,存储着近三年的销售数据。幸好有前一天的备份,而且当天没有业务发生,也就是说恢复前一天的数据就可以了。不过平时的备份是通过冷备份,copy所有的数据文件、控制文件和重做日志文件,这样就决定了无法单独恢复一个表,只能全数据库的恢复。无奈,为了不影响业务系统的运行,只好在另外一台PC机上安装了一个与服务器完全相同的环境,Win2000+Oracle8.1.7。然后copy所有的备份文件,按道理这样就可以在PC机上恢复出前一天的数据了。可是无法打开数据库,提示ora-01991错误,幸好以前遇到过这个现象,这是密码文件的问题。先把位于d:/oracle/ora81/database/PWDora8.ORA的文件删除,然后在命令行模式中输入

ORAPWD FILE=d:/oracle/ora81/DATABASE/PWDora8.ORA PASSWORD=ORACLE ENTRIES=10,重新建立密码文件。以前出现这种问题,作以上处理后再recover就好了,可这次不行了,recover后提示:

ora-00283: recovery session canceled due to errors

ora-01190: controlfile or data file 1 is from before the last RESETLOGS

ora-01110: data file 1: 'd:/oracle/oradata/ora8/users01.dbf'

第一感觉是users01.dbf出问题了,试着将它offline了,又提示其他的文件,一个一个都offline了,再试着alter database open成功了。这下我感觉有戏了,说明数据库的系统文件没坏,但这样的数据库还是不行操作呀!怎么办呢?难道备份真的文件有问题?思考了一会,眼前一亮,我发觉可能是控制文件的问题。马上重建控制文件,alter database backup controlfile to trace备份当前控制文件到数据库跟踪文件中到d:/oracle/admin/ora8/udump中。把文件中的内容

CREATE CONTROLFILE REUSE DATABASE "ORA8" NORESETLOGS ARCHIVELOG

MAXLOGFILES 32

MAXLOGMEMBERS 2

MAXDATAFILES 254

MAXINSTANCES 1

MAXLOGHISTORY 27372

LOGFILE

GROUP 1 'D:/ORACLE/ORADATA/ORA8/REDO01.LOG' SIZE 1M,

GROUP 2 'D:/ORACLE/ORADATA/ORA8/REDO02.LOG' SIZE 1M,

GROUP 3 'D:/ORACLE/ORADATA/ORA8/REDO03.LOG' SIZE 1M

DATAFILE

'D:/ORACLE/ORADATA/ORA8/SYSTEM01.DBF',

'D:/ORACLE/ORADATA/ORA8/RBS01.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS01.DBF',

'D:/ORACLE/ORADATA/ORA8/TEMP01.DBF',

'D:/ORACLE/ORADATA/ORA8/TOOLS01.DBF',

'D:/ORACLE/ORADATA/ORA8/INDX01.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS02.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS03.ORA',

'D:/ORACLE/ORADATA/ORA8/USERS04.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS05.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS06.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS07.DBF',

'D:/ORACLE/ORADATA/ORA8/USERS08.ORA',

'D:/ORACLE/ORADATA/ORA8/USERS09.ORA',

'D:/ORACLE/ORADATA/ORA8/USERS10.ORA'

CHARACTER SET ZHS16GBK

copy出来,存为c.sql,运行svrmgrl,

>connect internal

>shutdown

>startup mount

>@c.sql

显示成功,recover,提示需要归档日志文件,幸好数据库运行在归档模式下,按照提示提供相应的归档日志,经过7、8次的提示,终于显示恢复成功。Alter database open成功!屋子里一片欢呼,经过近两个小时,数据库终于恢复了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值