Oracle Recovery Manager 的功能
- 备份数据库,包括数据文件、控制文件和归档重做日志
- 管理备份和恢复任务
- 执行增量块级备份和块级介质恢复
- 在备份过程中检测损坏的块
- 创建备份时使用二进制压缩
Oracle Recovery Manager 组件
- Oracle Recovery Manager 可执行程序:Oracle Recovery Manager 命令行接口通过 RMAN 客户机应用程序进行调用。
- Oracle Enterprise Manager:提供了最常用 RMAN 功能的图形界面
- 服务器会话:由 RMAN 调用的服务器进程 (UNIX) 或线程(Windows 2000) 将连接到目标数据库,通过 PL/SQL 接口执行备份、还原和恢复功能。
- 目标数据库:使用 RMAN 对其执行备份和恢复操作的数据库称为目标数据库。
- 辅助数据库:创建重复的数据库或执行表空间时间点恢复 (TSPITR) 时使用辅助数据库
- 通道:通道表示传输到某设备类型的一串数据。可以手动分配通道,也可以使用自动通道分配来预配置通道
- RMAN 资料档案库:RMAN 在RMAN 资料档案库中维护有关目标数据库及其备份和恢复操作的元数据。RMAN 资料档案库数据总是存储在目标数据库的控制文件中。
- 恢复目录:RMAN 资料档案库数据还可存放在恢复目录中。
- 介质管理库:对磁带进行读写操作时,RMAN 将使用介质管理库 (MML)。
配置 RMAN 的步骤
- 确定资料档案库的位置:
- 控制文件
- 管理更简单
- 默认设置
- 恢复目录
- 复制控制文件数据
- 空间可存储更多数据
- 可服务于许多目标
- 可存储 RMAN 脚本
- 设置步骤
- 创建要用作恢复目录的数据库。也可确定一个现有数据库作为恢复目录。
- 在恢复目录数据库中,创建将拥有恢复目录数据的用户。假定 catdb是目录数据库的名称,rcat_ts是您所创建的表空间的名称,该表空间用于存储目录数据
-
$ sqlplus sys/password@catdb as sysdba
SQL> CREATE USER rman IDENTIFIED BY cat
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE rcat_ts
QUOTA UNLIMITED ON rcat_ts; - 将RECOVERY_CATALOG_OWNER 角色授予目录所有者。该角色将为用户提供维护和查询恢复目录所需的所有权限。
-
GRANT RECOVERY_CATALOG_OWNER TO rman;
- 启动 RMAN,并以目录所有者身份登录。
-
$ rman catalog rman/cat@catdb
RMAN> CREATE CATALOG TABLESPACE rcat_ts; - 使用 RMAN 连接到目标数据库,并在新创建的恢复目录中注册该目标数据库。
-
$ rman target sys/oracle@orcl catalog rman/cat@catdb
RMAN> register database; - 定义数据库和环境变量。
- 数据库初始化参数
- CONTROL_FILE_RECORD_KEEP_TIME:指定 RMAN 信息在被覆盖之前可在控制文件中存储的最少天数(默认值为7天)
- DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE
- 环境变量
- NLS_DATE_FORMAT:确定 RMAN 命令中时间参数使用的格式
- NLS_LANG:确定 RMAN 命令中时间参数使用的格式
- 启动 RMAN 并连接到目标数据库或恢复目录数据库。
- 连接类型
- 目标数据库:RMAN 可通过 SYSDBA 权限将您连接到目标数据库。
- 恢复目录数据库:这是一个配置用于RMAN 资料档案库的可选数据库。
- 辅助数据库
- 使用 RMAN DUPLICATE命令创建的数据库
- 表空间时间点恢复 (TSPITR) 过程中使用的临时数据库
- 备用数据库,或生产数据库的副本,可用于进行灾难恢复
- 启动 RMAN
- 本地
- UNIX
- $ ORACLE_SID=DB01; export ORACLE_SID
- $ rman target /
- WINDOWS
- C:\> set ORACLE_SID=DB01
- C:\> rman target /
- 远程
- rman target sys/target_pwd@DB01
- 其它 RMAN 命令行参数
- 将 RMAN 输出写入日志文件
- $ rman TARGET sys/oracle
- LOG=$HOME/oradata/u03/rman.log APPEND --LOG=filename 参数指定用于记录 RMAN 输出的文件。APPEND关键字指出新的输出应附加在消息日志文件的末尾。
- 调用 RMAN 时执行命令文件
- rman TARGET sys/oracle
- CMDFILE=$HOME/scripts/my_rman_script.rcv --CMDFILE=filename来运行包含 RMAN 命令的文件。运行命令文件后,RMAN 将终止。
- 启动 RMAN 时建立数据库连接
- $ rman TARGET SYS/sys_pwd@orcl CATALOG
- rman/rman@rcat
- 配置永久性设置。
- 使用 CONFIGURE 命令
- 配置自动通道
- 指定备份保留策略
- 指定要创建的备份副本数
- 将默认备份类型设置为 BACKUPSET 或 COPY
- 限制备份集的大小
- 在备份中排除表空间
- 启用和禁用备份优化
- 配置控制文件的自动备份
- EM
- 维护--->备份设置
- 控制文件自动备份
- 启用
- em
- RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
- 何时备份
- 在RMAN 资料档案库中记录了成功的备份。
- 数据库的结构更改影响了控制文件的内容,因此必须进行备份。
- 保留策略:描述哪些备份将被保留以及保留时间
- 恢复窗口:建立一个时间段,在该时段内必须可以进行时间点恢复
- RMAN> CONFIGURE RETENTION POLICY
- TO RECOVERY WINDOW OF 7 DAYS;
- 冗余:建立必须保留的固定数量的备份(默认保留策略的冗余度为 1)
- 策略互相排斥
- 管理永久性设置
- 使用 RMAN SHOW命令,可查看 RMAN 配置设置。
- 通过运行带有 CLEAR 选项的 CONFIGURE 命令,可将任何相应的 CONFIGURE 命令返回为默认值。
- 通道分配
- 概述
- 执行备份和恢复命令之前必须对通道进行分配
- 每个分配的通道都将在 RMAN 可执行程序与目标数据库实例之间建立连接
- 将为每个分配的通道创建目标数据库的 Oracle 数据库进程
- 查询 V$BACKUP_DEVICE 视图来确定支持的设备类型
- 自动通道
- RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
- 手动分配的通道是可覆盖自动通道设置的通道
- RMAN> RUN {
- 2> ALLOCATE CHANNEL c1 DEVICE TYPE disk;
- 3> BACKUP DATAFILE'/u01/oradata/user01.dbf';
- 4> }
- 通道控制选项
- 配置并行度:
- RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
- 指定备份片段大小的最大值
- RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
- 2> MAXPIECESIZE 2G;
- 定义所生成备份文件的名称格式
- RMAN> RUN {
- 2> ALLOCATE CHANNEL d1 DEVICE TYPE DISK
- 3> FORMAT '/disk1/backups/%U';
- 4> BACKUP DATABASE PLUS ARCHIVELOG; }
备份目标
- 磁盘目录
- 介质管理库(磁带机)
- 通常在磁盘备份丢失的情况下用于进行灾难恢复
- 介质管理
- 介质管理器是一种用于加载、标记和卸载连续介质的实用工具
- 备份(示例)
-
run {
# Allocating a channel of type 'sbt' for serial device
ALLOCATE CHANNEL ch1 DEVICE TYPE sbt;
BACKUP DATAFILE 3;
} - 还原
- Oracle 数据库请求还原某个特定文件。
- 介质管理器确定包含文件的磁带并读取磁带。
- 介质管理器将信息传送回 Oracle 数据库会话。
- Oracle 数据库将文件写入磁盘。
- 快速恢复区
- 概述
- 这是为备份、恢复及闪回数据库留出的一块磁盘区域
- 可定义其位置和大小
- 可使用 Oracle Managed Files 对文件自动进行命名
- 根据需要将自动保留和删除文件
- 将快速恢复区与 RMAN 配合使用
- DB_RECOVERY_FILE_DEST = '/u01/oracle/fra' --修改快速恢复区的路径
- DB_RECOVERY_FILE_DEST_SIZE = 2G --修改快速恢复区大小
- 使用 EM 监视快速恢复区
- 相关链接--->所有度量--->恢复区
- 快速恢复区的空间使用
- 将保留策略配置为适合数据库的最小值。
- 定期备份归档日志文件并在完成备份后删除这些文件
- 使用 RMAN REPORT OBSOLETE 和 DELETE OBSOLETE 命令删除不再需要的备份和文件副本。
- V$FLASH_RECOVERY_AREA_USAGE(查看快速恢复区磁盘空间使用情况)
-
SELECT file_type,
percent_space_used AS used,
percent_space_reclaimable AS reclaimable,
number_of_files AS number
FROM v$flash_recovery_area_usage ; - FILE_TYPE:该列表示文件类型,CONTROLFILE、ONLINELOG、ARCHIVELOG、BACKUPPIECE、IMAGECOPY、FLASHBACKLOG
- PERCENT_SPACE_USED:表示快速恢复区内当前用于存储给定类型文件的区域的百分比
- PERCENT_SPACE_RECLAIMABLE:表示快速恢复区内当前用于存储那些由于作废、冗余或已备份到第三方设备而可以删除的给定类型文件的区域百分比
- NUMBER_OF_FILES:该列表示指定文件类型的文件数。
- 备份快速恢复区
- EM
- 维护-->调度备份-->备份策略(自定义中的磁盘上的所有恢复文件)
- RMAN
- RMAN> BACKUP RECOVERY AREA;RMAN> BACKUP RECOVERY FILES;
- 对当前快速恢复区目的地内创建的、以前尚未备份过的所有快速恢复文件进行备份
- 闪回日志、增量位图、当前控制文件以及联机重做日志文件等其它文件将不备份
- 该命令将对磁盘中以前尚未备份过的所有恢复文件进行备份。
- 使用快速恢复区的优点
- 便于确定数据库备份的位置
- 自动管理为恢复文件分配的磁盘空间
- 不需要更改现有脚本
- 可将数据库备份、归档日志和控制文件备份均放入快速恢复区