Backup with RMAN
Overview
• Recovery Manager(RMAN)是oracle官方推荐的备份恢复工具, RMAN
  的使用对于DBA而言至关重要. 这一章讲述如何使用RMAN进行数据
  库的备份:
  –   数据库一致性备份;
  –   数据库非一致性备份;
  –   增量备份;
  –   备份自动化;
  –   管理备份, 监控闪回区;
  –   定义和应用保留规则;
  –   镜像文件备份;
  –   启用快速增量备份;
  –   双重备份(duplex backups), 备份备份集;
  –   归档备份;
  –   多段, 压缩, 加密备份;
  –   备份报告和维护;
  –   备份设置和优化;
  –   备份通道
Backup Concepts &
                  Terminology
•   User-managed vs. Server-managed
    通过执行操作系统命令进行的备份被称为用户管理的备份, 通过RMAN执行的备份
    则称为服务器管理备份.
•   Closed vs. Open
    在数据库关闭的情况下执行的备份被称为closed backup, 也被称为一致性备份
    (consistent)、冷备份(cold) 、线下备份(offline); 当数据库处在打开状态下进行的备
    份称为open backup, 也被称为非一致备份(inconsistent) 、热备份(hot) 、在线备份.
    Tip: 热备份只有当数据库处在归档模式下可用. 如果数据库处在非归档模式, 只能
    进行冷备.
•   Whole vs. Partial(整体 vs. 部分)
    全部备份和部分备份, 前者对所有的数据文件和控制文件进行备份, 后者则备份这
    些文件的子集. 在大多数情况下, partial类型的备份只有当数据库处在归档模式下才
    能够执行.
•   Full vs. Incremental(全量 vs. 增量)
    full类型会备份目标文件所有被使用的数据块, 而incremental备份则只会备份那些从
    上次备份开始被修改过的数据块.
    Tip: 可以使用以上备份类型的任意组合, 常见的情况是在按周/月进行
    closed/whole/full备份, 每天则进行open/whole/incremental备份.
•   Backup set vs. Backup piece(备份集 vs. 备份片)
    备份片在物理上存储为一个文件, 备份片只属于一个备份集. 通常情况下一个备份
    集仅包含一个备份片, 只有当使用MAXPIECESIZE参数设置了备份片的大小时才有可
    能在一个备份集下面创建多个备份片.
RMAN Overview
•   Files
    RMAN可以备份如下文件:
    数据文件                控制文件               归档日志文件
    SPFILE              备份片(backup set piece)
    RMAN不能备份如下文件:
    临时文件(Tempfiles)     在线重做日志文件         密码文件
    PFILE               Oracle Net配置文件
•   Types
    RMAN能够生成以下三种类型的备份
    – 备份集(backup set)
    备份集是RMAN专有的备份格式, 一个备份集中可以实现对多个数据库文件的备份, 对于数据文件
    仅包含已经被使用的数据块(如果数据块不属于任何对象, 不会写入备份集中),这大大减小了备份
    文件的大小. 备份集可以是全量的也可以是增量的. 在物理上, 备份集由多个备份片(piece)组成.
    – 压缩备份集(compressed backup set)
    压缩格式下的备份集.
    – 镜像拷贝(image copy)
    等同于输入文件, 但仍需要使用RMAN才能进行数据库的还原 (restore)操作
•   Channels
    RMAN备份和恢复操作由服务端通道进程执行, 通道进程分为两种类型: 磁盘通道 和 磁带通道,
    分别写不同的介质.
•   RMAN Metadata Repository
    RMAN元数据用于描述已经发生的备份操作, 比如备份集由哪些备份片组成, 备份片的位置和
    名称; 镜像拷贝文件的位置等. RMAN元数据保存在控制文件中, 也可以选择保存在数据库中.
RMAN In Action
                    - Consistent Backup
•   在11g版本中所有的RMAN备份操作都由backup命令执行, 可以通过rman交互式命
    令, rman脚本或者database control界面执行.
