RMAN基本概念
【官方文档】
Backup and Recovery Reference —> Backup and Recovery User’s Guide
1 RMAN介绍
1.1 RMAN功能
- Recovery Manager,是备份和恢复数据库的管理工具
- 由server process进行备份和恢复
- rman备份的文件种类
- datafile(database、tablespace、datafile)
- controlfile、spfile(智能备份spfile,不可备份pfile)
- archivelog
- 在归档模式下支持非一致性备份(热备)
非归档方式的RMAN只能冷备, 并在mount下做
非归档方式的RMAN恢复只能还原最后一次备份
1.2 RMAN特点
- 不备份数据文件中未分配的块以及未使用的块,节省时间空间
- 不备份临时表空间
- 可以实现增量备份
- 支持多通道并行工作
- 可以备份ASM文件
1.3 RMAN架构
1)可连接三类数据库:target database(备份的目标库),duplicate database(复制数据库),catalogdatabase(目录数据库)
2)存储设备:disk、tape(sbt磁带机)存放备份文件的设备
3)channel:目标库和存储设备之间备份恢复通道(服务进程)默认最少启动一个channel,可同时启动多个channel并发操作
4)server process:用于备份和恢复的进程
5)rman的元数据:记录备份的信息(放在目标库的controlfile里)
6)catalog database:集中管理、存放多个库的备份的元数据metadata,还可以存储备份脚本
7)MML:media manage layer介质管理层:用于管理磁带机的库文件或驱动
2 环境准备
2.1 数据库归档模式
2.2 设置快速恢复区fast recovery area
mkdir /u01/flash_recovery_area
alter system set db_recovery_file_dest_size=4G; alter system set db_recovery_file_dest='/u01/flash_recovery_area'; show parameter db_recovery_file_dest
3 连接方法
3.1 本地连接
RMAN工具和target database在同一台服务器
rman target /
3.2 远程连接
RMAN客户端通过ORACLE_NET连接target database,需在target database启动监听,在client配置tnsnames.ora
rman target sys/oracle@orcl
rman target sys/oracle@192.168.9.10:1521/orcl
4 RMAN的命令格式
4.1 交互式(也叫stand alone方式)
一条一条命令执行并等待其反馈:
RMAN> shutdown immediate;
RMAN> startup force mount;
RMAN> alter database open;
RMAN> sql ‘alter system switch logfile’;
RMAN> sql ‘alter database datafile 4 offline’;
RMAN> sql ‘select * from scott.emp’; select 不显示结果
4.2 批处理方式(也叫job方式)
将一批命令放在run{}中执行:
RMAN> run {
shutdown immediate;
startup mount;
allocate channel c1 type disk; 分配通道必须写在run{}中,c1为自定义的通道名称,不能单独执行命令
allocate channel c2 type disk;
backup database format ‘/u01/backup/rman/db_%d_%T_%U.bak’;
alter database open;
release channel c1; 释放通道必须写在run{}中,不能单独执行命令
release channel c2;
}
5 配置RMAN的环境
查看RMAN所有的全局环境配置
show all;
5.1 【保留策略】retention policy
第一行:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
保留策略:用来决定哪些备份是有效的,而哪些备份是淘汰的
保留策略决定了备份是否为obsolete
obsolete有“淘汰、过时”的意思,RMAN还原备份时不会选择obsolete的备份
1)冗余度策略redundancy,给定至少需要保留最近的N份备份,更早的备份会被obsolete
例如,如果有3个备份,而冗余数是2,那么最早的那个备份(即第1个备份)将被废弃
2)恢复窗口策略recovery window,指定一个时间窗口,此策略将保证必须能恢复此时间段内任一个时刻的数据
obsolete和expired的区别:
obsolete过时的,根据保留策略,restore时不使用,可以删除,但依然有效
expired过期的,无效的
5.1.1 recovery window恢复窗口
至少有一个备份能恢复到sysdate-7的时间点上,之前的备份将标记为obsolete
CONFIGURE RETENTION POLICY TO recovery window of 7 days;
5.1.2 reduadancy冗余度
CONFIGURE RETENTION POLICY TO redundancy 2;
5.1.3 不使用保留策略
CONFIGURE RETENTION POLICY TO none;
不会将备份标记为obsolete状态
5.1.4 清除、恢复默认配置
CONFIGURE RETENTION POLICY clear;
5.1.5 保留策略实验: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;
删除过时备份
delete obsolete;
再次列出obsolete备份
report obsolete;
查看备份列表
list backup;
也可以删除未obsolete的指定备份集
list backup; delete backupset 3; list backup;
5.2 【备份优化】backup optimization
第二行:CONFIGURE BACKUP OPTIMIZATION OFF; # default
如果优化设置打开,针对归档日志,只读或脱机表空间的数据文件,因为这些文件是不会变化的,备份集运行一个优化算法,全库备份时跳过重复的备份文件
备份优化选项依赖于RETENTION POLICY策略,如果启用优化,在已有足够相同文件副本的情况下(r+1),RMAN将不创建额外的文件副本
5.2.1 开启备份优化选项
CONFIGURE BACKUP OPTIMIZATION on;
5.2.2 将users表空间设置为只读
alter tablespace users read only; select tablespace_name,status from dba_tablespaces;
5.2.3 做三次全库备份
注意第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;
5.2.4 将users表空间恢复为可读写
alter tablespace users read write;
5.3 默认设备
第三行:CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
设备类型有两种,可以是磁盘(DISK),或者磁带(STB),默认为磁盘
5.4 【控制文件自动备份】
第四行:CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
设置控制文件自动备份
off:默认情况下,在备份system表空间时,会备份controlfile和spfile
on:①在做任何文件的备份时,都会自动备份controlfile和spfile
②数据库的物理结构发生变化时,也自动备份controlfile(延迟创建)
默认off时,备份users表空间时不备份controlfile和spfile
5.5 控制文件自动备份路径、名称
第五行: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命令配套
5.6 【备份并行度、分配通道】
第六行: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';
并行度和RMAN工作效率有直接关系
删除所有备份
delete backup; list backup;
5.6.1 方法一:只设置并行度2
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
备份语句中指定备份路径,默认分配两个通道
backup database format '/u01/backup/rman/db_%U.bak';
5.6.2 方法二:设置并行度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;
5.6.3 并行度恢复为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; }
5.7 【多重备份集 多路复用】
第七行:CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
创建第二个备份目录
mkdir /u01/backup/rman2
5.7.1 环境变量中配置
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;
5.7.2 备份语句中指定
backup copies 2 tablespace users format '/u01/backup/rman/%U.bak','/u01/backup/rman2/%U.bak';
5.8 归档备份 多路复用
第八行:CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
归档日志的多路复用,类似数据文件多路复用
5.9 备份集最大尺寸 加密
第九行: CONFIGURE MAXSETSIZE TO UNLIMITED; # default
该配置限制通道上备份集的最大尺寸,单位支持Bytes 、KB、MB、GB,默认值是 unlimited,可以在备份语句中设置
加密
第十行: CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
第十一行: CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘; # default
加密,Transparent encryption透明的加密,带钱夹,Password encryption:不带钱夹
5.10【压缩】
第十二行: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;
5.11 V$RMAN_OUTPUT视图
第十三行:RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
设置了V$RMAN_OUTPUT保留的天数。默认为7天,V$RMAN_OUTPUT视图里面记录了RMAN执行的一些操作,例如删除归档日志等
5.12 归档删除策略
第十四行:CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
对于归档文件,可以根据保留策略,在备份脚本中指定删除归档文件的语句
5.13 控制文件快照
第十五行:CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/oracle/dbs/snapcf_prod.f’; #default
目标库控制文件与catalog目录库做全同步或者备份当前控制文件时的时候,需要建立一个controlfile的快照,这个参数指定快照存放位置
今天的文章RMAN基本概念_rman是什么意思分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/46632.html