Oracle 12c RMAN全攻略

1. RMAN命令

  • 12cRMAN可以执行大部分SQL命令,不需要SQL关键字。
RMAN> select open_mode from v$database;

using target database control file instead of recovery catalog
OPEN_MODE           
--------------------
READ WRITE          

  • 可以使用spool log to [destination]/spool log off来记录rman命令输出以及报错。

  • 使用替代变量,可以使用下面,也可以使用using语法

1) 编写脚本
# name: full_db.rman
BACKUP TAG &1 COPIES &2 DATABASE;
EXIT;

2)调用
RMAN> @/rman/full_db.rman Q106 2

2. RMAN备份

  • 在容器数据库CDB中,只有连接到根才能建立或修改配置信息,即连接到插接式数据库PDB时不能修改配置信息。

  • 对于磁盘,可以备份磁盘镜像以及备份集两种类型,对于磁带的默认备份类型只能是备份集。

2.1 控制RMAN备份

# 1. 分配通道控制备份片大小
rman> configure channel device type disk maxpiecesize 2g;

# 2. 分配通道时控制备份到不同磁盘
RMAN> run {
   
allocate channel c1 device type disk format 'd:\orabak\%u.bak';
allocate channel c2 device type disk format 'e:\orabak\%u.bak';
b
}

# 3. RMAN通道数与通道文件限制
在RMAN中最多可以分配255个通道,每个通道可并行读写64个文件

# 4.查看通道分配策略
RMAN> show channel;

2.2 备份保留策略

1.备份保留策略
备份保留策略仅适用于数据文件的完全备份(或0级备份)和控制文件备份。
对于数据文件镜像副本和代理副本,如果RMAN确定不需要副本或代理副本,那么可以手工删除它们。
对于数据文件备份集,只有备份集内的所有数据文件备份都已过时,RMAN才会允许删除这些备份集。

# 禁用保留策略
RMAN> configure retention policy to none;

# 恢复默认值
RMAN> configure retention policy clear;

2.归档保留策略
禁用归档日志删除策略设置为NONE时,RMAN会考虑同时满足下面条件的归档重做日志文件是可以删除的:一是已被转移到LOG_ARCHIVE_DEST_n参数指定的远程目的地,无论是在快速恢复区域还是在外部;二是快速恢复区中的归档重做日志文件至少备份一次到磁盘或SBT,或者根据备份保留策略而过时的日志。
只有当保证恢复点和Oracle闪回数据库都不再需要的日志,备份保留策略才将其视为过时日志。如果归档日志是在SYSDATE-'DB_FLASHBACK_RETENTION_TARGET'之后创建,闪回数据库会需要这些归档重做日志。
# 配置归档删除策略
RMAN> configure archivelog deletion policy to backed up 2 times to disk;

2.3 快速恢复区(Fast Recovery Area)

1. 启用快速恢复区
设置db_recovery_file_dest_size与db_recovery_file_dest两个参数启用,可以在线。

2.禁用快速恢复区
删除保证还原点,V$RESTORE_POINT,关闭flashback database,设置db_recovery_file_dest为空来禁用快速恢复区。
如果使用快速恢复区归档,则将log_archive_dest_n参数设置为非快速恢复区。

3.自动删除原则
当文件可以从快速恢复区删除时,要遵守以下删除规则:
①永久文件是永远不能删除。
②按保留策略已过时的文件均可删除。
③已复制到磁带上的临时文件可以删除。
④归档重做日志只有在所有的日志消费者都满足了要求后才可以删除。
控制从所快速恢复区删除的最安全和可靠的方式是配置保留策略和归档日志删除策略。如果想将移动到磁带的文件尽可能保留在磁盘上,就要增加快速恢复区的磁盘配额。

 4.查看快速恢复区情况‘
 v$recovery_file_dest  :当前位置、磁盘配额,正在使用的空间,删除文件回收的空间。
 v$recovery_area_usage

2.4 backup…plus archivelog

