1) Loss of system DATAFILE
2) Loss of non-system DATAFILE
3) Loss of a DATAFILE without Backup
4) Loss of a CONTROLFILE
5) Loss of all the CONTROLFILE
6) Loss of REDOLOGs
7) Loss of CONTROLFILE, SPFILE, DATAFILEs and REDOLOGs
8) Loss of Tempfile
9) Block corruption of datafiles
1) Loss of system DATAFILE
rm -rf /u01/app/oracle/oradata/PROD1/system01.dbf
$rman target /
rman>validate database;
rman>shutdown abort
rman>startup mount
rman>restore datafile 1;
rman>recover datailfe 1;
rman>alter database open;
rman>validate database;
 
2) Loss of non-system DATAFILE
$rman target /
rman>validate database;
rman>list failure;
rman>advise failure;
rman>repair failure preview;
rman>repair failure;
rman>validate database;
 
3) Loss of a DATAFILE without Backup
$rman target /
rman>validate database;
rman>list failure;
rman>advise failure;
rman>repair failure preview;
rman>repair failure;
rman>validate database;
 
4) Loss of a CONTROLFILE
rm -rf /u01/app/oracle/oradata/PROD1/control01.ctl
sql>shutdown immediate
cp -r /u01/app/oracle/fast_recovery_area/PROD1/control02.ctl /u01/app/oracle/oradata/PROD1/control01.ctl 
sql>startup nomount
sql>alter system set control_files='/u01/app/oracle/oradata/PROD1/control01.ctl','/u01/app/oracle/fast_recovery_area/PROD1/control02.ctl' scope=spfile;
sql>startup force
sql>select name from v$instance;
 
5) Loss of all the CONTROLFILE

rm /u01/app/oracle/oradata/PROD1/control01.ctl

rm /u01/app/oracle/fast_recovery_area/PROD1/control02.ctl

alter system switch logfile;
shutdown abort
-- Run the following script from RMAN
sqlplus rman/rman@emrep
SQL> select * from rc_database; --获取该 DB 的 dbid(例如: 1583199105)
rman target / catalog rman/rman@emrep
RMAN> set dbid = 1583199105;
RMAN> startup nomount;
RMAN> restore controlfile from autobackup;
RMAN> sql 'alter database mount';
RMAN> restore database;
RMAN> recover database;
RMAN> sql 'alter database open resetlogs';
new incarnation of database registered in recovery catalog
RMAN> list incarnation;
 
6) Loss of REDOLOGs

shutdown immediate;

startup

sqlplus / as sysdba
startup mount;

-- Clear all the redo logfiles
alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile gorup 3;
alter database open;

 
7) Loss of CONTROLFILE, SPFILE, DATAFILEs and REDOLOGs
shutdown abort
sqlplus rman/rman@emrep
select * from rc_database;
RMAN>SET DBID=*****
RMAN>STARTUP NOMOUNT
 
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4G;
ALTER  SYSTEM  SET  DB_RECOVERY_FILE_DEST='/u01/app/oracle/fast_recovery_area'; 
 
RMAN>RESTORE SPFILE FROM AUTOBACKUP;
RMAN>SHUTDOWN IMMEDIATE
RMAN>STARTUP NOMOUNT
RMAN>RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN>ALTER DATABASE MOUNT;
 
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select thread#, resetlogs_change#, archived, sequence#, completion_time from v$archived_log
where archived='YES' AND COMPLETION_TIME = (SELECT MAX(COMPLETION_TIME)
FROM V$ARCHIVED_LOG WHERE ARCHIVED='YES');
 

-- In RMAN, recovered until the last ARCHIVE LOG (n+1) and open with RESETLOGS

-- If the last created archived redo log has sequence n,

-- then specify UNTIL SEQUENCE n+1 so that RMAN applies n and then stops.

 
restore database until sequence 3 thread 1;
recover database until sequence 3 thread 1;
alter database open resetlogs;
 
8) Loss of Tempfile
sql>shutdown immediate
sql>startup
oracle 11g丢失临时表空间文件,重启后会自动创建临时表空间文件
 
9) Block corruption of datafiles
$rman target / catalog rman/rman@emrep
RMAN> list failure;
RMAN> advise failure;
RMAN> repair failure;
-- Check the result
RMAN> list failure all;

