利用已有的数据文件实现oracle恢复

实现步骤如下:
1.安装数据库,创建数据库实例ORCL。
2.删除安装目录下所有的文件(datafiles,control files,log files)
3.把需要恢复的数据库的数据文件复制到此目录下。
 
4.重建控制文件。内容如下:
CREATE CONTROLFILE REUSE DATABASE "orcl" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'D:/oracle/product/10.2.0/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 'D:/oracle/product/10.2.0/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 'D:/oracle/product/10.2.0/oradata/orcl/redo03.log' SIZE 50M
DATAFILE
'D:/oracle/product/10.2.0/oradata/orcl/SYSTEM01.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/UNDOTBS01.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/USERS01.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/SYSAUX01.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/REPDBSPACE.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/ODSDBSPACE.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/EXAMPLE01.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/DWDBSPACE.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/DMDBSPACE.DBF',
'D:/oracle/product/10.2.0/oradata/orcl/DBSPACE.DBF'
;
SQL>conn sys/pw as sysdba;
SQL>shutdown immediate;
SQL>startup nomount;
SQL> @d:controlfile.sql
期间出错,
1)提示需要恢复的实例名称和文件头部的实例名称不符。
(原因是创建的实例TEST和需要恢复的实例名称ORCL不一致,后删除实例重建名为ORCL的实例,继
续进行。)
2)提示temp.dbf不是数据文件,把此条删除,重新执行。
(temp.dbf不能在此阶段定义,等数据库恢复后再进行创建即可)
3)指定的redo文件大小不符。
(开始是自己创建了3个文件,文件大小为0k,和controlfile.sql内指定的50m不一致。把原始文件复制过
来,定义成原始文件大小即可)
5.恢复数据库
recover database using backup controlfile until cancel;
出现错误:
1)介质文件需要需要恢复
(使用命令recover datafile filename;进行逐条恢复)
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 70123 (? 02/28/2005 15:22:05 ??) ???? 1 ????
ORA-00289: ??: C:/ORACLE/ORADATA/TESTDB/ARCHIVE/1_3.DBF
ORA-00280: ?? 70123 ???? 1 ???? # 3 ???
 
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????
ORA-01194: ??1?????????????
ORA-01110: ???? 1: 'C:/ORACLE/ORADATA/TESTDB/SYSTEM01.DBF'
 
ORA-01112: ???????
我们看到如果是abort DOWN机的话,打开数据库都需要应用在线活动日志
这时必须加隐含参数强制打开数据库,并进行导出,重建数据库,导入业务数据
SQL> show parameter spfile                                                                               
                                                                                                         
NAME                                 TYPE        VALUE                                                   
------------------------------------ ----------- -----------------------------                           
spfile                               string      %ORACLE_HOME%/DATABASE/SPFILE                           
                                                 ORACLE_SID%.ORA                                         
                                                                                                         
                                                                                                         
SQL> create pfile='pfiletest.ora' from spfile;                                                           
                                                                                                         
文件已创建。                                                                                             
                                                                                                         
SQL> create pfile='c:/pfiletest.ora' from spfile;                                                        
                                                                                                         
文件已创建。                                                                                             
编辑c:/pfiletest.ora                                                                                     
增加三个参数                                                                                             
                                                                                                         
_allow_resetlogs_corruption=true                                                                         
_corrupted_rollback_segments=true                                                                        
_offline_rollback_segments=true                                                                          
                                                                                                         
SQL> shutdown immediate                                                                                  
ORA-01109: 数据库未打开                                                                                  
                                                                                                         
                                                                                                         
已经卸载数据库。                                                                                         
ORACLE 例程已经关闭。                                                                                    
SQL>                                                                                                     
SQL>                                                                                                     
SQL>                                                                                                     
SQL> startup pfile='c:/pfiletest.ora'                                                                    
ORACLE 例程已经启动。                                                                                    
                                                                                                         
Total System Global Area  135338868 bytes                                                                
Fixed Size                   453492 bytes                                                                
Variable Size             109051904 bytes                                                                
Database Buffers           25165824 bytes                                                                
Redo Buffers                 667648 bytes                                                                
数据库装载完毕。                                                                                         
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项                           
         
SQL> alter database open resetlogs;                                                                      
alter database open resetlogs                                                                            
*                                                                                                        
ERROR 位于第 1 行:                                                                                       
ORA-01092: ORACLE 例程终止。强行断开连接                                                                 
                                                                                                         
                                                                                                         
SQL>                                                                                                     
SQL>                                                                                                     
SQL> exit                                                                                                
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production                                             
With the Partitioning, OLAP andOracleData Mining options                                               
JServer Release 9.2.0.1.0 - Production中断开                                                             
                                                                                                         
C:/>sqlplus "/as sysdba"                                                                                 
                                                                                                         
SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 12月 31 14:03:09 2004                                 
                                                                                                         
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.                                      
                                                                                                         
已连接到空闲例程。                                                                                       
                                                                                                         
SQL> startup pfile='c:/pfiletest.ora'                                                                    
ORACLE 例程已经启动。                                                                                    
                                                                                                         
Total System Global Area  135338868 bytes                                                                
Fixed Size                   453492 bytes                                                                
Variable Size             109051904 bytes                                                                
Database Buffers           25165824 bytes                                                                
Redo Buffers                 667648 bytes                                                                
数据库装载完毕。                                                                                         
数据库已经打开。                                                                                         
SQL>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值