文章目录

  • 一、基础知识
    • 1、User Backup VS RMAN
    • 2、Restoring &Recovering DB 还原&恢复数据库
    • 3、Recovery Manager Features 管理恢复功能
    • 4、RMAN Components RMAN组件
    • 5、Repository1: Control File 存储库1:控制文件
    • 6、Channel Allocation 通道道分配
    • 7、Media Management 介质管理
    • 8、Types of Connectoin 连接类型
    • 9、Without a Recovery Catalog 没有恢复目录
    • 10、Recovery Manager Modes 恢复管理器模式
    • 11、RMAN Configuration Settings RMAN配置设置
    • 12、The CONFIGURE Command CONFIGURE命令
    • 13、The SHOW Command SHOW 命令
    • 14、The LIST Command LIST命令
    • 15、The REPORT Command REPORT 报告命令
  • 二、基础操作
    • 1、连接到RMAN
    • 2、Auto Channel Allocation 自动通道分配
    • 3、Manual Channel Allocation 手动通道分配
    • 4、Additional Line Arguments 增加参数方法
      • 将RMAN输出写入日志文件:
      • 当RMAN被调用时执行命令文件:

Oracle Recovery Manager Overview and Configuration Oracle恢复和管理的概述和配置(RMAN的使用和配置)
目标:

  • 了解RMAN的体系结构
  • 掌握RMAN存储库和控制文件的使用
  • 掌握通道分配
  • 掌握介质管理库界面不使用恢复目录连接到RMAN
  • 配置RMAN环境

一、基础知识

1、User Backup VS RMAN

  • 两种备份的基本方式
  • 这里只做了解一下就行,知道RMAN的重要性
  • 后期笔者会出关于备份的学习笔记

2、Restoring &Recovering DB 还原&恢复数据库

  • 当我们在SCN为100时进行备份时,数据库在SCN为500时损坏
  • 我们可以将数据库先恢复到SCN100的时候的状态
  • 然后在使用Archive redo logs和redo log文件将数据恢复
  • 这就是数据恢复的基本思想
  • 对于SCN的解释:
    • SCN(System Change Number)是Oracle数据库中的一个重要概念,用于表示数据库中发生变化的数量和时间点。每当数据库中发生一次变化,如插入、更新或删除数据时,SCN会自动增加。SCN是一个递增的数字,可以用来确定数据更改的顺序和时间戳。在Oracle数据库中,SCN的使用非常广泛,例如在数据恢复、备份和归档等过程中都要用到SCN。

3、Recovery Manager Features 管理恢复功能

RMAN提供了一种灵活的方式来:

  • 备份数据库、表空间、数据文件、控制文件和归档日志
  • 存储经常执行的备份和恢复操作
  • 执行增量块级备份
  • 跳过未使用的块
  • 指定备份的限制
  • 在备份期间检测损坏的块
  • 通过以下方式提高性能:
    • 自动并行化
    • 减少重做的生成
    • 限制备份的L/0
    • 磁带流
  • 管理备份和恢复任务

4、RMAN Components RMAN组件

  • Target database是目标数据库(需要备份的数据库)

5、Repository1: Control File 存储库1:控制文件

  • RMAN存储库是关于目标数据库以及备份和恢复操作的元数据
  • RMAN存储库总是存储在目标数据库的控制文件中
  • 参数CONTROL_FTLE_RECORD_KEEP_TIME确定记录在被覆盖之前的最小年限 (以天数为单位)
  • 控制文件的大小可能会增加

6、Channel Allocation 通道道分配

7、Media Management 介质管理

  • 大型的备份需要买专门的磁带介质,磁带卡,磁带库,或者光盘卡之类的介质
  • Media management library:介质管理库,这个是第三方设备提供商需要提供的库,这个库必须符合Oracle的规范,能够让RMAN驱动

8、Types of Connectoin 连接类型

  • 目标数据库
  • 恢复目录数据库
  • 辅助数据库
    • 备用数据库
    • 重复数据库
    • TSPITR实例

9、Without a Recovery Catalog 没有恢复目录

10、Recovery Manager Modes 恢复管理器模式

  • 交互模式
    • 在做分析的时候用
    • 尽量减少经常使用
    • 避免使用日志选项
  • 批处理模式(重点)
    • 用于自动化作业
    • 最大限度地减少操作员错误
    • 设置日志文件以获取信息

