当前位置:  数据库>oracle

Oracle使用备份控制文件恢复数据库

    来源: 互联网  发布时间:2017-05-23

    本文导语: 有备份的control file,但之后我做了ddl操作,导致当前的controlfile比备份的新,然后control file全部丢失,怎么用备份的controlfile来恢复数据库? 步骤1:检查当前redo和archive文件 sys@PAN>selectgroup#,sequence#,archived,status,first_change#from v$log; ...

有备份的control file,但之后我做了ddl操作,导致当前的controlfile比备份的新,然后control file全部丢失,怎么用备份的controlfile来恢复数据库?

步骤1:检查当前redo和archive文件

sys@PAN>selectgroup#,sequence#,archived,status,first_change#from v$log;

 

GROUP# SEQUENCE# ARC STATUS FIRST_CHANGE#

---------- ---------- --- ---------------- -------------

1 4 NO CURRENT 443342

2 2 YES INACTIVE 443335

3 3 YES INACTIVE 443338

 

sys@PAN>select namefrom v$archived_log where nameis not null;

 

NAME

--------------------------------------------------------------------------------

/u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_1_8wg0nhky_.arc

/u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_2_8wg0njog_.arc

/u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_3_8wg0nlhz_.arc

步骤2:冷备

步骤3:

alter database backup controlfileto trace;

生成一个trace文件,可以用于恢复控制文件,它是一个文本文件。

步骤4:

alter database backup controlfileto '/backup/pancontrol.bak';

备份当前的控制文件。

步骤5:

创建一个表空间,然后在此表空间里建表,加数据,目的是让controlfile改变成新的。

create tablespace ts_test02 datafile'/u01/oradata/pan/ts_test02_01.dbf' size10m;

sqlplus scott/tiger

create table tb_test02 (idint) tablespace ts_test02;

insert into tb_test02 values(1);

insert into tb_test02 values(2);

insert into tb_test02 values(3);

commit;

现在这些改变在哪个日志文件里呢?

sys@PAN>selectgroup#,sequence#,archived,statusfrom v$log;

 

GROUP# SEQUENCE# ARC STATUS

---------- ---------- --- ----------------

1 4 NO CURRENT

2 2 YES INACTIVE

3 3 YES INACTIVE

 

Elapsed:00:00:00.01

理论上在1号日志中,一会要用这个做恢复。

步骤6

删除当前controlfile

步骤7

shutdown abort

步骤8

用备份controlfile转储。

[Oracle@oracle11g pan]$ cp/backup/pancontrol.bak control01.ctl

[oracle@oracle11g pan]$ cp/backup/pancontrol.bak control02.ctl

步骤9

起库到mount,若到open会出错:

sys@PAN>alter databaseopen;

alter databaseopen

*

ERRORat line1:

ORA-01589: mustuse RESETLOGS or NORESETLOGSoption for databaseopen

步骤10

尝试使用备份的controlfile来恢复数据库。

recover database using backup controlfile;

结果:

sys@PAN>recover databaseusing backup controlfile;

ORA-00279: change443470 generated at06/23/201310:23:49 neededfor thread 1

ORA-00289: suggestion: /u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_4_%u_.arc

ORA-00280: change443470 for thread1 is in sequence #4

Specify log:{=suggested| filename | AUTO| CANCEL}

 

看下这个目录下有没有这个归档日志,发现没有。也就是说数据库会先找你的归档日志来恢复,但我们知道以前的那些DDL操作被记录到1号联机日志里了,所以我要用1号redo日志来做恢复。

 

继续:

recover database using backup controlfile;

ORA-00279: change443470 generated at06/23/201310:23:49 neededfor thread 1

ORA-00289: suggestion: /u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_4_%u_.arc

ORA-00280: change443470 for thread1 is in sequence #4

Specifylog:{=suggested| filename | AUTO| CANCEL}

/u01/oradata/pan/redo01.log

