灾难恢复包括在整个目标数据库,恢复目录数据库,所有当前的控制文件,所有在线redo日志文件和所有参数文件丢失之后还原和恢复目标数据库。

1.灾难恢复的前提条件

使用RMAN执行灾难恢复之前必须满足某些前提条件。

必须拥有以下:
1)所有数据文件的备份
2)在你计划还原的最旧的备份的创建时间之后生成的所有归档redo日志
3)至少一个控制文件自动备份
4)数据库的DBID的记录

2.在灾难之后恢复数据库

假设数据库运行的Linux服务器已经损坏不能修复。幸运地你备份了数据库到Oracle Secure Backup和拥有的磁带是可用的。你可以通过这些备份恢复数据库。

灾难恢复的过程类似于在NOCATALOG模式下使用备份的控制文件恢复数据库的过程。如果还原数据库到一台新主机,那么检查“在新主机上还原数据库”章节中描述的考虑因素。

这个场景假设以下条件:
1)Oracle数据库已经安装在新主机上。
2)使用与旧主机相同的目录结构还原数据库到一台新Linux主机上。
3)你有一个磁带驱动器包含所有数据文件,到日志1124的归档redo日志,控制文件的自动备份和spfile的备份。
4)数据库没有使用恢复目录。

在新主机上恢复数据库:
1)确保已经满足灾难恢复的前提条件。

2)如果可能,还原或重建所有相关的网络文件比如tnsnames.ora和listener.ora和密码文件。

3)启动RMAN和连接到目标数据库。
在这个阶段,没有初始化参数文件存在。如果已经设置ORACLE_SID和ORACLE_HOME,那么可以使用操作系统认证作为SYSDBA或SYSBACKUP连接。

4)使用SET DBID指定目标数据库的DBID。
SET DBID 676549873;

5)运行STARTUP NOMOUNT命令。
当spfile不存在,RMAN尝试使用虚设的spfile启动实例。

6)分配通道到介质管理器,从自动备份中还原spfile。

RUN
{
    ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
    RESTORE SPFILE FROM AUTOBACKUP;
}

7)使用还原的spfile重启实例。
STARTUP FORCE NOMOUNT;

8)编写一个命令文件来执行还原和恢复操作,然后执行这个命令文件。命令文件必须做以下操作:
a.分配通道给介质管理器。
b.还原控制文件自动备份
c.挂载还原的控制文件
d.使用CATALOG命令登记没有记录在仓库中的任何备份
e.还原数据文件到它们的原始位置。如果卷名已经更改,在还原操作前运行SET NEWNAME,在还原操作之后执行切换使用数据文件的新位置更新控制文件,如下例所示。
f.恢复数据文件。RMAN到达指定的日志序列号后停止恢复。
RMAN> RUN
{
    # Manually allocate a channel to the media manager
    ALLOCATE CHANNEL t1 DEVICE TYPE sbt;
    # Restore autobackup of the control file. This example assumes that you have
    # accepted the default format for the autobackup name.
    RESTORE CONTROLFILE FROM AUTOBACKUP;
    # The set until command is used in case the database
    # structure has changed in the most recent backups, and you want to
    # recover to that point in time. In this way RMAN restores the database
    # to the same structure that the database had at the specified time.
    ALTER DATABASE MOUNT;
    SET UNTIL SEQUENCE 1124 THREAD 1;
    RESTORE DATABASE;
    RECOVER DATABASE;

}

以下示例显示相同的场景除了为还原的数据文件指定新的文件名称以外:
RMAN> RUN
{
    # If you must restore the files to new locations,
    # use SET NEWNAME commands:
    SET NEWNAME FOR DATAFILE 1 TO ‘/dev/vgd_1_0/rlvt5_500M_1’;
    SET NEWNAME FOR DATAFILE 2 TO ‘/dev/vgd_1_0/rlvt5_500M_2’;
    SET NEWNAME FOR DATAFILE 3 TO ‘/dev/vgd_1_0/rlvt5_500M_3’;
    ALLOCATE CHANNEL t1 DEVICE TYPE sbt;
    RESTORE CONTROLFILE FROM AUTOBACKUP;
    ALTER DATABASE MOUNT;
    SET UNTIL SEQUENCE 124 THREAD 1;
    RESTORE DATABASE;
    SWITCH DATAFILE ALL; # Update control file with new location of data files.
    RECOVER DATABASE;
}

9)如果恢复成功,那么打开数据库和重置在线日志:
ALTER DATABASE OPEN RESETLOGS;

来源:《Oracle Database Backup and Recovery User’s Guide,19c》