•   Consistent Backup
    执行一致性备份要求数据库处在mount状态, 这是因为RMAN需要读取控制文件以
    确定数据文件的位置. 下面是一段执行cold/whole/full备份的RMAN脚本:
          run {
                  shutdown immediate;
                  startup mount;
                  allocate channel d1 type disk;
                  backup as backupset database format
                               '/opt/oracle/backup/offline_full_whole_%d_%U.bus';
                  alter database open;
          }
    1-2 关闭并重启数据库到mount状态
    3   分配一个通道进程, 这里使用磁盘类型
    4   使用备份集的方式备份整个数据库, 指定备份文件的位置
    5   打开数据库
    使用如下方式执行, rman交互式命令:
    – 使用rman target sys/passwd@ocpdemo登录, 如果是操作系统验证直接使用rman target /
    – 依次输入花括号中的命令.
    rman脚本:
    – 首先将该脚本保存在文本文件中比如offline_full_whole.rman
    – 切换到脚本文件所在目录, 运行rman target sys/passwd@ocpdemo @ offline_full_whole.rman
RMAN In Action
                     - Explained
•   备份集和备份片
    使用RMAN进行一次备份操作时, 通常会生成多个备份集, 这由RMAN自己决定或者
    通过人工的干预, 比如运行backup命令时指定filesperset选项. 通常情况下备份集下
    面只有一个备份片, 可以通过登录RMAN执行list backup命令查看备份信息, 或者通
    过视v$backup_set和v$backup_piece查看.
