Oracle-Rman备份全解析
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/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备份全解析的更多相关文章
- ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件
ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...
- Oracle RMAN 备份一例
Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...
- Oracle—RMAN备份(三)
一.增量备份的相关概念 1. 在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块:增量备份只备份自上次备份以来更改过的块. 2.即使RMAN的默认操作是在增量备份时扫 ...
- Oracle—RMAN备份(一)
一.RMAN备份相关概念 1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件. 2.备份 ...
- Oracle—RMAN备份(二)
在Oracle RMAN备份(一)中,对各种文件在RMAN中备份进行了说明, 一.备份集的复制 在RMAN 备份中,可以备份其自己的备份,即备份一个文件放在多个目录下,oralce支持最多备份四个. ...
- ORACLE RMAN备份--差异增量与累积增量的策略实例图
转自原文 ORACLE RMAN备份--差异增量与累积增量的策略实例图
- Oracle RMAN备份策略
建立增量备份:如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal .immediate . transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库 ...
- ORACLE RMAN备份及还原(转)
RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...
- Oracle Rman备份恢复和管理
参考资料: Oracle之Rman入门指南 一步一步学Rman Rman简介 Rman-Recover manager恢复管理工具. Oracle集成了很多环境的一个数据库备份和恢复的工具. Rman ...
- Oracle RMAN备份恢复指导书
目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库. ...
随机推荐
- 淘宝商品详情 API的使用说明
淘宝平台提供了 API 接口可以用于获取淘宝商品详情信息.通过 API 接口,我们可以获取到商品的基本信息.价格.评论及评价等详细信息.以下是使用说明: 获取淘宝API账号 在获取淘宝商品详情 API ...
- Jmeter获取Websocket多帧消息的实现方法
由于需要对WebSocket进行压力测试,因此又回归到了JMeter的使用.网络上缺少具体的获取多帧消息的操作,且自己也踩了两个坑,总结一下可行的操作供大家参考. 一.情况说明 ...
- 升讯威在线客服系统的并发高性能数据处理技术:PLINQ并行查询技术
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可. 客户组 ...
- Linux离线安装Mysql-5.7
1.背景描述 在真实业务场景下,Linux服务器一般位于内网,所以无法直接访问互联网资源: 特别是安装数据库的Linux服务器,在网络方面的管控只会更加严格: 因此,需要提前下载好相关资源,再传输到内 ...
- MFC中使用函数实现ini文件的连续读写
实现的思路: 首先通过读取文件中的count值,确定当前信息条数: 第二步:将count进行累加,把信息写到累加后的键值"="的后面: 第三步:写入count累加值,实现连续读写: ...
- DEDEBIZ禁止发布重复标题文章的方法
修改文件位置 /admin/article_add.php 找到 if (empty($click)) $click = ($cfg_arc_click == '-1' ? mt_rand(1000, ...
- Mysql忘记密码后如何重置密码
长时间不使用本机的Mysql后把密码忘记了咋整?直接上干货: 第一步(Mysql部署的位置,若自己能找到就忽略这一步):任务管理器中也可以找到 第二步:修改配置文件 在my.ini末尾加上 skip- ...
- 解密IP分片与重组:数据传输中的关键技术
引言 在上一章节中,我们详细讨论了IP的分类和无分类原则的原理以及其在网络通信中的应用.IP分片与重组是在数据包传输过程中起到关键作用的机制.当数据包的大小超过网络链路的MTU(最大传输单元)限制时, ...
- Python并发编程——multiprocessing模块、Process类、Process类的使用、守护进程、进程同步(锁)、队列、管道、共享数据 、信号量、事件、 进程池
文章目录 一 multiprocessing模块介绍 二 Process类的介绍 三 Process类的使用 四 守护进程 五 进程同步(锁) 六 队列(推荐使用) 七 管道 八 共享数据 九 信号量 ...
- zabbix 监控 IPMI
1.IPMI的相关介绍: 智能平台管理接口(Intelligent Platform Management Interface)原本是一种Intel架构的企业系统的周边设备所采用的一种工业标准.IPM ...