探索ORACLE之RMAN_07 数据库所有文件全部丢失恢复
作者:吴伟龙 Name:Prodence Woo
QQ:286507175 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>
分享到:
相关推荐
不错的oracle备份教程。 一、进入rman 二、rman命令知多少 三、rman备份演练初级篇 四、rman备份演练进阶篇 ...九、实战rman恢复(1)丢失控制文件的恢复 十、实战rman恢复(2)恢复到异机 11、rman笔记之综述
6.4 丢失控制文件的恢复 25 第七篇 实例:RMAN 备份 shell脚本 29 第八篇 恢复目录 32 7.1 创建恢复目录 33 7.2 注册目标数据库到恢复目录 33 7.3 查看RMAN恢复目录的数据 34 7.4 使用存储脚步 34 7.5向恢复目录中...
使用RMAN的备份及恢复一例-丢失所有控制文件 - Oracle Life.files 使用Rman进行不完全恢复 - Oracle Life.files 使用RMAN进行基于表空间的恢复 - Oracle Life.files 使用RMAN进行基于时间点的不完全恢复 - Oracle ...
关于oracle数据库文件丢失,主要包含: 参数文件,控制文件,联机日志文件(redo),归档日志文件(archive), 撤销文件(undo),数据文件(data)
在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数据库是数据库遇到故障,在恢复时候丢失部分数据的恢复③在linux下需要设置环境变量,即需要恢复的oracle数据库的实例名:export ORACLE_SID=orcl④当用...
在Oracle中,三大文件即控制文件,数据文件,日志文件的丢失与破坏都将需要使用还原或恢复来使数据库正常化。而RMAN还原与恢复是实现数据库完整性、可靠性必不可少的手段之一。还原简言之即是将所需的文件从备份中...
今天测试整理下物理备份Rman,也就是oracle的恢复管理器(Recovery Manager)。 毕竟逻辑备份是不能实现时间点恢复的,所以生产数据库肯定用物理备份来保证灾难时能够恢复。 二、 Rman热备份的前提条件:数据库需要...
1. 服务器崩溃,例如所有硬盘损坏、存储损坏,造成数据库崩溃,丢失所有数据 2. 有 datafile、archivelog、controlfile、spfile 的有效备份和全备后的Archivelog,不完全恢复整个数据库。 3. Controlfile 中包括所有...
要恢复这个表的数据, 首先要在AUL中运行SCAN EXTENT命令, 因为Segment Header被格式化了, 所以Extent Map也可能丢失, 而Scan Extent则将扫描整个数据文件并将Extent分配信息写入AULEXT.TXT文件: AUL> SCAN EXTENT ...
网盘文件永久链接 01指导 02指南 03 数据库派系介绍 04 oracle结构和4大文件 ...13 Oracle参数文件丢失恢复 14备份组网 15 simpana备份oracle实验 16 simpana实验 17 备份组网和备份介质和重删介绍 ................
10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库...
§7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用默认system系统表空间 94 §7.4 Oracle系统所在服务器的独立性 94 第9章 项目分析、设计与管理 94 §9.1 项目分析要点考虑 95 §9.1.1 对应用...
练习概览:恢复丢失的 TEMPFILE 和重做日志文件 4-19 5 数据库恢复 课程目标 5-2 恢复方法 5-3 用户管理的恢复: RECOVER 命令 5-4 RMAN 恢复: RESTORE 和 RECOVER 命令 5-5 使用 Oracle Enterprise ...
由于对数据库所做的全部改动就保存在日志文件中,如果因为包括介质失效在内的某种失效而导致数据库文件丢失的话,可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。所有已经提交的事务都可以查到。 ·...
练习概览:恢复丢失的 TEMPFILE 和重做日志文件 4-19 5 数据库恢复 课程目标 5-2 恢复方法 5-3 用户管理的恢复: RECOVER 命令 5-4 RMAN 恢复: RESTORE 和 RECOVER 命令 5-5 使用 Oracle Enterprise Manager ...
控制文件还告知了Oracle其他一些事情,如已发生检查点的有关信息、数据库名(必须和db_name参数匹配)、创建数据库的时间戳、归档重做日志的历史(有时这会让控制文件变大)、RMAN信息等。 控制文件应该通过硬件...
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...