RMAN备份数据库物理文件到备份集(backupset)中。在创建备份集时,仅备份已经使用的数据库(不备份空闲的数据块),而且还可以采用压缩功能。

RMAN恢复时指当数据库出现介质失败时,使用RMAN命令转储(restore)并恢复(recover)数据库的方法,使用restore命令进行备份文件的转储,然后使用recover命令进行恢复。

RMAN执行命令方式

  • 交互式

    一条一条命令执行并等待其反馈。

    如:
crosscheck backup;
delete expired backup;
  • 批处理脚本

    将一批命令放入到run{} 语句块中批量执行。


run{
crosscheck backup;
delete expired backup;
backup database;
}

RMAN与建立数据库连接

本地连接:

rman target /

# nocatalog表示rman没有创建恢复目录,将rman备份信息存储到控制文件中
rman target / nocatalog

远程连接:

rman target sys/PASSWD@网络连接串 nocatalog

或者进入rman后再连接:

rman
RMAN>connect target /

1、traget表示目标数据库。

2、如果添加nocatalog,则表示rman没有建立恢复目录,此时将使用目标数据库的控制文件代替恢复目录(就算不写他也会使用控制文件代替)

RMAN默认配置

官方文档:

https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/configuring-rman-client-basic.html

https://docs.oracle.com/en/database/oracle/oracle-database/19/rcmrf/CONFIGURE.html

进入rman后输入命令查看RMAN当前配置:show all

[oracle@swq ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Mon Aug 1 11:33:23 2022

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1638871046, not open)

**# 查看RMAN当前配置。show all;**
RMAN> show all;
### [**因为当前没有建立恢复目录,所以提示使用控制文件代替恢复目录存储RMAN备份信息。**](https://www.wolai.com/ggEsY3Z8UgLF8dQPbMwtw#2foP1XkMcnFaNHuF4F4XWz)
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
**# 备份冗余策略,即下次将这次备份的文件标记为过期(obsolete)状态。
# 后面可以使用delete obsolete;来删除过期备份。**
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
**# 是否开启备份优化**
CONFIGURE BACKUP OPTIMIZATION OFF; # default
**# 备份介质,默认是磁盘,也可以是磁带**
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
**# 是否自动备份控制文件
# off:默认情况下,在备份system表空间时,会自动备份controlfile(控制文件)和spfile(服务参数文件)
# on:1、在做任何文件的备份时,都会自动备份controlfile和spfile
#   2、数据库的物理结构发生变化时,也自动备份controlfile(延迟创建)**
CONFIGURE CONTROLFILE AUTOBACKUP OFF;# default
**# 自动备份控制文件的格式定义**
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'autoback_arch_%F';
# 备份并行度。
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
# 备份数据文件默认份数。
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
#备份归档日志默认份数。
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
#备份集的最大体积,默认为无限制。
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
# 加密,一般好像没怎么用。。。。
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
**# 自动备份归档日志冗余策略**
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
# 控制文件的快照
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default

备份保留策略RETENTION POLICY

用于确定备份和归档日志必须为媒体恢复保留多长时间。保留策略可以从备份冗余和恢复窗口两方面定义。RMAN保留满足当前保留策略所需的数据文件备份,以及完全恢复这些数据文件备份所需的任何归档重做日志。

在rman默认配置中有这么一行配置:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

该配置是用来决定哪些备份文件的状态是否为obsolete(过时的)或者是available(可用的)

1)冗余度策略redundancy,给定至少需要保留最近的N份备份,更早的备份会被obsolete

例如,如果有3个备份,而冗余数是2,那么最早的那个备份(即第1个备份)将被废弃

2)恢复窗口策略recovery window,指定一个时间窗口,此策略将保证必须能恢复此时间段内任一个时刻的数据

obsolete和expired的区别:

obsolete:过时的,根据保留策略,restore时不使用,可以删除,但依然有效

expired过期的,无效的

recovery window恢复窗口

至少有一个备份能恢复到sysdate-7的时间点上,之前的备份将标记为obsolete

CONFIGURE RETENTION POLICY TO recovery window of 7 days;

reduadancy冗余度

CONFIGURE RETENTION POLICY TO redundancy 2;

不使用保留策略

CONFIGURE RETENTION POLICY TO none;

不会将备份标记为obsolete状态

清除、恢复默认配置

CONFIGURE RETENTION POLICY clear;

保留策略实验:redundancy 1

设置备份保留策略为:冗余度 1,连续备份2次同一个数据文件,查看是否有obsolete的备份

创建存放 rman 备份目录

mkdir /u01/backup/rman ls -ld /u01/backup/rman

**列出构成数据库的数据文件 **

report schema;

**备份users01.dbf数据文件 **

backup datafile 7 format '/u01/backup/rman/users_%d_%T_%U.bak';

列出obsolete备份

report obsolete;

**再次备份users表空间 **

backup tablespace users format '/u01/backup/rman/users_%d_%T_%U.bak';

列出过时obsolete备份

report obsolete;

**删除过时备份 **obsolete