①执行ALTER SYSTEM ARCHIVELOG CURRENT语句对当前的联机重做日志进行归档。
②执行BACKUP ARCHIVELOG ALL命令备份所有归档重做日志文件。
③执行BACKUP命令对指定的数据文件等进行备份。
④再次执行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前的联机重做日志进行归档。
⑤对备份期间新生成的尚未备份的归档重做日志文件进行备份。

2.5 双工备份

# 概念
双工备份:RMAN创建备份集时,同时生成备份集的多个完全相同副本,提高可靠性。

# 限制
- RMAN最多可以建立四个副本
- 双工备份集不能到快速恢复区
- 每个副本有唯一副本编号backupset_1_1/backupset_1_2
- 双工备份仅适用于备份集,不适用于镜像副本
- rman备份双工时,可以手工指定多个名字例如:format 'backupset_01','backupset_02',如果只指定一个format需要有格式%c,当然也可以不指定format,备份到configure配置的路径跟名称或备份到fra使用自动命名。

# 配置
backup...copies
configure...backup copies

# 样例
- 配置样例
configure channel device type disk format '/rman/%U','/test/%U';
configure archivelog backup copies for device type disk to 2;
configure datafile backup copies for device type disk to 2;
- 备份样例
backup as compressed backupset device type disk copies 3 incremental level 0 database;
backup copies 3 datafile 3;
- run模块set backup copies双工备份
run{
   
set backup copies 3;
backup tablespace users copies 2 format '/rman/01.bak','/rman/02.bak';
backup archivelog all;
}

2.6 镜像副本

# 配置
backup as copy
configure device type...backup type to copy

# 样例
backup as copy tablespace system,users;
backup as copy section size 150m datafile '/oradata/users.dbf';

2.7 增量备份

# 增量类型
- 差异增量备份
只备份自最新的同级或更低级别之后更改过的所有块,当兼容性为10g以后,如果没有同级别或更低级别备份,则会生成0级备份。
- 累计增量备份
只备份自最新的更低级别的备份之后更改过的所有块。

# 增量备份策略
一般情况下,管理员根据可接受的平均恢复时间(Mean Time To Recover,MTTR)选择备份策略。例如,可以实现三级备份方案:每月进行一次0级增量备份,每周进行一次1级累积增量备份,每天进行1次差异增量备份。按照这个备份策略,完成恢复所需的重做日志不会超过一天。


# 增量更新备份
使用rman创建数据文件的镜像副本,然后再使用rman创建增量备份(仅创建上次备份后已更改的数据块的备份),并将该增量备份应用于镜像副本(而不用创建新的镜像副本)。如果有足够磁盘空间为整个数据库创建镜像副本,并需要灵活的直接处理镜像备份,就可以使用这种策略,缺陷是只能恢复到最后一次更新镜像副本的时间点,无法任意时间点恢复。

# 增量更新备份步骤
①用指定的标签创建数据文件的完整镜像副本备份。
②按照指定时间(如每天),使用与基本数据文件副本相同的标签建立数据文件的1级差别增量备份。
③把②中建立的增量备份应用到具有相同标签的最新备份。
- 创建
backup...for recover of copy with tag;
# database级别增量更新
- 第一次level 1,如果没有level 0,则会自动创建for recover的copy。
- 会自动创建copy到fra区域,注意磁盘空间。
- 可以自定义可恢复区间,sysdate-n,这样可以控制任意时间点可恢复区间,sysdate-7即可利用copy+archivelog恢复到七天内的任意时刻。
run{
   
recover copy of database with tag 'incr_update' [ until time 'sysdate-7'];
backup incremental level 1 for recover of copy with tag 'incr_update' database;
}

# datafile级别增量更新
run{
   
recover copy of datafile 4 with tag 'incr_update' ;
backup incremental level 1 for recover of copy with tag 'incr_update' datafile 4;
}

# 可以利用增量更新迁移数据库到不同存储,高效替换存储

2.8 备份CDB与PDB

2.8.1 备份整个CDB与ROOT

# 备份整个CDB
与备份非CDB相同,backup命令备份。

# 只备份根cdb$root
backup database root;

2.8.2 RMAN备份PDB

1. 连接到root备份PDB
rman> backup pluggable database sales,hr;

2.连接到指定pdb备份pdb
export ORACLE_PDB_SID
rman> backup database;