ORA-00283: recoverysession canceled due to errors

ORA-01244: unnamed datafile(s) added to control fileby media recovery

ORA-01110:data file9:'/u01/oradata/pan/ts_test02_01.dbf'

ORA-01112: media recoverynot started

又出错了!它说没有这个文件,因为日志里记录着ts_test02_01.dbf,但控制文件里却没有,好的,现在我查看下控制文件里那个文件叫什么。

sys@PAN>selectfile#,status,namefrom v$datafile;

 

FILE# STATUS NAME

---------- ---------------------------------------------------------------------------------------

1 SYSTEM /u01/oradata/pan/system01.dbf

2 ONLINE /u01/oradata/pan/sysaux01.dbf

3 ONLINE /u01/oradata/pan/lxtbs01.dbf

4 ONLINE /u01/oradata/pan/users01.dbf

5 ONLINE /u01/oradata/pan/undotbs02.dbf

6 ONLINE /u01/oradata/pan/ts_test01.dbf

7 ONLINE /u01/oradata/pan/ts_readonly01.dbf

8 ONLINE /u01/oradata/pan/app2_01.dbf

9 RECOVER /u01/oracle/dbs/UNNAMED00009

 

9 rows selected.

现在明白了,控制文件里的这个文件名为“/u01/oracle/dbs/UNNAMED00009”,我把它先重命名成正确的。

sys@PAN>alter databaserename file'/u01/oracle/dbs/UNNAMED00009'

2 to'/u01/oradata/pan/ts_test02_01.dbf';

现在再一次恢复,使用1号redo日志。

recover database using backup controlfile;

ORA-00279: change443687 generated at06/23/201310:27:38 neededfor thread 1

ORA-00289: suggestion: /u01/flash_recovery_area/PAN/archivelog/2013_06_23/o1_mf_1_4_%u_.arc

ORA-00280: change443687 for thread1 is in sequence #4

Specify log:{=suggested| filename | AUTO| CANCEL}

/u01/oradata/pan/redo01.log

Log applied.

Media recovery complete.

果��,恢复成功!

步骤11

alter databaseopen resetlogs;

步骤12 冷备


    
 
 

您可能感兴趣的文章:

  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • Oracle数据库设置任务计划备份一周的备份记录
  • Oracle数据库备份和恢复工具 RMan
  • oracle10g 数据备份与导入
  • aix下自动备份oracle 的输出日志问题,急!!
  • hp unix下备份oracle表的问题
  • linux小白提问linux备份oracle数据库的问题
  • oracle不能自动备份
  • Oracle数据库逻辑备份的SH文件
  • Linux环境中Oracle数据导入与导出备份操作
  • oracle数据库备份急???????????
  • oracle定时备份压缩的实现步骤
  • Unix系统下如何将oracle数据库备份
  • 详解如何应用改变跟踪技术加速Oracle递增备份
  • Linux环境中Oracle数据导入与导出备份操作 iis7站长之家
  • 实战Oracle数据库备份与恢复
  • Linux下实现自动备份Oracle数据库
  • oracle备份恢复的具体方法
  • 利用windows任务计划实现oracle的定期备份
  • Oracle11g备份和恢复功能的提高
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在HP Unix 下Oracle的控制和管理
  • Oracle控制文件多元化处理
  • Oracle10g 控制台启动端口修改
  • Oracle中存取控制介绍
  • Oracle并购SUN应放松对MySQL控制
  • Oracle中虚拟专用数据控制方法研究
  • Linux平台下启动oracle 11g EM控制台
  • Oracle 入门之控制文件multiplex
  • 手工创建Oracle数据库控制文件的策略
  • Oracle备份的控制文件和新的数据文件
  • Oracle控制文件的损坏或完全丢失的恢复办法
  • Oracle数据操作和控制语言详解
  • DB2和 Oracle的并发控制(锁)的比较
  • Oracle中基于hint的3种执行计划控制方法详细介绍
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,