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

探索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>

分享到:
评论

相关推荐

    oracle_9i_rman_备份与恢复技术

    Oracle Recovery Manager (RMAN) 是一种全面的数据保护工具,用于备份、恢复和灾难恢复Oracle数据库。本篇文章将详细介绍Oracle 9i版本中RMAN的备份与恢复技术,包括RMAN的基本配置、备份策略、数据恢复流程以及高级...

    rman_xttconvert_v3.zip Oracle XTTS 必备工具 mos上下载的xtts迁移脚本

    Oracle XTTS(eXternal Table Transport Service)是Oracle数据库提供的一种高级数据迁移工具,它利用外部表技术实现大规模数据的快速迁移。XTTS在Oracle 12c及更高版本中引入,尤其在Oracle 19c中得到了进一步的...

    Oracle_RMAN_1

    Oracle RMAN,全称为Recovery Manager,是Oracle数据库系统中一个强大的备份和恢复工具。它提供了全面的数据保护功能,包括数据库备份、增量备份、表空间备份、归档日志管理以及复杂的恢复操作。Oracle RMAN_1这个...

    oracle_9i_rman_backup_restore.rar

    Oracle 9i RMAN( Recovery Manager)是Oracle数据库系统中用于数据备份和恢复的重要工具。在Oracle 9i版本中,RMAN引入了许多增强功能,旨在提供更高效、可靠的数据库保护策略。以下是对RMAN备份与恢复技术的详细...

    rman_xttconvert.rar

    RMAN是Oracle数据库自带的一个强大备份和恢复工具,而`xttconvert`则增强了RMAN的功能,使其能够处理跨平台的数据转换任务。 在数据库迁移过程中,`rman_xttconvert`主要执行以下几项关键任务: 1. **数据文件格式...

    Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份.pdf

    Oracle 11g R2 的 RMAN (Recovery Manager) 是 Oracle 数据库管理系统中的一个关键工具,主要用于数据库的备份和恢复。RMAN 提供了一种高效且灵活的方式来管理和保护数据库,确保在数据丢失或系统故障时能够快速恢复...

    Oracle数据库RMAN备份与恢复.pdf

    Oracle数据库RMAN备份与恢复 Oracle数据库提供了物理备份和逻辑备份两种方式,RMAN(Recovery Manager)技术是DBA常用的备份技术。RMAN备份特点是跳过未使用的数据块,使用Oracle特有的二进制压缩模式,能够最大...

    oracle_rman_best_practice_presentation

    Oracle Recovery Manager (RMAN) 是一款强大的工具,用于备份、恢复以及灾难恢复Oracle数据库。本次演讲旨在提供关于Oracle Database 10g备份与恢复的最佳实践指南。 #### 二、备份与恢复考虑因素 1. **评估数据...

    ORACLE数据库RMAN备份恢复[参照].pdf

    ORACLE 数据库 RMAN 备份恢复 ORACLE 数据库 RMAN 备份恢复是指使用 ORACLE 的 Recovery Manager(RMAN)工具对数据库进行备份和恢复的过程。RMAN 是 ORACLE 数据库管理系统中的一种备份和恢复工具,能够对数据库...

    Oracle8i_9i数据库基础

    6. **数据库备份与恢复**:Oracle的RMAN(恢复管理器)是备份和恢复的主要工具,资料会涵盖完整备份、增量备份和如何在数据丢失时进行恢复。 7. **安全性**:包括用户管理、权限和角色的分配,以及如何使用AUDIT...

    oracle数据库RMAN备份方案

    本方案通过使用 Oracle 的 RMAN 工具,提供了一个完整的备份和恢复解决方案,涵盖了数据库的备份、恢复和维护等方面。 一、背景 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业和领域。然而,...

    Oracle10g_RMAN备份恢复案例

    根据提供的文件信息,本文将详细解释Oracle 10g RMAN(Recovery Manager)备份与恢复的相关知识点。主要内容包括RMAN的基本概念、Oracle 10g与9i在备份策略上的区别、具体备份操作步骤以及如何进行恢复操作。 ### ...

    顶级DBA漫谈Oracle Rman备份与恢复

    备份恢复是DBA管理员的基本技能之一,旨在保护数据库中的数据免受意外损坏或丢失。 Oracle RMAN提供了强大的备份和恢复功能,帮助DBA管理员快速恢复数据库。 备份恢复分类 根据备份的方式和目的,备份恢复可以分为...

    Oracle 10g RAC生产数据库RMAN方式恢复到异地单机数据库全程记录.doc

    - 首先,从源端RAC数据库的每个节点执行RMAN备份,并将所有备份文件复制到恢复服务器。这里使用`scp`命令进行文件传输,确保文件完整传输的关键是添加`sleep`命令以避免中断。例如,创建一个名为`scp.sh`的脚本,...

    oracle_12.2.0.1_green_non-cdb_v5-step9_rman_foreign-restore.zip

    在这个“oracle_12.2.0.1_green_non-cdb_v5-step9_rman_foreign-restore.zip”压缩包中,包含了一系列与Oracle数据库恢复相关的脚本和配置文件,特别关注了RMAN(恢复管理器)的功能,这在数据库故障恢复和备份策略...

    Oracle RMAN异机不完全恢复

    ### Oracle RMAN 异机不完全恢复 #### 实验背景 在实际的数据库管理工作中,可能会遇到因误操作导致的数据丢失或损坏的情况。在这种情况下,如何有效地利用备份数据完成数据库的恢复工作至关重要。本实验模拟了一...

    丢失全部数据库文件及全部redolog的恢复方法,可用作RMAN数据库迁移.doc

    在Oracle数据库环境中,当面临丢失全部数据库文件及所有redo log文件的情况时,恢复过程变得非常复杂,因为这涉及到了数据库的全部数据文件、重做日志文件、控制文件甚至SPFILE。在这种极端情况下,通常只能依赖于...

    RMAN恢復数据库到指定時間點

    2. **恢复数据文件**:RMAN会根据备份集恢复所有的数据文件到指定的时间点。 3. **恢复控制文件和参数文件**:如果有必要,RMAN也会恢复这些文件。 4. **数据文件的恢复与恢复后检查**:每个数据文件都会被恢复,并...

Global site tag (gtag.js) - Google Analytics