执行RMAN恢复的高级场景_执行灾难恢复(Disaster Recovery)相关推荐

  1. 执行RMAN恢复的高级场景_通过网络还原和恢复文件

    RMAN让你通过经由网络连接到包含需要的文件的物理备数据库还原或恢复文件.你可以还原整个数据库,数据文件,控制文件,spfile或表空间.在需要同步主和备数据库的场景中通过网络还原文件是非常有用的. ...

  2. 执行RMAN恢复的高级场景_还原使用旧版本的RMAN创建的备份

    可以还原使用旧版本直到Oracle Database 9i Release 2(9.2.0.8)的RMAN创建的备份. 在创建备份的Oracle数据库版本和运行还原的数据库的Oracle软件版本之间必 ...

  3. 执行RMAN恢复的高级场景_还原服务器参数文件spfile

    RMAN可以还原一个丢失的spfile到它的缺省位置或选择的位置.不像丢失控制文件,丢失spfile不会导致实例立即停止.实例可能会继续运行,虽然在还原spfile之后必须关闭和重启它. 当还原spf ...

  4. gtw-050090|执行拦截器时发生异常_执行流程 | 你真的了解Spring AOP的执行顺序吗?...

    Hi! 我是小小,我们又见面了,今天的主要内容是,你真的了解Spring AOP的执行顺序吗?跟随着我的脚步,一块丈量世界,了解世界,重新认识,重新了解Spring AOP的执行顺序. 聊一聊毕业四个 ...

  5. 执行python命令和脚本文件_执行python脚本文件的方法

    执行python脚本文件的方法 发布时间:2020-09-03 10:17:11 来源:亿速云 阅读:60 作者:小新 小编给大家分享一下执行python脚本文件的方法,相信大部分人都还不怎么了解,因 ...

  6. RMAN恢复操作-转自Robinson_0612的专栏

    恢复操作            1.非系统表空间的恢复步骤 a. alter datafile n offline immediate; | alter tablespace tbs_name off ...

  7. RMAN恢复报错: ORA-01103: database name 'POWERDES' in control file is not 'PDUNQ'

    执行rman恢复的时候报错 RMAN> alter database mount;RMAN-00571: ============================================ ...

  8. 执行用户管理(不依赖于RMAN)的备份和恢复_执行用户管理的数据库闪回和恢复

    本章描述在用户管理的备份和恢复策略中如何还原和恢复数据库和使用Oracle数据库的闪回特性.用户管理的备份和还原策略意味着不依赖RMAN的方法. 1.使用SQL*Plus执行闪回数据库 可以在非CDB ...

  9. 诊断和响应故障_执行闪回和数据库时间点恢复(Flashback and Database Point-in-Time Recovery)

    本章阐述如何调查不想要的数据库更改,基于Oracle闪回技术和数据库备份选择和执行适合的恢复策略. 1.Oracle闪回技术和数据库时间点恢复概述 本概述描述Oracle闪回技术和数据库时间点恢复的目 ...

最新文章

  1. ASP.NET之父强烈推荐,无可争议的圣经级巨著
  2. csharp DataTable and DataGridView delete a Row
  3. 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法
  4. python matplotlib.pyplot.imshow() (在2D常规栅格上显示图像(数据))
  5. crntos7启动php命令_CentOS7设置php-fpm开机自启动
  6. (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
  7. LINQ学习笔记(9) LINQ to Objects---查询内存中对象的集合
  8. phpMyAdmin密码设置
  9. Hadoop框架:MapReduce基本原理和入门案例
  10. AndroidStudio安卓原生开发_Intent传过来的值会自动变化_太奇怪了_你碰见过嘛_Http并发引起的问题?_可通过静态变量传值的方式解决---Android原生开发工作笔记130
  11. java字符串遮蔽处理_java 字符串处理
  12. 工作中使用到的单词(软件开发)
  13. win10如何共享整个D盘
  14. vmware加速方法总结
  15. Java(SpringMVC03)(SSM整合1)
  16. 树莓派输出高电平C语言,树莓派控制高电平蜂鸣器(c语言+新手向)
  17. 联想ideapad700-15ISK拆机清灰+迁移win10 arch双系统 (上篇)
  18. 1338_龙书笔记_001_编译器的大概结构以及工作的基本流程
  19. Word 如何让页眉显示各个章节名字
  20. java grizzly_Grizzly简介 | Java Game

热门文章

  1. ssm的学生综合测评管理系统(文档)
  2. 记住这些话,做个爱情聪明人(转)
  3. 将eFPGA应用于嵌入式360度视域视觉系统中
  4. 网络安全基础--url编码
  5. 移动CRM系统的发展作用
  6. 宏观框架-海通梁中华-01)
  7. 机器学习(西瓜书)深度学习(Deep Learning)学习笔记
  8. c 和c#以及java_Java与C 和C# 有哪些区别?
  9. js延迟加载、js异步加载
  10. 图论算法讲解--最短路--Dijkstra算法