11、RMAN Configuration Settings RMAN配置设置

  • RMAN是使用默认配置设置预设的
  • 使用CONFIGURE命令可以:
    • 配置自动通道
    • 指定备份保留策略
    • 指定要创建的备份副本数
    • 限制备份集的大小
    • 使表空间免于备份
    • 启用和禁用备份优化

12、The CONFIGURE Command CONFIGURE命令

  • 配置自动通道:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/db01/BACKUP/%u';
  • 通过指定恢复窗口实施保留策略
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 days;
  • 通过指定几余来实施保留策略:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 2:

13、The SHOW Command SHOW 命令

  • 显示持久配置设置
  • 使用sHow命令显示:
    • 自动频道配置设置
    • 备份保留策略设置
    • 要创建的备份副本数
    • 备份集大小限制
    • 从备份中排除的表空间
    • 备份优化状态
  • 使用SHOWALL显示所有设置:
    • show all

14、The LIST Command LIST命令

  • LIST命令操作
    • 列出数据文件的备份集和副本
    • 列出指定表空间的任何数据文件的备份集和副本
    • 列出包含指定范围的归档日志的备份集和副本
  • The LIST Command LIST命令
    • 列出数据库中所有文件的备份:
      • LIST BACKUP OF DATABASE;
    • 列出包含users01.dbf数据文件的所有备份集
      • LIST BACKUP OF DATAFILE "/db01/ORADATA/u03/users01.dbf";
    • 列出system中数据文件的所有副本
      • LIST COPY OF TABLESPACE “SYSTEM’;

15、The REPORT Command REPORT 报告命令

  • 生成对存储库的详细分析
  • 生成报告以回答:
    • 哪些文件需要备份
    • 哪些备份可以被删除
    • 哪些文件是不可恢复的
  • REPORT NEED BACKUP 报告需要备份
    • 需要三个或更多增量备份以进行恢复的文件:
      • REPORT NEED BACKUP incremental 3;
    • 文件已经三天没有备份了(报告需要备份三天):
      • REPORT NEED BACKUP days 3;
    • 如果没有两个或多个备份,则需要备份:
      • REPORT NEED BACKUP redundancy 2;
    • 3天前恢复所票得备份:
      • REPORT NEED BACKUP recovery window of 3 days;

二、基础操作

1、连接到RMAN

rman target sys/123@orcl nocatalog


这是一个使用Oracle RMAN(Recovery Manager)的命令,用于连接到Oracle数据库并指定目标数据库和连接信息。让我解释一下:

  • rman: 这是启动Oracle RMAN的命令。
  • target sys/123@orcl: 这部分命令用于指定RMAN的目标数据库和连接信息。
    • sys: 这是数据库用户的名称,通常是sys,表示超级用户。
    • 123: 这是与用户相关联的密码,这里假设密码是123。
    • @orcl: 这是数据库的连接描述符,通常包括数据库的TNS(Transparent Network Substrate)别名。在这里,数据库别名是orcl。
  • nocatalog: 这是指定RMAN不使用RMAN目录的选项。RMAN目录是一个存储有关备份和恢复的信息的数据库。使用nocatalog表示RMAN将直接连接到目标数据库,而不是连接到RMAN目录数据库。

综合起来,这个命令的含义是使用RMAN连接到Oracle数据库,目标数据库是orcl,用户名是sys,密码是123,而且不使用RMAN目录。

2、Auto Channel Allocation 自动通道分配

  • 更改默认设备类型:
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;


这是原来设备类型
然后我们执行上列命令进行更改之后再次查看

这是现在的设备名
然后我们只是实验一下操作,操作完成将他恢复成原来的样子,执行下列语句:

CONFIGURE DEFAULT DEVICE TYPE clear;

  • 配置自动通道的并行性:
    • RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
  • 配置自动通道选项:
    • RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT =/BACKUP/RMAN/U';
    • RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G:

3、Manual Channel Allocation 手动通道分配

  • 备份、复制、还原和恢复命令至少需要一个通道
  • 分配通道会启动目标数据库上的服务器进程
  • 通道影响并行度
  • 通道可以写入到不同的媒体类型
  • 通道可用于施加限制。
 RUN { ALLOCATE CHANNEL c1 TYPE disk FORMAT ='/db01/BACKUP/usr0520.bak'; BACKUP DATAFILE '/db01/ORADATA/users0l.dbf';}

