`
sony-soft
  • 浏览: 1026720 次
文章分类
社区版块
存档分类
最新评论

探索ORACLE之RMAN_07 数据库所有文件全部丢失恢复

 
阅读更多

探索ORACLERMAN_07 数据库所有文件全部丢失恢复

作者:吴伟龙 NameProdence Woo

QQ286507175 msn:hapy-wuweilong@hotmail.com

介于Rman恢复的自动性,我们刚才对数据库的全库,单表空间,数据文件控制文件和参数文件都做了备份,这些备份的内容是数据库运行不可缺少的必要元素,通常情况下我们在生产库中只需要备份这些内容即可。有了这些备份,即使数据库的的任何信息丢失,我们都可以得以恢复使得数据库的正常运行,当然如果我们将archivelog 也备份,当然就会更好了,一般情况下这个可以不用备份,备份archivelog占用空间非常大。如果有海量的储存,当然备份也无妨咯。

Egg:

删除数据库的所有文件,仅保留redo日志和archivelog文件

删除控制文件:

[oracle@wwldb WWL]$ pwd

/DBData/oradata/WWL

[oracle@wwldb WWL]$ ls

control02.ctl control03.ctl

[oracle@wwldb WWL]$ rm -rf *.ctl

[oracle@wwldbWWL]$

[oracle@wwldb WWL]$ pwd

/DBSoft/oradata/WWL

[oracle@wwldb WWL]$ ls

control01.ctl

[oracle@wwldb WWL]$ rm -rfcontrol01.ctl

[oracle@wwldbWWL]$

删除数据文件:

[oracle@wwldb WWL]$ ls

redo01.log redo02.log redo03.logsysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf

[oracle@wwldb WWL]$ rm -rf *.dbf

[oracle@wwldb WWL]$ ls

redo01.log redo02.log redo03.log

[oracle@wwldbWWL]$

删除参数文件:

[oracle@wwldb dbs]$ cd$ORACLE_HOME/dbs

[oracle@wwldb dbs]$ rm -rfspfileWWL.ora

[oracle@wwldbdbs]$

执行大恢复:

1、现在数据库是关闭状态

[oracle@wwldb dbs]$ ps -ef|grep ora

root 2910 2888 0 10:02 ? 00:00:15hald-addon-storage: polling/dev/hdc

root 28954 3478 0 11:38 pts/100:00:00 su - oracle

oracle 28955 28954 0 11:38 pts/100:00:00 -bash

root 29361 3438 0 13:41 pts/200:00:00 su - oracle

oracle 29362 29361 0 13:41 pts/200:00:01 -bash

oracle 29988 29362 0 16:06 pts/200:00:00sqlplus as sysdba

oracle 30102 28955 0 17:03 pts/100:00:00 ps -ef

oracle 30103 28955 0 17:03 pts/100:00:00 grep ora

[oracle@wwldbdbs]$

2、要恢复首先要将数据库启动到mount状态才能恢复

[oracle@wwldb dbs]$ sqlplus / assysdba

SQL*Plus:Release 10.2.0.1.0 -Production on Wed May 23 17:03:42 2012

Copyright (c)1982, 2005, Oracle. Allrights reserved.

Connected to anidle instance.

SQL> startup

ORA-01078:failure in processingsystem parameters

LRM-00109: couldnot open parameterfile '/DBSoft/product/10.2.0/db_1/dbs/initWWL.ora'

SQL>

3、因为数据库没有参数文件,起不来,只能能启动到nomount状态

[oracle@wwldb dbs]$ rman target /

RecoveryManager: Release 10.2.0.1.0- Production on Wed May 23 17:06:32 2012

Copyright (c)1982, 2005, Oracle. Allrights reserved.

connected totarget database (notstarted)

RMAN> startup force nomount;

startup failed:ORA-01078: failure inprocessing system parameters

LRM-00109: couldnot open parameterfile '/DBSoft/product/10.2.0/db_1/dbs/initWWL.ora'

starting Oracleinstance withoutparameter file for retrival of spfile

Oracle instancestarted

Total System GlobalArea 159383552bytes

Fixed Size 1218244 bytes

VariableSize 58722620 bytes

DatabaseBuffers 92274688 bytes

RedoBuffers 7168000 bytes

RMAN>

4、开始恢复参数文件,只有恢复了参数文件和控制文件数据库才能到mount状态来恢复数据文件:

RMAN> restorespfile fromautobackup;

Starting restoreat 23-MAY-12

using targetdatabase control fileinstead of recovery catalog

allocatedchannel: ORA_DISK_1

channelORA_DISK_1: sid=36devtype=DISK

RMAN-00571:===========================================================

RMAN-00569:=============== ERRORMESSAGE STACK FOLLOWS ===============

RMAN-00571:===========================================================

RMAN-03002:failure of restorecommand at 05/23/2012 17:08:42

RMAN-06495: mustexplicitly specifyDBID with SET DBID command

RMAN>

注意:这里有问题了,spfile无法恢复,必须指定DBID。我记得在每次登录到rman的时候都会显示一个数据库的DBID,但是为什么这里要我们指定DBID呢???原因很简单,因为我们登录RMAN的时候,数据库已经宕机了,而且参数文件,控制文件,数据文件都没有了,它到哪里去找DBID;所以需要我们手动来指定,问题是现在既然登录的时候不显示,我们也不知道在哪里呀,如下:

[oracle@wwldb dbs]$ rman target /

Recovery Manager: Release 10.2.0.1.0- Production on WedMay 23 17:06:32 2012

Copyright (c) 1982, 2005, Oracle. All rightsreserved.

connected to targetdatabase (not started)

没关系的因为我们的控制文件做了自动备份,在自动备份的控制文件里面已经存在了DBID,我们现在去找找吧,默认就备份在如下位置:

[oracle@wwldb dbs]$ pwd

/DBSoft/product/10.2.0/db_1/dbs

[oracle@wwldb dbs]$ ls

c-5520179-20120518-01c-5520179-20120523-01 hc_WWL.dat lkWWL

其中5520179就是DBID了,我们只需要通过指定这个DBID,就可以将spfile恢复并将数据库启动到mount状态。

RMAN> set DBID=5520179

executingcommand: SET DBID

RMAN> restore spfile fromautobackup;

Starting restoreat 23-MAY-12

using targetdatabase control fileinstead of recovery catalog

allocatedchannel: ORA_DISK_1

channelORA_DISK_1: sid=39devtype=DISK

channelORA_DISK_1: looking forautobackup on day: 20120523

channelORA_DISK_1: autobackup found:c-5520179-20120523-04

channelORA_DISK_1: SPFILE restorefrom autobackup complete

Finished restoreat 23-MAY-12

RMAN>

5、恢复控制文件

RMAN> restore controlfile fromautobackup;

Starting restoreat 23-MAY-12

using channelORA_DISK_1

channelORA_DISK_1: looking forautobackup on day: 20120523

channelORA_DISK_1: autobackup found:c-5520179-20120523-04

channelORA_DISK_1: control filerestore from autobackup complete

outputfilename=/DBSoft/product/10.2.0/db_1/dbs/cntrlWWL.dbf

Finished restoreat 23-MAY-12

RMAN>

重启数据库到mount状态---很重要

SQL> startup mount;

ORACLE instancestarted.

Total SystemGlobal Area 285212672bytes

Fixed Size 1218968 bytes

VariableSize 79693416 bytes

DatabaseBuffers 197132288 bytes

RedoBuffers 7168000 bytes

Databasemounted.

SQL> exit

Disconnectedfrom Oracle Database 10gEnterprise Edition Release 10.2.0.1.0 - Production

With thePartitioning, OLAP and DataMining options

[oracle@wwldb dbs]$ rman target /

RecoveryManager: Release 10.2.0.1.0- Production on Wed May 23 19:04:15 2012

Copyright (c)1982, 2005, Oracle. Allrights reserved.

connected totarget database: WWL(DBID=5520179, not open)

注意:详细参考如下:

http://blog.csdn.net/wuweilong/article/details/7596056

http://space.itpub.net/?uid-20674423-action-viewspace-itemid-730717

6、恢复数据库其它的数据文件:

RMAN> restore database;

Starting restoreat 23-MAY-12

using targetdatabase control fileinstead of recovery catalog

allocatedchannel: ORA_DISK_1

channelORA_DISK_1: sid=156devtype=DISK

channelORA_DISK_1: starting datafilebackupset restore

channelORA_DISK_1: specifying datafile(s)to restore from backup set

restoringdatafile 00004 to/DBData/WWL/users01.dbf

channelORA_DISK_1: reading frombackup piece /DBBak/bak_WWL_05_23_0cnbn2a3_1_1

channelORA_DISK_1: restored backuppiece 1

piecehandle=/DBBak/bak_WWL_05_23_0cnbn2a3_1_1tag=TAG20120523T133147

channelORA_DISK_1: restore complete,elapsed time: 00:00:02

channelORA_DISK_1: starting datafilebackupset restore

channelORA_DISK_1: specifyingdatafile(s) to restore from backup set

restoringdatafile 00001 to/DBData/WWL/system01.dbf

restoringdatafile 00002 to/DBData/WWL/undotbs01.dbf

restoringdatafile 00003 to/DBData/WWL/sysaux01.dbf

channelORA_DISK_1: reading frombackup piece /DBBak/bak_WWL_05_23_0enbn2bk_1_1

channelORA_DISK_1: restored backuppiece 1

piecehandle=/DBBak/bak_WWL_05_23_0enbn2bk_1_1tag=TAG20120523T133235

channelORA_DISK_1: restore complete,elapsed time: 00:01:05

Finished restoreat 23-MAY-12

RMAN>

RMAN> recover database;

Starting recoverat 23-MAY-12

using channel ORA_DISK_1

starting mediarecovery

media recovery complete,elapsedtime: 00:00:05

Finished recoverat 23-MAY-12

RMAN> alter database open; ---------我们看到数据库已经打开了处于open状态

database opened

SQL> select instance_name,statusfrom v$instance;

INSTANCE_NAME STATUS

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

WWL OPEN

SQL>

分享到:
评论

相关推荐

    一步一步学RMAN oracle备份RMAN使用教程

    不错的oracle备份教程。 一、进入rman 二、rman命令知多少 三、rman备份演练初级篇 四、rman备份演练进阶篇 ...九、实战rman恢复(1)丢失控制文件的恢复 十、实战rman恢复(2)恢复到异机 11、rman笔记之综述

    RMAN备份与恢复

    6.4 丢失控制文件的恢复 25 第七篇 实例:RMAN 备份 shell脚本 29 第八篇 恢复目录 32 7.1 创建恢复目录 33 7.2 注册目标数据库到恢复目录 33 7.3 查看RMAN恢复目录的数据 34 7.4 使用存储脚步 34 7.5向恢复目录中...

    oracle备份及Oracle彻底删除大全

    使用RMAN的备份及恢复一例-丢失所有控制文件 - Oracle Life.files 使用Rman进行不完全恢复 - Oracle Life.files 使用RMAN进行基于表空间的恢复 - Oracle Life.files 使用RMAN进行基于时间点的不完全恢复 - Oracle ...

    RMAN 关于各种文件丢失后的恢复

    关于oracle数据库文件丢失,主要包含: 参数文件,控制文件,联机日志文件(redo),归档日志文件(archive), 撤销文件(undo),数据文件(data)

    rman恢复方案和oracle异机恢复

    在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数据库是数据库遇到故障,在恢复时候丢失部分数据的恢复③在linux下需要设置环境变量,即需要恢复的oracle数据库的实例名:export ORACLE_SID=orcl④当用...

    RMAN 还原与恢复

    在Oracle中,三大文件即控制文件,数据文件,日志文件的丢失与破坏都将需要使用还原或恢复来使数据库正常化。而RMAN还原与恢复是实现数据库完整性、可靠性必不可少的手段之一。还原简言之即是将所需的文件从备份中...

    RMAN测试演练即讲解

    今天测试整理下物理备份Rman,也就是oracle的恢复管理器(Recovery Manager)。 毕竟逻辑备份是不能实现时间点恢复的,所以生产数据库肯定用物理备份来保证灾难时能够恢复。 二、 Rman热备份的前提条件:数据库需要...

    Oracle9i灾难恢复详细步骤 pdf

    1. 服务器崩溃,例如所有硬盘损坏、存储损坏,造成数据库崩溃,丢失所有数据 2. 有 datafile、archivelog、controlfile、spfile 的有效备份和全备后的Archivelog,不完全恢复整个数据库。 3. Controlfile 中包括所有...

    oracle恢复工具-FY_Recover_Data

    要恢复这个表的数据, 首先要在AUL中运行SCAN EXTENT命令, 因为Segment Header被格式化了, 所以Extent Map也可能丢失, 而Scan Extent则将扫描整个数据文件并将Extent分配信息写入AULEXT.TXT文件: AUL> SCAN EXTENT ...

    存储HCIE-Storage视频教程64讲.zip

    网盘文件永久链接 01指导 02指南 03 数据库派系介绍 04 oracle结构和4大文件 ...13 Oracle参数文件丢失恢复 14备份组网 15 simpana备份oracle实验 16 simpana实验 17 备份组网和备份介质和重删介绍 ................

    Oracle日常维护故障定位故障排除

    10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库...

    ORACLE9i_优化设计与系统调整

    §7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用默认system系统表空间 94 §7.4 Oracle系统所在服务器的独立性 94 第9章 项目分析、设计与管理 94 §9.1 项目分析要点考虑 95 §9.1.1 对应用...

    oracle10g课堂练习II(1)

    练习概览:恢复丢失的 TEMPFILE 和重做日志文件 4-19 5 数据库恢复 课程目标 5-2 恢复方法 5-3 用户管理的恢复: RECOVER 命令 5-4 RMAN 恢复: RESTORE 和 RECOVER 命令 5-5 使用 Oracle Enterprise ...

    ORACLE 常用手册导入导出

    由于对数据库所做的全部改动就保存在日志文件中,如果因为包括介质失效在内的某种失效而导致数据库文件丢失的话,可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。所有已经提交的事务都可以查到。 ·...

    oracle10g课堂练习II(2)

    练习概览:恢复丢失的 TEMPFILE 和重做日志文件 4-19 5 数据库恢复 课程目标 5-2 恢复方法 5-3 用户管理的恢复: RECOVER 命令 5-4 RMAN 恢复: RESTORE 和 RECOVER 命令 5-5 使用 Oracle Enterprise Manager ...

    Oracle 11g控制文件全部丢失从零开始重建控制文件

    控制文件还告知了Oracle其他一些事情,如已发生检查点的有关信息、数据库名(必须和db_name参数匹配)、创建数据库的时间戳、归档重做日志的历史(有时这会让控制文件变大)、RMAN信息等。 控制文件应该通过硬件...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

Global site tag (gtag.js) - Google Analytics