delete obsolete;

再次列出过时备份****obsolete

report obsolete;

查看备份列表

list backup;

也可以删除未过时的指定备份集****obsolete

list backup;
delete backupset 3;
list backup;

备份优化backup optimization

第二行:CONFIGURE BACKUP OPTIMIZATION OFF; # default

如果优化设置打开,针对归档日志,只读或脱机表空间的数据文件,因为这些文件是不会变化的,备份集运行一个优化算法,全库备份时跳过重复的备份文件

备份优化选项依赖于RETENTION POLICY策略,如果启用优化,在已有足够相同文件副本的情况下(r+1),RMAN将不创建额外的文件副本

开启备份优化选项

CONFIGURE BACKUP OPTIMIZATION on;

将users表空间设置为只读

alter tablespace users read only; select tablespace_name,status from dba_tablespaces;

做三次全库备份

注意第3次全备时,users表空间不备份,redundancy为1,保留2份

backup database format '/u01/backup/rman/db_%d_%T_%U.bak';
backup database format '/u01/backup/rman/db_%d_%T_%U.bak';
backup database format '/u01/backup/rman/db_%d_%T_%U.bak';
list backup;

将users表空间恢复为可读写

alter tablespace users read write;

备份介质(默认备份到什么物理设备)

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

设备类型有两种,可以是磁盘(DISK),或者磁带(STB),默认为磁盘

控制文件自动备份

CONFIGURE CONTROLFILE AUTOBACKUP ON; # default

设置控制文件自动备份

off:默认情况下,在备份system表空间时,会备份controlfile和spfile

on:①在做任何文件的备份时,都会自动备份controlfile和spfile

②数据库的物理结构发生变化时,也自动备份controlfile(延迟创建)

默认off时,备份users表空间时不备份controlfile和spfile

控制文件自动备份路径、名称

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #default

给出控制文件自动备份的路径和命名方式,缺省是‘%F’,控制文件自动备份将放入db_recovery_file_dest目录下,也可以指定到其他地方,如:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rman/%F';

关于%:%告诉RMAN要使用的格式模板,以便备份文件的命名引用预定的格式

  • %d  数据库名称
  • %u  一个八个字符的名称代表备份集与创建时间
  • %p  该备份集中的备份片号,从1开始到创建的文件数
  • %c  备份片的拷贝数
  • %U  系统获取的一个唯一的文件名
  • %T 年月日格式(YYYYMMDD)

当开启控制文件自动备份AUTOBACKUP ON后,控制文件备份将放入指定的目的地,这样RMAN在恢复控制文件备份时能自动找到控制文件备份。即和restore controlfile from autobackup命令配套

【备份并行度、分配通道】

并行度和RMAN工作效率有直接关系。

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

注意:定义备份的位置使用format子句大致有三种形式,以局部优先级更高为原则:

1) 在环境变量里定义,如:

CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/backup/rman/%U.bak'; 

2****) 在run块中定义,如:

run{
allocate channel c1 type disk format '/u01/backup/rman/%s.bak';
};

3)在backup语句中定义,如:

backup datafile 4 format '/u01/backup/rman/%d_%s.bak';

删除所有备份

delete backup;
list backup;

实验:只设置并行度为2

CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

备份语句中指定备份路径,默认分配两个通道:

backup database format '/u01/backup/rman/db_%U.bak';

实验:设置并行度2,指定2个通道及路径

configure channel 1 device type disk format '/u01/backup/rman/%U.bak';
configure channel 2 device type disk format '/u01/backup/rman/%U.bak';
show all;
backup database;

实验:并行度恢复为1,设置2个channel时第二个忽略

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
show all;

取消通道分配

CONFIGURE CHANNEL 1 DEVICE TYPE DISK clear;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK clear;

删除所有备份

delete backup;

分配通道的语句通常在备份脚本run{}内部书写 allocate channel/release channel 分配通道/释放通道

run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup ....
release channel c1;
release channel c2;
}

【多重备份集 多路复用】

默认配置:
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

实验:双重备份集

方法一:通过配置设置

**创建第二个备份目录 **

mkdir /u01/backup/rman2

环境变量中配置

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;

backup tablespace users format '/u01/backup/rman/%U.bak','/u01/backup/rman2/%U.bak';

恢复默认配置

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK clear;

delete backup;

方法二:备份语句中指定

backup copies 2 tablespace users format '/u01/backup/rman/%U.bak','/u01/backup/rman2/%U.bak';

【归档备份 多路复用 】

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

归档日志的多路复用,类似数据文件多路复用 ,也就是备份时备份多少份。

备份集最大尺寸 maxsetsize

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

该配置限制通道上备份集的最大尺寸,单位支持Bytes 、KB、MB、GB,默认值是 unlimited,可以在备份语句中设置 。

加密encryption

第十行: CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

第十一行: CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

加密,Transparent encryption透明的加密,带钱夹,Password encryption:不带钱夹

压缩备份compression

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZEFOR LOAD TRUE ; # default

压缩只能是针对backupset