rman恢复实践的更多相关文章

  1. RMAN备份与恢复实践(转)

    1   RMAN备份与恢复实践 1.1  备份 1.1.1 对数据库进行全备 使用backup database命令执行备份 RMAN> BACKUP DATABASE; 执行上述命令后将对目标 ...

  2. 在rman恢复中incarnation的概念

    摘要 本文主要介绍incarnation的由来,在rman恢复中的作用,以及相关rman恢复的注意事项. 概念说明 从10g开始,incarnation被引入,用于跨越resetlogs进行恢复,由此 ...

  3. RAC+asm通过rman恢复到单实例+asm

    1.恢复参数文件,并修改参数文件 参数文件指名几个最简单的就行,我的参数文件如下: 2.恢复控制文件,并启动数据库到mount 如果是把备份集从别的服务器拷贝到本地恢复的服务器的目录,使用下面的语句指 ...

  4. oracle rman恢复数据库 方式恢复到异地数据库

    目的:从某个环境中,获取相关文件,放到异地机器使用rman 恢复.   情况说明:XX系统使用的是oracle数据库,现已从服务器拉下来相关文件,依靠这些文件来早本地的测试机上恢复数据库,方便进行数据 ...

  5. Oracle RMAN 恢复控制文件到指定的路径

    Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...

  6. RMAN恢复目录

    是否使用RMAN恢复目录(Recovery Catalog 你可能从其他人或书上听过RMAN恢复目录(也有可能是其他名字,RMAN Recovery Catalog的翻译较多较杂,以下简称恢复目录), ...

  7. rman恢复误删除的一张表(不完全恢复)

    恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...

  8. RAC 之 RMAN 恢复

    RAC 下的RMAN 讲究的是备份和还原的策略要一致.备份策略的不同,会导致备份结果的分步不同,进而影响恢复的策略和步骤.一般情况下,恢复策略和备份策略必须是对应的.如果备份策略进行了修改,那么恢复也 ...

  9. RAC之RMAN恢复

    之前整理的RMAN 有关还原的文章: RMAN 系列(五) ---- RMAN 还原 与 恢复 http://blog.csdn.net/tianlesoftware/archive/2010/07/ ...

随机推荐

  1. oracle 11g 配置口令复杂度

    oracle 11g 配置口令复杂度 使用ORACLE自带的utlpwdmg.sql脚本来实现 找到本地的utlpwdmg.sql脚本 find / -name utlpwdmg.sql 查看 /ho ...

  2. python3 多线程批量验证POC模板

    #coding:utf-8 import threading,Queue,sys,os class RedisUN(threading.Thread): def __init__(self,queue ...

  3. Markdown特点

    前言 以前经常在 gitHub 中看到 .md 格式的文件,一直没有注意,也不明白为什么文本文档的后缀不是 .txt ,后来无意中看到了 Markdown,看到了用这个东西写得一些web界面等特别的规 ...

  4. Java基础教程——使用Eclipse快速编写Java输入输出代码

    Eclipse安装 IDE:Integrated Development Environment,集成开发环境.好比是全自动洗衣机. 此处使用[eclipse-jee-4.6-neon-3-win32 ...

  5. Java基础教程——Date类和Calendar类

    Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...

  6. sentinel配置

    登陆接口 QPS5,异常0.8,熔断10s 1.异地登陆同省逻辑降级security 2.可疑用户判断certification 3.是否是危险设备判断account 4.是否是自动化imei,ime ...

  7. 等待多线程完成的CountDownLatch(带示例)

    开始磨刀霍霍向多线程了,这期是 CountDownLatch 的一个小示例. 定义:CountDownLatch 允许一个或多个线程等待其他线程完成操作. 应用需求举例:假设有4个线程,A.B.C.D ...

  8. 《技术男征服美女HR》—Fiber、Coroutine和多线程那些事

    1.起点 我叫小白,坐在这间属于华夏国超一流互联网公司企鹅巴巴的小会议室里,等着技术面试官的到来. 令我感到不舒服的,是坐在我对面的那位HR美女一个劲儿的盯着我打量!虽说本人帅气,但是也不能这么毫无顾 ...

  9. ERP费用报销操作与设计--开源软件诞生31

    赤龙ERP费用报销讲解--第31篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...

  10. python装饰器基础及应用

    一.简介 装饰器是是修改其它函数功能的函数:其意义是让其他函数在不修改任何代码的前提下增加额外功能 二.数据类型 首先我们来看一段简单的代码: from types import MethodType ...