这是一个使用Oracle RMAN的脚本块,用于执行数据库备份。让我解释一下这个脚本的各个部分:

  • RUN: 这是RMAN脚本的一个关键字,表示接下来将运行一系列RMAN命令。

  • ALLOCATE CHANNEL c1 TYPE disk FORMAT='/db01/BACKUP/usr0520.bak';: 这部分命令用于分配一个备份通道,并指定备份文件的格式。具体来说:

    • ALLOCATE CHANNEL c1: 分配一个名为c1的备份通道。
    • TYPE disk: 指定备份通道的类型为磁盘。
    • FORMAT='/db01/BACKUP/usr0520.bak': 指定备份文件的格式和位置,这里的备份文件将保存在/db01/BACKUP目录下,文件名为usr0520.bak。
  • BACKUP DATAFILE '/db01/ORADATA/users0l.dbf';: 这部分命令用于执行实际的数据文件备份。

    • BACKUP DATAFILE '/db01/ORADATA/users0l.dbf': 表示要备份指定路径下的数据文件,这里的路径是/db01/ORADATA/users0l.dbf。

整体来说,这个脚本的目的是使用RMAN备份Oracle数据库的一个数据文件(users0l.dbf),并将备份文件保存在指定的磁盘位置(/db01/BACKUP/usr0520.bak)。备份通道(c1)用于管理备份的过程。

4、Additional Line Arguments 增加参数方法

将RMAN输出写入日志文件:

rman target sys/oraclelog $ORACLE_HOME/ORADATA/u03/rman.log append

这是一个使用 Oracle RMAN(Recovery Manager)的命令,让我解释一下这个命令的各个部分:

  • rman: 这是启动 Oracle RMAN 的命令。

  • target sys/oracle: 这部分命令用于连接到目标数据库,其中:

    • sys: 这是数据库用户的名称,通常是 sys,表示超级用户。
    • oracle: 这是与用户相关联的密码,这里假设密码是 oracle。
  • log $ORACLE_HOME/ORADATA/u03/rman.log: 这部分命令用于指定 RMAN 日志文件的路径和文件名,其中:

    • $ORACLE_HOME: 这是 Oracle 软件的主目录的环境变量,指向 Oracle 软件的安装路径。
    • /ORADATA/u03/rman.log: 这是 RMAN 日志文件的完整路径和文件名。append选项表示如果文件已存在,则将日志信息追加到现有文件末尾,而不是覆盖文件。

综合起来,这个命令的含义是使用 RMAN 连接到 Oracle 数据库,目标数据库用户是 sys,密码是 oracle,并且将 RMAN 的日志信息记录到指定的日志文件中,如果文件已存在,则将日志信息追加到文件末尾。

当RMAN被调用时执行命令文件:

rman target sys/oraclelog $ORACLE_HOME/ORADATA/u03/rman.log append@'$ORACLE_HOME/STUDENT/LABS/my_rman_script.rcv'

这个命令是在 Oracle RMAN 中执行一个脚本文件的命令,让我逐步解释:

  • rman target sys/oracle: 这部分命令用于连接到目标数据库,其中:
    • sys: 这是数据库用户的名称,通常是 sys,表示超级用户。
    • oracle: 这是与用户相关联的密码,这里假设密码是 oracle。
  • log $ORACLE_HOME/ORADATA/u03/rman.log append: 这部分命令用于指定 RMAN 日志文件的路径和文件名,并使用 append 选项,表示如果文件已存在,则将日志信息追加到现有文件末尾,而不是覆盖文件。
    • $ORACLE_HOME: 这是 Oracle 软件的主目录的环境变量,指向 Oracle 软件的安装路径。
  • @'$ORACLE_HOME/STUDENT/LABS/my_rman_script.rcv': 这部分命令使用 @ 符号来执行一个 RMAN 脚本文件。具体来说:
    • $ORACLE_HOME/STUDENT/LABS/my_rman_script.rcv: 这是 RMAN 脚本文件的路径和文件名。RMAN 脚本文件包含一系列 RMAN 命令,这些命令将被按顺序执行。

综合起来,这个命令的含义是使用 RMAN 连接到 Oracle 数据库(sys 用户,密码 oracle),将 RMAN 的日志信息记录到指定的日志文件中,如果文件已存在,则将日志信息追加到文件末尾。然后,执行指定路径下的 RMAN 脚本文件,其中包含一系列 RMAN 命令。