•   存储位置
    可以通过backup命令的format选项指定备份片文件的全路径, 需要在该路径中使用
    占位符, 比如:
    –   %d    数据库名称
    –   %U    保证备份片文件名的唯一性
    –   %s    备份集的序号
    –   %p    备份片在当前备份集中的序号
    –   %c    对于多路复用备份(multiplex backups), 表示拷贝的序号. 此占位符对于指定多路复
              用备份的文件格式是必须的.
    如果不指定format选项, 那么备份文件将会默认存储在闪回区, 相应的目
    录结构将会被自动创建, 比如:
    [oracle@localhost flash_recovery_area]$ tree .
    .
    `-- OCPDEMO
       `-- backupset
          `-- 2013_03_05
RMAN In Action
                                - Open Backup
• 在最简单的情况下, 可以使用backup database命令执行一次安全可靠的热
  备份操作. 下面是一个热备份的示例:
         run {
           allocate channel t1 type disk;
           allocate channel t2 type disk;
           backup as compressed backupset filesperset 4 database;
           backup as compressed backupset archivelog all delete all input;
         }
   1-2         分配两个通道进程(t1/t2), 依据服务器的资源可以提升备份的
               速度
  3            压缩备份整个数据库, 包括数据文件/控制文件/ SPFILE等.
               filesperset 4指定一个备份集最多包含4个文件, 这样可以缩小
               备份文件的大小提升数据库恢复的速度.
  4            压缩备份归档日志文件, 完成后删除归档日志
• 备份操作可以针对某个表空间, 数据文件, 或者符合某种模式的归档日志文
  件, 示例:
  backup as backupset format '/backup/orcl/df_%d_%s_%p' tablespace gl_tabs;
  backup as compressed backupset datafile 4;
  backup as backupset archivelog like '/u01/archive1/arch_1%';
RMAN In Action
             - Incremental Backup
• 增量备份是指在某一个备份点的基础上, 对发生改变的数据进行备份. 与全
  量备份相比, 增量备份需要的备份时间更短, 磁盘空间使用更少.
• level 0 vs. level 1
  level 0的增量备份相当于全量备份, 使用如下格式:
      backup as backupset incremental level 0 database;
  level 1的增量备份又分为两种类型:
  – differential
  在前一个level 1备份的基础上进行增量备份, 如果不存在level 1的增量备份则基于
  level 0备份. 示例:
     backup as backupset incremental level 1 database;
  – cumulative
  在前一个level 0备份的基础上进行增量备份, 格式如下:
     backup as backupset incremental level 1 cumulative database;
  Tip: 进行level 1增量备份时, 如果之前没有level 0备份, 那么当前的level 1备份实质
       上执行的是level 0备份.
RMAN In Action
                - Incremental Backup
• Block change tracking
  默认情况下, 增量备份对于备份速度的提升并没有那么显著,
  因为增量备份需要扫描数据库文件的内容已发现发生改变
  的数据块, 这会花费大量的时间. 可以通过开启”追踪数据块
  变化”以加速增量备份, 通过如下命令开启:
     alter database enable block change tracking using file
      '/opt/oracle/oradata/change_tracking.dbf';
 如果不指定追踪文件的位置, 该文件默认会创建在
 DB_CREATE_FILE_DEST参数指定的目录. 通常情况下该文件
 的大小在10M左右.
 可以通过v$backup_datafile视图查看启用数据块跟踪的效果,
 使用如下SQL:
 select file#, datafile_blocks, (blocks_read / datafile_blocks) * 100 as
       pct_read_for backup from v$backup_datafile
 where used_change_tracking='YES' and incremental_level > 0;
RMAN In Action
              - Image Copies
• RMAN镜像备份通过数据块的逐个拷贝实现, 备份
  的结果是与数据文件、控制文件、归档日志文件
  内容完全相同的拷贝. 镜像备份不能使用备份集
  相关的特性, 比如增量备份、压缩、设置备份片
  大小等. 镜像备份的一个好处是还原数据库的速
  度非常快, 来自官方的建议是保留一份数据库的
  镜像备份, 以及自该备份开始的归档日志文件.
• 镜像备份只能用于数据文件、归档日志文件, 控
  制文件, 不用使用于SPFILE. 示例:
  backup as copy database;
  backup as copy archivelog all delete all input;
RMAN In Action
                - Protect Backups
• RMAN支持对备份进行备份, 通常会将这种备份最
  终保存到磁带. 使用下面的命令实现备份的多路
  复用:
  backup as backupset device type disk copies 2 database
   format '/opt/oracle/backup/%s_%p_%c.bus‘;
  该命令会对数据库进行备份, 并产生额外的一份
  拷贝.
• 闪回区备份
 – backup recovery area;
 基于默认的设置将闪回区备份到磁盘;
 – backup recovery files;
 备份与数据库恢复相关的文件(包括闪回区文件以及不在
 闪回区的文件).
RMAN In Action
       - Backup Parallelizing
• RMAN备份支持并行操作, 最常见的情形是分配多个磁盘通道进程.
  RMAN备份的并行度由以下的几个因素决定:
 – 通道进程的个数
 通道进程的数量是对备份并行度的硬限制.
 – 备份集的个数
 – 输入文件的个数
 并行度不能超过输入文件的个数, 除非多段备份被使用.
 示例:
 run {allocate channel t1 type sbt;
    allocate channel t2 type sbt;
    allocate channel t3 type sbt;
    allocate channel t4 type sbt;
    backup database files per set 8;}
 这里分配了4个通道进程, 限制了并行度不能超过4; 现在假设数据库包括
 控制文件在内总共有100个文件, 那么就可以分为13个备份集, 最终的并行
 度是4; 如果只有20个文件, 那么将产生3个备份集, 最终的并行度是3.
RMAN In Action
            - Configure RMAN Defaults
•   登录RMAN之后可以使用show all指定查看所有的配置项, 这里显示的配置项均是默
    认值:




•   使用configure指令进行配置, 示例:
    CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET; -- 进行磁
    盘备份集备份时, 默认启动4个通道进程(并行度4);
    CONFIGURE BACKUP OPTIMIZATION ON; -- 启用备份优化, 如果检查到某文件有足够
    的备份则不再进行备份;
    CONFIGURE RETENTION POLICY TO REDUNDANCY 3; -- 默认设置下RMAN保存文件的
    一份拷贝, 这里设置为3表示保存文件的3份拷贝.
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW of 90 DAYS; -- 在此规则
    下, RMAN需要保存所有数据文件在过去90天内的至少一个备份.
•   使用CLEAR恢复到默认的配置, 示例:
    configure device type disk clear;
RMAN In Action
                  - Managing & Monitoring
•   list, report & delete
     –   list命令用于查看备份集或者镜像备份, 示例:
    list backup;         -- 查看所有的备份集
    list copy;           -- 查看所有的镜像拷贝
    list backup of database; -- 查看整个数据库的备份集, 包括全量和增量
    list backup of datafile 1; -- 查看包含数据文件1的备份集
    list backup of tablespace users; -- 查看包含表空间users的备份集
    list backup of archivelog all; -- 查看所有归档日志的备份集
    list copy of archivelog from time=‘sysdate - 7’; -- 查看过去7天内产生的归档日志镜像备份
    list backup of archivelog from sequence 1000 until sequence 1050; -- 查看归档日志备份集, 该归档日志
    包含1000到1500的日志切换序号.
     –   report命令用于判断哪些数据库文件需要进行备份, 这需要根据当前的RMAN元数据和保留规则(retention
         policy)进行判断. 示例:
     report schema; -- 列出组成数据库的数据文件
     report need backup; -- 根据保留规则列出所有所有需要备份的数据文件和归档日志文件
     report need backup days 3; -- 列出所有在过去3天内没有进行备份的文件
     report need backup redundancy 3; -- 列出所有少于3个份备份的文件
     report obsolete;     -- 根据当前保留规则列出所有不需要的备份集和镜像
     report obsolete redundancy 2; -- 列出所有大于2个备份的备份集或者镜像
     – delete 删除备份集或者镜像备份, 示例:
     delete obsolete;     -- 根据保留规则, 删除所有不需要的备份
     delete obsolete redundancy 2; -- 删除大于2个备份的备份集或者镜像
     delete backupset 4; -- 删除id为4的备份集
     delete copy of datafile 6 tag file6_extra; -- 删除数据文6的镜像
RMAN In Action
                 - DPV
• 数据库在启动时会读取控制文件中的备份元数据,
  并作为视图供用户查询. 这些视图包括:
 – v$backup_files
 RMAN备份的文件, 包括数据文件、spfile、控制文件
 及归档日志文件.
 – v$backup_set, v$backup_piece
 备份集, 备份片信息
 – v$backup_redolog, v$backup_spfile, v$backup_datafile
 分别表示归档日志、SPFIL及数据文件的备份信息
 – v$backup_device
 连接到RMAN的SBT设备
 – v$rman_configuration
 RMAN配置, 对于配置为默认值的项不包含
RMAN In Action
           - Backup Crosschecking
• list, report等命令会读取备份原数据并将备份信息展
  示出来, 但是它们不会去检查磁盘或者磁带设备上
  是否真实存在这些备份文件. RMAN提供了
  crosscheck命令以实现此功能, 示例:
   crosscheck backup of database;
 该命令会读取所有与整数据库备份相关的元数据,
 并检查备份文件是否存在. 如果文件不存在则标识
 备份状态为EXPIRED, 使用crosscheck backup/copy分别
 检查所有的备份集和镜像. 删除过期的备份集:
   delete expired backupset;
 注意: 与delete obsolete命令不同的是, 此命令仅更新
 RMAN元数据, 不会删除备份文件(已经不存在) .
END

8, OCP - backup with rman

  • 1.
  • 2.
    Overview • Recovery Manager(RMAN)是oracle官方推荐的备份恢复工具,RMAN 的使用对于DBA而言至关重要. 这一章讲述如何使用RMAN进行数据 库的备份: – 数据库一致性备份; – 数据库非一致性备份; – 增量备份; – 备份自动化; – 管理备份, 监控闪回区; – 定义和应用保留规则; – 镜像文件备份; – 启用快速增量备份; – 双重备份(duplex backups), 备份备份集; – 归档备份; – 多段, 压缩, 加密备份; – 备份报告和维护; – 备份设置和优化; – 备份通道
  • 3.
    Backup Concepts & Terminology • User-managed vs. Server-managed 通过执行操作系统命令进行的备份被称为用户管理的备份, 通过RMAN执行的备份 则称为服务器管理备份. • Closed vs. Open 在数据库关闭的情况下执行的备份被称为closed backup, 也被称为一致性备份 (consistent)、冷备份(cold) 、线下备份(offline); 当数据库处在打开状态下进行的备 份称为open backup, 也被称为非一致备份(inconsistent) 、热备份(hot) 、在线备份. Tip: 热备份只有当数据库处在归档模式下可用. 如果数据库处在非归档模式, 只能 进行冷备. • Whole vs. Partial(整体 vs. 部分) 全部备份和部分备份, 前者对所有的数据文件和控制文件进行备份, 后者则备份这 些文件的子集. 在大多数情况下, partial类型的备份只有当数据库处在归档模式下才 能够执行. • Full vs. Incremental(全量 vs. 增量) full类型会备份目标文件所有被使用的数据块, 而incremental备份则只会备份那些从 上次备份开始被修改过的数据块. Tip: 可以使用以上备份类型的任意组合, 常见的情况是在按周/月进行 closed/whole/full备份, 每天则进行open/whole/incremental备份. • Backup set vs. Backup piece(备份集 vs. 备份片) 备份片在物理上存储为一个文件, 备份片只属于一个备份集. 通常情况下一个备份 集仅包含一个备份片, 只有当使用MAXPIECESIZE参数设置了备份片的大小时才有可 能在一个备份集下面创建多个备份片.
  • 4.
    RMAN Overview • Files RMAN可以备份如下文件: 数据文件 控制文件 归档日志文件 SPFILE 备份片(backup set piece) RMAN不能备份如下文件: 临时文件(Tempfiles) 在线重做日志文件 密码文件 PFILE Oracle Net配置文件 • Types RMAN能够生成以下三种类型的备份 – 备份集(backup set) 备份集是RMAN专有的备份格式, 一个备份集中可以实现对多个数据库文件的备份, 对于数据文件 仅包含已经被使用的数据块(如果数据块不属于任何对象, 不会写入备份集中),这大大减小了备份 文件的大小. 备份集可以是全量的也可以是增量的. 在物理上, 备份集由多个备份片(piece)组成. – 压缩备份集(compressed backup set) 压缩格式下的备份集. – 镜像拷贝(image copy) 等同于输入文件, 但仍需要使用RMAN才能进行数据库的还原 (restore)操作 • Channels RMAN备份和恢复操作由服务端通道进程执行, 通道进程分为两种类型: 磁盘通道 和 磁带通道, 分别写不同的介质. • RMAN Metadata Repository RMAN元数据用于描述已经发生的备份操作, 比如备份集由哪些备份片组成, 备份片的位置和 名称; 镜像拷贝文件的位置等. RMAN元数据保存在控制文件中, 也可以选择保存在数据库中.
  • 5.
    RMAN In Action - Consistent Backup • 在11g版本中所有的RMAN备份操作都由backup命令执行, 可以通过rman交互式命 令, rman脚本或者database control界面执行. • Consistent Backup 执行一致性备份要求数据库处在mount状态, 这是因为RMAN需要读取控制文件以 确定数据文件的位置. 下面是一段执行cold/whole/full备份的RMAN脚本: run { shutdown immediate; startup mount; allocate channel d1 type disk; backup as backupset database format '/opt/oracle/backup/offline_full_whole_%d_%U.bus'; alter database open; } 1-2 关闭并重启数据库到mount状态 3 分配一个通道进程, 这里使用磁盘类型 4 使用备份集的方式备份整个数据库, 指定备份文件的位置 5 打开数据库 使用如下方式执行, rman交互式命令: – 使用rman target sys/passwd@ocpdemo登录, 如果是操作系统验证直接使用rman target / – 依次输入花括号中的命令. rman脚本: – 首先将该脚本保存在文本文件中比如offline_full_whole.rman – 切换到脚本文件所在目录, 运行rman target sys/passwd@ocpdemo @ offline_full_whole.rman
  • 6.
    RMAN In Action - Explained • 备份集和备份片 使用RMAN进行一次备份操作时, 通常会生成多个备份集, 这由RMAN自己决定或者 通过人工的干预, 比如运行backup命令时指定filesperset选项. 通常情况下备份集下 面只有一个备份片, 可以通过登录RMAN执行list backup命令查看备份信息, 或者通 过视v$backup_set和v$backup_piece查看. • 存储位置 可以通过backup命令的format选项指定备份片文件的全路径, 需要在该路径中使用 占位符, 比如: – %d 数据库名称 – %U 保证备份片文件名的唯一性 – %s 备份集的序号 – %p 备份片在当前备份集中的序号 – %c 对于多路复用备份(multiplex backups), 表示拷贝的序号. 此占位符对于指定多路复 用备份的文件格式是必须的. 如果不指定format选项, 那么备份文件将会默认存储在闪回区, 相应的目 录结构将会被自动创建, 比如: [oracle@localhost flash_recovery_area]$ tree . . `-- OCPDEMO `-- backupset `-- 2013_03_05
  • 7.
    RMAN In Action - Open Backup • 在最简单的情况下, 可以使用backup database命令执行一次安全可靠的热 备份操作. 下面是一个热备份的示例: run { allocate channel t1 type disk; allocate channel t2 type disk; backup as compressed backupset filesperset 4 database; backup as compressed backupset archivelog all delete all input; } 1-2 分配两个通道进程(t1/t2), 依据服务器的资源可以提升备份的 速度 3 压缩备份整个数据库, 包括数据文件/控制文件/ SPFILE等. filesperset 4指定一个备份集最多包含4个文件, 这样可以缩小 备份文件的大小提升数据库恢复的速度. 4 压缩备份归档日志文件, 完成后删除归档日志 • 备份操作可以针对某个表空间, 数据文件, 或者符合某种模式的归档日志文 件, 示例: backup as backupset format '/backup/orcl/df_%d_%s_%p' tablespace gl_tabs; backup as compressed backupset datafile 4; backup as backupset archivelog like '/u01/archive1/arch_1%';
  • 8.
    RMAN In Action - Incremental Backup • 增量备份是指在某一个备份点的基础上, 对发生改变的数据进行备份. 与全 量备份相比, 增量备份需要的备份时间更短, 磁盘空间使用更少. • level 0 vs. level 1 level 0的增量备份相当于全量备份, 使用如下格式: backup as backupset incremental level 0 database; level 1的增量备份又分为两种类型: – differential 在前一个level 1备份的基础上进行增量备份, 如果不存在level 1的增量备份则基于 level 0备份. 示例: backup as backupset incremental level 1 database; – cumulative 在前一个level 0备份的基础上进行增量备份, 格式如下: backup as backupset incremental level 1 cumulative database; Tip: 进行level 1增量备份时, 如果之前没有level 0备份, 那么当前的level 1备份实质 上执行的是level 0备份.
  • 9.
    RMAN In Action - Incremental Backup • Block change tracking 默认情况下, 增量备份对于备份速度的提升并没有那么显著, 因为增量备份需要扫描数据库文件的内容已发现发生改变 的数据块, 这会花费大量的时间. 可以通过开启”追踪数据块 变化”以加速增量备份, 通过如下命令开启: alter database enable block change tracking using file '/opt/oracle/oradata/change_tracking.dbf'; 如果不指定追踪文件的位置, 该文件默认会创建在 DB_CREATE_FILE_DEST参数指定的目录. 通常情况下该文件 的大小在10M左右. 可以通过v$backup_datafile视图查看启用数据块跟踪的效果, 使用如下SQL: select file#, datafile_blocks, (blocks_read / datafile_blocks) * 100 as pct_read_for backup from v$backup_datafile where used_change_tracking='YES' and incremental_level > 0;
  • 10.
    RMAN In Action - Image Copies • RMAN镜像备份通过数据块的逐个拷贝实现, 备份 的结果是与数据文件、控制文件、归档日志文件 内容完全相同的拷贝. 镜像备份不能使用备份集 相关的特性, 比如增量备份、压缩、设置备份片 大小等. 镜像备份的一个好处是还原数据库的速 度非常快, 来自官方的建议是保留一份数据库的 镜像备份, 以及自该备份开始的归档日志文件. • 镜像备份只能用于数据文件、归档日志文件, 控 制文件, 不用使用于SPFILE. 示例: backup as copy database; backup as copy archivelog all delete all input;
  • 11.
    RMAN In Action - Protect Backups • RMAN支持对备份进行备份, 通常会将这种备份最 终保存到磁带. 使用下面的命令实现备份的多路 复用: backup as backupset device type disk copies 2 database format '/opt/oracle/backup/%s_%p_%c.bus‘; 该命令会对数据库进行备份, 并产生额外的一份 拷贝. • 闪回区备份 – backup recovery area; 基于默认的设置将闪回区备份到磁盘; – backup recovery files; 备份与数据库恢复相关的文件(包括闪回区文件以及不在 闪回区的文件).
  • 12.
    RMAN In Action - Backup Parallelizing • RMAN备份支持并行操作, 最常见的情形是分配多个磁盘通道进程. RMAN备份的并行度由以下的几个因素决定: – 通道进程的个数 通道进程的数量是对备份并行度的硬限制. – 备份集的个数 – 输入文件的个数 并行度不能超过输入文件的个数, 除非多段备份被使用. 示例: run {allocate channel t1 type sbt; allocate channel t2 type sbt; allocate channel t3 type sbt; allocate channel t4 type sbt; backup database files per set 8;} 这里分配了4个通道进程, 限制了并行度不能超过4; 现在假设数据库包括 控制文件在内总共有100个文件, 那么就可以分为13个备份集, 最终的并行 度是4; 如果只有20个文件, 那么将产生3个备份集, 最终的并行度是3.
  • 13.
    RMAN In Action - Configure RMAN Defaults • 登录RMAN之后可以使用show all指定查看所有的配置项, 这里显示的配置项均是默 认值: • 使用configure指令进行配置, 示例: CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET; -- 进行磁 盘备份集备份时, 默认启动4个通道进程(并行度4); CONFIGURE BACKUP OPTIMIZATION ON; -- 启用备份优化, 如果检查到某文件有足够 的备份则不再进行备份; CONFIGURE RETENTION POLICY TO REDUNDANCY 3; -- 默认设置下RMAN保存文件的 一份拷贝, 这里设置为3表示保存文件的3份拷贝. CONFIGURE RETENTION POLICY TO RECOVERY WINDOW of 90 DAYS; -- 在此规则 下, RMAN需要保存所有数据文件在过去90天内的至少一个备份. • 使用CLEAR恢复到默认的配置, 示例: configure device type disk clear;
  • 14.
    RMAN In Action - Managing & Monitoring • list, report & delete – list命令用于查看备份集或者镜像备份, 示例: list backup; -- 查看所有的备份集 list copy; -- 查看所有的镜像拷贝 list backup of database; -- 查看整个数据库的备份集, 包括全量和增量 list backup of datafile 1; -- 查看包含数据文件1的备份集 list backup of tablespace users; -- 查看包含表空间users的备份集 list backup of archivelog all; -- 查看所有归档日志的备份集 list copy of archivelog from time=‘sysdate - 7’; -- 查看过去7天内产生的归档日志镜像备份 list backup of archivelog from sequence 1000 until sequence 1050; -- 查看归档日志备份集, 该归档日志 包含1000到1500的日志切换序号. – report命令用于判断哪些数据库文件需要进行备份, 这需要根据当前的RMAN元数据和保留规则(retention policy)进行判断. 示例: report schema; -- 列出组成数据库的数据文件 report need backup; -- 根据保留规则列出所有所有需要备份的数据文件和归档日志文件 report need backup days 3; -- 列出所有在过去3天内没有进行备份的文件 report need backup redundancy 3; -- 列出所有少于3个份备份的文件 report obsolete; -- 根据当前保留规则列出所有不需要的备份集和镜像 report obsolete redundancy 2; -- 列出所有大于2个备份的备份集或者镜像 – delete 删除备份集或者镜像备份, 示例: delete obsolete; -- 根据保留规则, 删除所有不需要的备份 delete obsolete redundancy 2; -- 删除大于2个备份的备份集或者镜像 delete backupset 4; -- 删除id为4的备份集 delete copy of datafile 6 tag file6_extra; -- 删除数据文6的镜像
  • 15.
    RMAN In Action - DPV • 数据库在启动时会读取控制文件中的备份元数据, 并作为视图供用户查询. 这些视图包括: – v$backup_files RMAN备份的文件, 包括数据文件、spfile、控制文件 及归档日志文件. – v$backup_set, v$backup_piece 备份集, 备份片信息 – v$backup_redolog, v$backup_spfile, v$backup_datafile 分别表示归档日志、SPFIL及数据文件的备份信息 – v$backup_device 连接到RMAN的SBT设备 – v$rman_configuration RMAN配置, 对于配置为默认值的项不包含
  • 16.
    RMAN In Action - Backup Crosschecking • list, report等命令会读取备份原数据并将备份信息展 示出来, 但是它们不会去检查磁盘或者磁带设备上 是否真实存在这些备份文件. RMAN提供了 crosscheck命令以实现此功能, 示例: crosscheck backup of database; 该命令会读取所有与整数据库备份相关的元数据, 并检查备份文件是否存在. 如果文件不存在则标识 备份状态为EXPIRED, 使用crosscheck backup/copy分别 检查所有的备份集和镜像. 删除过期的备份集: delete expired backupset; 注意: 与delete obsolete命令不同的是, 此命令仅更新 RMAN元数据, 不会删除备份文件(已经不存在) .
  • 17.