不要将RMAN的压缩和外部压缩实用程序混合在一起做(考点)

可以在备份语句中使用压缩关键字as compressed backupset

backup tablespace users format '/u01/backup/rman/%U.bak';
backup as compressed backupset tablespace users format '/u01/backup/rman/%U.bak';

查看生成的备份对比

list backup of tablespace users;

V$RMAN_OUTPUT视图

第十三行:RMAN OUTPUT TO KEEP FOR 7 DAYS; # default

设置了V$RMAN_OUTPUT保留的天数。默认为7天,V$RMAN_OUTPUT视图里面记录了RMAN执行的一些操作,例如删除归档日志等

可以自己用select * from v$rman_output查看以下。

归档删除策略

第十四行:CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

对于归档文件,可以根据保留策略,在备份脚本中指定删除归档文件的语句

控制文件快照

第十五行:CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/oracle/dbs/snapcf_prod.f'; #default

目标库控制文件与catalog目录库做全同步或者备份当前控制文件时的时候,需要建立一个controlfile的快照,这个参数指定快照存放位置

Oracle-Rman备份全解析的更多相关文章

  1. ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件

    ORACLE RMAN备份及还原   RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...

  2. Oracle RMAN 备份一例

    Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...

  3. Oracle—RMAN备份(三)

    一.增量备份的相关概念 1. 在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块:增量备份只备份自上次备份以来更改过的块. 2.即使RMAN的默认操作是在增量备份时扫 ...

  4. Oracle—RMAN备份(一)

    一.RMAN备份相关概念 1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件. 2.备份 ...

  5. Oracle—RMAN备份(二)

    在Oracle  RMAN备份(一)中,对各种文件在RMAN中备份进行了说明, 一.备份集的复制 在RMAN 备份中,可以备份其自己的备份,即备份一个文件放在多个目录下,oralce支持最多备份四个. ...

  6. ORACLE RMAN备份--差异增量与累积增量的策略实例图

    转自原文 ORACLE RMAN备份--差异增量与累积增量的策略实例图

  7. Oracle RMAN备份策略

    建立增量备份:如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal .immediate . transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库 ...

  8. ORACLE RMAN备份及还原(转)

    RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...

  9. Oracle Rman备份恢复和管理

    参考资料: Oracle之Rman入门指南 一步一步学Rman Rman简介 Rman-Recover manager恢复管理工具. Oracle集成了很多环境的一个数据库备份和恢复的工具. Rman ...

  10. Oracle RMAN备份恢复指导书

    目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库. ...

随机推荐

  1. python flask 提供web的get/post开发

    转载请注明出处: 使用python flask框架编写web api中的get与post接口,代码编写与调试示例如下: from flask import Flask, request, jsonif ...

  2. LSTM推导

    LSTM推导 forward propagation def lstm_cell_forward(xt, a_prev, c_prev, parameters): """ ...

  3. [项目源码] JavaWeb校园宿舍管理系统

    jsp校园宿舍管理系统源码,采用Servlet+JSP+MySQL.包含数据库文件,界面采用bootstrap,简洁大方. 项目导入eclipse后的目录结构如下: 关注下面公众号,下载源码

  4. PC首页资源加载速度由8s降到2s的优化实践

    随着需求的不断开发,前端项目不断膨胀,业务提出:你们的首页加载也太慢啦,我都需要7.8秒才能看到内容,于是乎主管就让我联合后端开启优化专项,目标是3s内展示完全首页的内容. 性能指标 开启优化时,我们 ...

  5. 485modbus转profinet网关连接威纶通与三菱变频器modbus通讯

    485modbus转profinet网关连三菱变频器modbus通讯触摸屏监控 本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯.485modbu ...

  6. We Need More Bosses 题解

    We Need More Bosses 题目大意 给定一张图,找到两个点,使得这两个点之间的所有路径必须经过的边最多. 思路分析 我们先来思考一下如果已知两个点,怎么求两个点之间必须经过的边的数量. ...

  7. Go 函数多返回值错误处理与error 类型介绍

    Go 函数多返回值错误处理与error 类型介绍 目录 Go 函数多返回值错误处理与error 类型介绍 一.error 类型与错误值构造 1.1 Error 接口介绍 1.2 构造错误值的方法 1. ...

  8. .NET6发布项目到腾讯云Windows2012R全网最详细教程

    注意:本次使用腾讯云作为本次的演示 1.创建服务器及连接 1.1 请先在腾讯云.阿里云等创建实例 1.2 打开远程连接工具输入在腾讯云获取的公网iP输入计算机 1.3 根据图片点击连接 1.4 输入服 ...

  9. 使用 mt19937 生成区间随机数

    #include <cstdio> #include <random> #include <ctime> using namespace std; int main ...

  10. 在Map或者Collection的时候,不要用它们的API直接修改集合的内容(否则会出现 java.util.ConcurrentModificationException 异常)

    http://www.iteye.com/topic/124788 http://www.blogjava.net/EvanLiu/archive/2008/08/31/224453.html