2.8.3 备份CDB中的归档重做日志

# 在CDB中,只有具有sysdba或sysbackup权限的公共用户连接到根目录才可以备份归档重做日志。
# 具有sysdba以及sysbackup的本地用户连接到PDB,不能备份、删除、切换归档重做日志文件。

# 连接到根root备份归档方法与非CDB数据库相同。

2.8.3 备份备份集、镜像副本

backup backupset all delete input;
backup backupset 1,2 delete input;
backup datafilecopy from tab monDBCopy;
backup device type sbt tag 'quartcrly_backup' copy of database delete input;

2.8.3 备份recovery area

恢复文件(Recovery Files)指的是在快速恢复区中的完全备份集、增量备份集、控制文件自动备份、数据文件副本和归档重做日志。
如果归档重做日志文件丢失或损坏,那么RMAN从恢复区外查找可用于备份的归档日志的副本。
在恢复区的闪回日志、当前控件文件和联机重做日志文件不备份。
# 及时configure backup optimization off也会启用备份优化功能,除非指定force选项。
rman> backup recovery area to destination '/bak/';

2.9 精确控制备份

2.9.1 限制备份集中的文件数

filesperset: 对filesperset与备份对象总数除以分配的通道数,较小值作为实际产生作用的值。默认值为单个通道最大文件数64.

2.9.2 限制备份集和备份片大小

1. 限制备份集大小
# backup...maxsetsize
rman> backup device type sbt maxsetsize 100m archivelog all;

# configure
RMAN> configure default device type to disk;
RMAN> configure maxsetsize to 10g;

2. 限制备份片大小
RMAN> configure channel device type disk maxpiecesize 2g;

3. 多段备份
多段备份目的使RMAN通道能够并行备份一个大文件,比如超大bigfile表空间数据文件。
- 如果指定section size导致产生超过256个文件区域,RMAN会增加区域大小以使正好有256个区域。
- 不能backup命令中同时指定maxpieces和section size
RMAN> backup section size 300m tablespace users;

2.9.3 加密备份

CONFIGURE ENCRYPTION
SET ENCRYPTION

v$rman_encryption_algorithms查看RMAN支持的加密算法。
# 1. 透明数据加密
- 建立Oracle密钥对。
- RMAN> configure encryption for database on;
- RMAN> set encryption on;
- RAMN> configure encryption for database off;

# 2. 密码加密
set encryption identified by password only on for all tablespaces;

# 可以单独使用透明加密或密码加密,也可以复合使用。

2.9.4 备份集压缩

v$rman_compression_algorithm:压缩算法视图

# 压缩数据
configure compression algorithm '压缩算法级别名称';    # medium、basic

# 备份集压缩
backup as compressed backupset database;
configure device type disk backup type to compressed backupset;

2.9.5 管理备份窗口

# duration限制备份持续时长,超过时间,备份将终止,并报告错误。
backup duration 4:00 tablespace users;

# 允许备份窗口部分备份。
如果在BACKUP命令中指定PARTIAL参数,那么一个备份因为备份窗口结束而中断时RMAN不报告错误。相反,RMAN显示没有备份的文件的信息。如果BACKUP命令在RUN块中,那么在RUN块中的剩余命令将继续执行。
- filesperset 1将每个备份集限制只有一个文件,这样配合partial可以最大限度减少备份失败影响。
backup duration 4:00 partial tablespace users filesperset 1;

# 最大限度减少备份负载与持续时间
对于磁盘备份,可以用MINIMIZE TIME选项使备份最快运行(默认),也可使用MINIMIZE LOAD选项降低备份速率以减少系统负载。指定MINIMIZE LOAD选项时备份将用完指定的持续时间。如果指定TIME选项,那么最近备份的文件将给予最低优先备份。
backup duration 4:00 partial minimize time database filesperset 1;
backup duration 4:00 partial minimize load database filesperset 1;

2.10 管理RMAN备份

2.10.1 显示备份信息

# 1.显示备份信息
- list,report
- 动态性能视图
- catalog的RC_视图
- restore...preview/restore...validate header命令
# restore preview只读取元数据,不读取备份文件、rest
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值