暂无图片
暂无图片
4
暂无图片
暂无图片
1
暂无图片

12c备份恢复学习笔记-3.6 RMAN使用的SYS数据包

原创 手机用户2828 2020-09-11
1249

3.6 RMAN使用的SYS数据包

RMAN服务器进程在协调通道工作时要访问两个SYS数据包:
DBMS_RCVMAN数据包和DBMS_BACKUP_RESTORE数据包,
这两个包包含了目标数据库中RMAN的所有功能。

返回目录

3.6.1 SYS.DBMS_RCVMAN数据包

DBMS_RCVMAN数据包用来访问控制文件中的表并将此信息传递给RMAN,使用RMAN可以构建准确反应数据库结构的备份和还原操作。

  • DBMS_RCVMAN包负责在执行任何操作前设置time运算符和校验数据文件头中的检查点信息,并检查文件位置和大小,以及有关节点相似性(在RAC环境中)和磁盘相似性的其他信息
  • 这种信息会影响RMAN的性能,并且RMAN在构建实际备份/还原命令之前自动执行负载均衡(load-balancing)算法和性能增强(performance-enhancing)算法。

返回目录

3.6.2 SYS.DBMS_BACKUP_RESTORE数据包

概述

RMAN接收从DBMS_RCVMAN数据包返回的信息,并在通道间基于负载均衡算法分配工作,然后创建一系列DBMS_BACKUP_RESTORE数据包调用

  • ⭐️⭐️⭐️⭐️⭐️SYS.DBMS_RCVMAN包访问控制文件并校验所有必须的信息
  • ⭐️⭐️⭐️⭐️⭐️这些必须的信息被传递回RMAN服务器进程,RMAN服务器进程随后会基于recover.bsq文件中的代码创建一些PL/SQL块
  • ⭐️⭐️⭐️⭐️⭐️这些PL/SQL块含有对DBMS_BACKUP_RESOTRE数据包的调用实际上RMAN中是由DBMS_BACKUP_RESTORE数据包来创建系统调用以备份数据文件,控制文件和归档日志,该包是RMAN的真正动力。
  • V$SESSION_LONGOPS视图中可以跟踪的是DBMS_BACKUP_RESTORE数据包的工作。它执行备份和还原操作,此外还可以以受限方式访问控制文件。
  • DBMS_BACKUP_RESTORE数据包访问控制文件以备份该文件(实际上是控制文件的快照),在备份完成后写入备份信息。一旦完成了一个备份集,DBMS_BACKUP_RESTORE数据包就会在控制文件的表中写入备份开始时间,备份大小和备份名的信息。

返回目录

内核中的RMAN数据包

  • 创建数据库时,运行cataproc.sql脚本可以默认安装上述两个RMAN数据包
    • 数据库创建期间无法跳过这一步骤。
    • 所以在8.0.3以后的每个版本里都存在rman包。
    • 这样就不必配置RMAN,我们可以立即运行RMAN 并开始备份数据库。
  • 这些RMAN数据包还有一个重要的特性,他们被硬编码到Oracle软件的库文件中,因此即使没有打开数据库也可以调用这些数据包。
    • 我们知道,大多数数据包只在数据库打开时才能被使用,不过RMAN可以在数据库实例处于nomount模式或者mount模式时编写对DBMS_BACKUP_RESTORE数据包的调用。
    • 这是一个关键要素,其原因显而易见:需要在没有打开数据库时也能备份和还原这个数据库。
  • 你会注意到这样的问题:如果要使用RMAN连接目标数据库,目标数据库应该处于什么状态?需要启动实例吗?数据库需要挂载吗?还是必须打开?
    • 实际上RMAN 可连接到这3种状态的目标数据库, 但是目标数据库只有至少处于NOMOUNT 模式下,RMAN 才能执行更多操作, 而非仅发出startup 命令

返回目录

最后修改时间:2020-09-14 09:57:13
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

11 0
暂无图片
1年前
评论
暂无图片 0
👍
1年前
暂无图片 点赞
评论