探索ORACLE不完全恢复之--基于备份控制文件恢复

探索ORACLE不完全恢复之--基于备份控制文件恢复

作者:吴伟龙   Name:Prodence Woo

QQ:286507175  msn:hapy-wuweilong@hotmail.com



基于备份控制文件(unsing backup controlfile)的恢复

主要适用于:基于备份控制文件的恢复只要适用于以下情况:表空间被意外删除;所有控制文件全部损坏。

 

1、关闭数据库执行一次全库冷备份:

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

/DBBak2/oradata/WWL/users01.dbf

/DBBak2/oradata/WWL/sysaux01.dbf

/DBBak2/oradata/WWL/undotbs01.dbf

/DBBak2/oradata/WWL/system01.dbf

/DBBak2/oradata/WWL/WWL001.dbf

/DBBak2/oradata/WWL/WWL002.dbf

/DBBak2/oradata/WWL/WWL003.dbf

 

7 rowsselected.

 

SQL> shutdown immediate

Databaseclosed.

Databasedismounted.

ORACLEinstance shut down.

 

SQL> !mkdir /DBBak2/oradata/WWL2

 

SQL> !cp /DBBak2/oradata/WWL/* /DBBak2/oradata/WWL2/

 

通过如上的操作数据库现在已经有了一个冷备份了,里面包含另外wwl表空间,现在模拟用户误删除了wwl表空间。

 

SQL> startup

ORACLEinstance started.

TotalSystem Global Area  100663296 bytes

FixedSize                  1217884 bytes

VariableSize              88083108 bytes

DatabaseBuffers            8388608 bytes

RedoBuffers                2973696 bytes

Databasemounted.

Databaseopened.

SQL>

 

模拟删除表空间

SQL> drop tablespace wwl including contents;

Tablespacedropped.

 

    当前的控制文件中已经不包含wwl表空间了,但是我们之前冷备份的控制文件中还是包含的,所以必须使用以前的控制文件来进行wwl表空间的恢复。

 

还原之前备份的数据文件:

SQL> shutdown immediate

Databaseclosed.

Databasedismounted.

ORACLEinstance shut down.

 

 

SQL> !rm -rf /DBBak2/oradata/WWL/*.dbf

 

SQL> !rm -rf /DBBak2/oradata/WWL/*.ctl

 

SQL> !cp /DBBak2/oradata/WWL2/*.dbf /DBBak2/oradata/WWL/

 

SQL> !cp /DBBak2/oradata/WWL2/*.ctl /DBBak2/oradata/WWL/

 

SQL> 

 

使用控制文件进行恢复:

SQL> startup

ORACLEinstance started.

 

TotalSystem Global Area  100663296 bytes

FixedSize                  1217884 bytes

VariableSize              88083108 bytes

DatabaseBuffers            8388608 bytes

RedoBuffers                2973696 bytes

Databasemounted.

ORA-00338:log 5 of thread 1 is more recent than control file

ORA-00312:online log 5 thread 1: '/DBBak2/oradata/WWL/redo5a.log'

ORA-00312:online log 5 thread 1: '/DBBak2/oradata/WWL/redo5b.log'

 

 

SQL> recover database using backup controlfile until cancel;

ORA-00279:change 1782560 generated at 07/31/2012 14:37:24 needed for thread 1

ORA-00289:suggestion : /DBSoft/product/10.2.0/db_1/dbs/arch/1_3_790085314.dbf

ORA-00280:change 1782560 for thread 1 is in sequence #3

 

 

Specifylog: {<RET>=suggested | filename | AUTO | CANCEL}

cancel

Mediarecovery cancelled.

 

SQL> alter database open resetlogs;

 

Databasealtered.

 

SQL>

 

至此已经恢复成功。

时间: 2024-08-03 08:59:26

探索ORACLE不完全恢复之--基于备份控制文件恢复的相关文章

探索ORACLE不完全恢复之--基于cancel恢复 第一篇

探索ORACLE不完全恢复之--基于cancel恢复 第一篇 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com 基于cancel的不一致性恢复(归档存在) 第一篇                 基于取消的恢复只适用于以下情况:归档日志丢失导致完全恢复失败:丢失了数据文件和未归档的重做日志(联机重做日志):   1.先关闭数据库,执行一次全库冷备份.   SQL> selectfile_name fro

Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    Oracle 基于备份控制文件的恢复(unsing backup controlfile)     有关RMAN的备份恢复与管理请参考     RMAN 概述及其体系结构     RMAN 配置.监控与管理     RMAN 备份详解     RMAN 还原与恢复     RMAN catalog 的创建和使用     基于catalog 创建RMAN存储脚本     基于catalog 的RMAN 备份与恢复     RMAN 备份路径困惑     使用RMAN实现异机备份恢复(WIN

探索ORACLE不完全恢复之--基于SCN恢复 第一篇

探索ORACLE不完全恢复之--基于时间恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com 基于SCN恢复 第一篇 1.在删除数据之前,察看下SCN号是多少: SQL> col name format a45 SQL> set line 300 SQL> select name,checkpoint_change# from v$datafile_header;   NAME        

Oracle基于备份控制文件的恢复

通常在当前控制文件丢失,或者当前的控制文件与需要恢复的控制文件不一致的情况下,我们需要重新创建一个控制文件或者使用 unsingbackup controlfile方式来恢复控制文件.说简单点,只要是备份的控制文件与当前的控制文件不一致进行恢复数据库,就需要使用到 unsingbackup controlfile方式,而一旦使用了该方式,则需使用resetlgos选项来打开数据库. 一.基于备份控制文件的恢复注意事项(无论是否使用恢复目录catalog) 1.即使没有数据文件需要还原,当使用un

探索ORACLE之RMAN_04非一致性备份

探索ORACLE之RMAN_04非一致性备份 作者:吴伟龙   在上一篇博文中提到了数据库的一致性备份,操作非常的简单.只需要一条很短的命令即可完成,但是如果要创建一正式库的备份,一般不建议用一致性备份,也不建议用很简单的名来完成.而是更多的采用脚本实现非一致性备份,这样将可通过backup+archive log+redo有效的将数据恢复到最近一次改变的状态,可以达到数据的丢失最小化. 创建非一致性备份  创建非一致性备份数据库必须处于归档(archivelog)模式,因为非一致性备份的数据库

探索ORACLE之RMAN_07整个业务表空间丢失恢复

探索ORACLE之RMAN_07整个业务表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com   1.     整个业务表空间丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 2.1 删除wwl表空间的所有数据文件 [root@wwldb ~]# cd /DBData/WWL/ [root@wwldb WWL]# rm -rf wwl* [root@wwldb WWL]#

备份控制文件

控制文件用于记录和维护数据库,当恢复数据库时,服务器进程和后台进程需要从控制文件中读取各种与备份相关的信息.如果控制文件损坏,则会导致这些信息丢失.尽管多元化的控制文件可以防止控制文件损坏,但因控制文件的重要性,所以应当定期的备份控制文件.当数据库配置发生变化时,一定要备份控制文件. 涉及到改变数据库配置的命令一般以 alter database .ceate tablespace,alter tablespace ,drop tablespace 等命令. 第一 建立控制文件的副本. SQL>

Listen Software解决方案 “How To” 系列3:备份控制文件

备份|解决|控制 Listen Software解决方案 "How To" 系列3:备份控制文件       备份控制文件为二进制的版本:             ALTER DATABASE BACKUP CONTROLFILE TO   'd:\orant\control_backup'       备份控制文件为文本的版本:           ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

[20170213]现有控制文件恢复到以前时间点

[20170213]现有控制文件恢复到以前时间点.txt --如果使用现有控制文件是否可以恢复以前的时间点?假设这个时间点之后还增加了数据文件,这样新的控制文件里面有记录. --恢复后是什么情况呢? 通过真实的测试来说明问题. --一般我做全备份完成后会在脚本最后加入备份当前控制文件的命令,如果我需要恢复,我会选择这个控制文件来恢复. --而上面的情况呢? 1.环境: SYS@book> @ &r/ver1 PORT_STRING                    VERSION