rman 备份简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RMAN 备份简介
准备工作
1、启用快速恢复区域
将 oracle 数据库置于“安装模式”以启用快速恢复区域,以存储 rman 备份
sqlplus / as sysdba
SQL> startup mount force
SQL> alter system set db_recovery_file_dest_size=8G;
SQL> alter system set db_recovery_file_dest=/opt/oracle/fast_recovery_area;
SQL> startup force
db_recovery_file_dest_size 指定快速恢复区域的大小;
db_recovery_file_dest 指定快速恢复区域的存储位置。
2、启用日志归档
将 oracle 数据库置于“安装模块”以启用日志归档模式,归档的日志存储在快速恢复区域中
sqlplus / as sysdba
SQL> startup mount force
SQL> alter database archivelog;
SQL> alter database open;
启用日志归档的目的在于允许对数据库进行热备份,可以将数据库恢复到故障点。
3、启用更改跟踪
启用更改跟踪功能记录自上次 level0/level1 备份以来更改的数据块位置,以提升增量备份的性能。
更改跟踪文件默认保存在快速恢复区域中。
sqlplus / as sysdba
SQL> startup mount
SQL> alter database enable block change tracking;
4、配置备份选项
每次成功备份或数据库架构更改(归档模式下)后,自动对控制文件和服务参数文件进行备份,备份保存在快速恢复区域中。
rman target /
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
相关概念简介
快速恢复区域
快速恢复区域用于存储数据库恢复相关的文件——控制文件、联机 REDO 日志文件、归档日志文件、闪回日志和 RMAN 备份,并且这些文件由 ORACLE 数据库和 RMAN 自动管理。
日志归档
日志归档可以保护 ORACLE 数据库免受媒体故障——媒体故障会导致数据永久性的丢失,需要通过备份还原数据库。
在完全备份(或 level 0 备份)后,通过媒体恢复重新应用归档日志文件和联机日志文件中的日志记录(或 level 1 增量备份),恢复完全备份之后所提交的事务,从而将数据库恢复到故障点。
备份方案
保留最新的备份
只保留一份最新的备份,通过此备份可以将数据库还原到故障点。
即每天生成一个增量备份,以记录当天的数据库更改;并将上一次的增量备份应用到(forward)数据库的镜像副本上,以使镜像副本始终保持为昨天数据库的镜像。
rman 备份脚本
RUN
{
RECOVER COPY OF DATABASE
WITH TAG 'incr_update';
BACKUP
INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
CROSSCHECK BACKUPSET;
CROSSCHECK ARCHIVELOG ALL;
DELETE OBSOLETE;
}
说明:第一次执行此脚本时会生成一个 level0 完全备份(镜像副本);以后每次执行时都会生成一个level1 增量备份(自上次备份以来数据库的更改),并在将上次生成的 level1 增量备份应用于镜像副本。
同时,在每次执行时检查并删除过时的增量备份和归档日志(过时的意思是不再被当前备份策略所需要的;例如,当前备份策略是保留一份最新的数据库备份,如果有一份增量备份保存的是昨天数据库更改的数据,则此增量备份便是过时的)。
相关概念简介
增量备份
level 0 增量备份实际上是完全备份——备份所有的数据块,是随后 level 1 增量备份的基准,但是完全备份不包含在增量备份策略中,不是随后的 level 1 备份的父备份。
level 1 增量备份有两种类型:差异增量备份,备份自上次 level 0/1 增量备份以来更改的数据块;累积增量备份,备份自上次 level 0 增量备份以来更改的数据块。
两者相比,差异增量备份所需的备份时间较短,备份的数据较少,但是在还原时需要多份差异增量备份;而累积增量备份所需的备份时间较长,备份的数据较大,但是还原时至需要还原 level 0 和累积增量备份。
在 ORACLE 10 及以上版本,如果 level 1 备份前没有做过任何增量备份,则 level 1 会备份自数据文件生成以来更改的数据块;而在之前的版本,则会执行 level 0 备份。
还原操作
1、将数据库还原到故障点
前提:确保服务参数文件、控制文件没有损坏;数据库至少启动于“安装模式”下。
操作:
rman target /
RMAN> startup mount;
RMAN> RUN
2> {
3> RESTORE DATABASE; # 通过数据库的镜像副本还原
4> RECOVER DATABASE; # 通过 level 1 增量备份、归档日志、当前的 redo 日志还原
5> }
RMAN> SQL 'alter database open'; # 打开数据库
2、将数据库还原到即时点
前提:确保服务参数文件、控制文件没损坏;数据库至少启动于“安装模式”下。
操作:
rman target /
RMAN> startup mount;
RMAN> RUN
2> {
3> RESTORE DATABASE;
4> # 通过 level 1 增量备份、归档日志将数据库还原到昨天此时的状态
5> RECOVER DATABASE
6> UNTIL TIME 'SYSDATA-1';
7> }
RMAN> SQL 'alter database open resetlogs'; # 打开数据库
3、服务参数文件还原
如果数据库正在运行,服务参数文件损坏不会导致数据库停止运行,但是会导致数据库重启失败。
rman target /
# 启动数据库实例,由于缺少服务参数文件,RMAN 将使用伪参数文件启动实例
RMAN> startup nomount force;
# 直接通过自动备份还原服务参数文件
RMAN> restore spfile
2> from '/opt/oracle/fast_recovery_area/oa/autobackup/2011-12-18
3> /O1_MF_S_770245115_7GVRVW1Y_.BKP';
RMAN> startup;
4、控制文件还原
如果数据库正在运行,当所有的控制都损坏时数据库将会终止。
rman target /
RMAN> startup nomount;
RMAN> restore controlfile
2> from '/opt/oracle/fast_recovery_area/oa/autobackup/2011-12-18
3> /O1_MF_S_770245115_7GVRVW1Y_.BKP';
RMAN> alter database mount;
# 还原控制文件后需要执行媒体恢复过程,在这个过程中 rman 会检索 redo 日志文件和归档日志# 文件,将其记录到新的控制文件中;并会检索快速恢复区域,将备份记录到新的控制文件中。
RMAN> recover database;
RMAN> SQL 'alter database open resetlogs';
维护
快速恢复区域的存储空间由 ORACLE 自动管理。
对于 RMAN 备份及其所需的归档日志文件,当这些备份遵循备份保留策略过时(obsolete)后 ORACLE 会将其标示为可删除的,当快速恢复区域存储空间不足时 oracle 会将其自动删除。
当快速恢复区域所分配的空间被占满时,数据库会由于无法执行日志归档而停止,如果归档目标为快速恢复区域。
因此,监视快速恢复区域的空间使用情况尤其重要。
默认情况下,当快速恢复区域的可用空间小于 15% 时 ORACLE 会发送警告,小于 3% 时 ORACLE 会发送严重警告。
这些警告会记录在 alert 日志文件中,也可以通过 em 控制台查看到。