原文地址: RMAN详细教程(一):基本命令代码
RMAN 基本命令
target - 连接目标
连接本地
1
[oracle@oracle ~]$ rman target /
连接远程
1
[oracle@oracle ~]$ rman target username/password@oracle_host:1521/server_name
注意:RMAN中(在远程机器或服务器上)使用 tnsname 连接 target 数据库时,需要用户具有 SYSDBA 权限;
1
grant sysdba to username;
show - 查看配置
查看所有配置,总配置参数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
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 '/u01/app/oracle/product/11.2.0/dbs/snapcf_qdmwms.f'; # default查看通道分配
1
2
3
4RMAN> show channel;
RMAN configuration parameters for database with db_unique_name ORCL are:
RMAN configuration has no stored or default parameters查看 IO 设备类型
1
2
3
4RMAN> show device type;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default查看保存策略
1
2
3
4RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default查看多个备份的拷贝数目
1
2
3
4RMAN> show datafile backup copies;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default查看备份集大小的最大值
1
2
3
4RMAN> show maxsetsize;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE MAXSETSIZE TO UNLIMITED; # default查看不必备份的表空间
1
2
3
4RMAN> show exclude;
RMAN configuration parameters for database with db_unique_name ORCL are:
RMAN configuration has no stored or default parameters查看备份的优化
1
2
3
4RMAN> show backup optimization;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE BACKUP OPTIMIZATION OFF; # default
configure - 调整配置
备份保留策略
1
configure retention policy to redundancy 1;
备份保留策略共有三种,分别是:
- CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; # 保持所有足够的备份,可以将数据库系统恢复到最近7天内的任意时刻。任何超过最近7天的数据库备份将被标记为
obsolete
; - CONFIGURE RETENTION POLICY TO REDUNDANCY 5; # 保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为 redundancy。一般采用的方法,默认值为 1,可以设置为 5.
- CONFIGURE RETENTION POLICY TO NONE; # 不需要保持策略,clear 将恢复回默认的保持策略。
- CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; # 保持所有足够的备份,可以将数据库系统恢复到最近7天内的任意时刻。任何超过最近7天的数据库备份将被标记为
是否启用优化算法,默认为关闭,如果打开,rman 将对备份的数据文件及归档等文件进行一种优化的算法
1
configure backup optimization off;
指定所有 I/O 操作的设备类型,默认值是硬盘,可以是硬盘或磁带(SBT)
1
configure default device type to disk;
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样在控制文件和catalog丢失后,控制文件仍然可以恢复。
1
configure controlfile autobackup off;
配置控制文件的备份路径和备份格式
1
configure controlfile autobackup format for device type disk to '%F';
配置数据库设备类型的并行度,默认为 1
1
configure device type disk parallelism 1;
配置每次备份的 copy 数量
1
configure datafile backup copies for device type disk to 1;
配置归档日志存放的设备类型
1
configure archivelog backup copies for device type disk to 1;
配置备份集的最大尺寸,默认值是 unlimited,单位为 bytes, K, M, G;
1
configure maxsetsize xxxxG;
配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。
1
configure snapshot controlfile name to '/u01/app/oracle/product/11.2.0/dbs/snapcf_qdmwms.f';
配置备份文件的备份路径和备份格式。
1
configure channel device type disk format '/u01/backup/oracle/%d_DB_%u_%s_%p';
用于清除上面的信道配置。
1
configure channel disk clear;
不备份指定的表空间到备份集中,对只读表空间是非常有用的。
1
configure exclude for tablespace [CLEAR];
将备份文件存储到
e:\backupb
,后面的%d_db_%u
是存储格式。1
configure channel device type disk format 'e:\backupb%d_db_%u';
指定 control file 存储在另一个路径:
e:\backupcontrol
,后面的%F
是存储格式。1
configure controlfile autobackup format for device type disk to 'e:\backupcontrol%F';
list - 查看备份
列出备份集和数据文件镜像
汇总查询,多备份文件时,可以对备份文件有个总体了解
1
RMAN> list incarnation;
列出备份详细信息
1
RMAN> list backup;
列出可用的备份
1
RMAN> list backup summary;
按照文件类型列出以下四种类型列表,数据文件备份列表,已存档的日志备份列表,控制文件备份列表,SPFILE 备份的列表
1
RMAN> list backup by file;
查看可用的数据库备份
1
RMAN> list backup of database summary;
查看用户表空间备份
1
RMAN> list backup of tablespace users;
查看已经备份的 archive log 情况
1
RMAN> list backup of archivelog all;
查看目前所有的 archivelog 文件 (可能包含已经备份的, 除非你在备份时有参数 delete input file 删除了).
1
RMAN> list archivelog all;
查看 spfile 备份
1
RMAN> list backup of spfile;
查看 controlfile 备份
1
RMAN> list backup of controlfile;
查看备份详细信息
1
RMAN> list backup verbose;
查看数据文件备份
1
RMAN> list backup of datafile 1 [n|<dir>];
列出指定序号的归档日志备份
1
RMAN> list backup of archivelog from sequence 1000 until sequence 1020;
列出指定 tag 的备份
1
RMAN> list backupset tag=TAG20140317T155753;
列出过去的备份文件
1
RMAN> list expired backup;
report - 报告
显示存储仓库中详细的分析信息
查看目标数据库的物理结构
1
RMAN> report schema;
查看需要备份的数据文件(根据条件不同)
1
RMAN> report need backup;
最近三天没有备份的数据文件(如果出问题的话,这些数据文件将需要最近3天的归档日志才能恢复)。
1
RMAN> report need backup days 3;
报告出冗余次数小于3的数据文件。
1
RMAN> report need backup redundancy 3;
报告出恢复需要3天归档日志的数据文件
1
RMAN> report need backup recovery window of 3 days;
报告已经丢弃的备份(前提是设置了备份策略)。
1
RMAN> report obsolete;
报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)。
1
RMAN> report unrecoverable;
report schema at time ‘sysdate – 7’;
report need backup days 2 tablespace system;
delete - 删除
删除相关的备份集或镜像副本的物理文件, 同时将删除标记 delete 更新到控制文件。
1 | delete backupset; |
crosscheck - 检查状态
设置状态为AVAILABLE(可用)或者EXPIRED(不可用)
执行crosscheck时,RMAN检查目录中列出的每个备份集或副本并且判断他们是否存在于备份介质上。
- 如果备份集或副本不存在于备份介质上,它就会被标记为 expired, 并且不能用于任何还原操作;
- 如果备份集或副本存在于备份介质上,它就会维持 available 状态。
- 如果以前被标记为 expired 的备份集或副本再次存在于备份介质上,crosscheck 命令就会将它标记回available。
RMAN 备份检验的几种状态
- expired: 对象不存在于磁盘或磁带。
- available: 对象处于可用状态。
- unavailable: 对象处于不可用状态。
expired 与 obsolette 的区别:
- 对于EXPIRED状态,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上, 如果不存在,则状态由AVAILABLE改为EXPIRED。
- 对于obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为obsolete,但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。
示例:
1 | RMAN> crosscheck backup; --校验备份片(???) |
backup - 常用命令
将备份集放到快速恢复区:
- 归档模式下
1
backup database plus archivelog;
- 非归档模式
1
2shutdown immediate; # 关闭一致性后,打开到 mount 状态
backup database;指定备份片段的存放路径和命名规则
1
backup format '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p' archivelog like '%arc_dest%';
备份成镜像文件
1
backup as copy
设置备份标记(每个标记必须唯一,相同的标记可以用于多个备份只还原最新的备份)。
1
backup database tag='full_bak1';
设置备份集大小(必须大于数据库总数据文件的大小,否则会报错)。
1
backup database maxsetsize=100m tag='datafile1';
设置备份片大小(磁带或文件系统限制)
1
2
3
4
5run {
allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T';
backup database tag='full_0';
release channel c1;
}PS:
可以在allocate子句中设定每个备份片的大小,以达到磁带或系统限制。
也可以在configure中设置备份片大小。1
2configure channel device type disk maxpiecesize 100 m
configure channel device type disk clear;备份集保存策略
1
2backup database keep forever; --永久保留备份文件, 这种需要有恢复目录的支持
backup database keep until time='sysdate+30'; --保存备份30天重写configure exclude 命令
1
backup databas noexclude keep forever tag='test backup';
检查数据库错误,使用 RMAN 来扫描数据库的物理/逻辑错误,并不执行实际备份。
1
backup validate database;
跳过脱机,不可存取或只读文件
1
2
3
4backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;
backup database ship readonly skip offline ship inaccessible;强制备份
1
backup database force;
基于上次备份时间备份数据文件
- 只备份添加的新数据文件
1
backup database not backend up;
- 备份在现行时间周期内没有备份的数据文件
1
backup database not backend up since time='sysdate-2';
备份操作期间检查逻辑错误
1
2backup check logical database;
backup validate check logical database;生成备份副本
1
backup database copies=2;
备份控制文件
1
backup database device type disk includ current controlfile;
format - 格式化参数
%a
: Oracle 数据库的 activation ID,即 RESETLOG_ID;%c
: 备份片段的赋值数(从1开始编号,最大不超过 256);%d
: Oracle 数据库的名称;%D
: 当前时间中的日,格式为 DD;%e
: 归档序号;%f
: 绝对文件编号;%F
: 基于 “DBID+时间” 确定的唯一名称,格式的形式为 c-IIIIII-YYYYMMDD-QQ,其中 IIIIII 为该数据库的 DBID,YYYYMMDD 为日期,QQ是一个 1~25 的序列;%h
: 归档日志线程号;%I
: Oracle 数据库的 DBID;%M
: 当前时间中的月,格式为 MM;%N
: 表空间名称;%n
: 数据库的名称,并且会在右侧用x字符进行填充,使其保持长度为8。%p
: 备份集中备份片段的编号,从 1 开始;%s
: 备份集号;%t
: 备份集时间戳;%T
: 当前时间的年月日格式(YYYYMMDD);%u
: 是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u
可以为每个备份集生成一个唯一的名称。%U
: 默认是%u_%p_%c
的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式。执行不同备份操作时,生成的规则也不同,如下所示:
1 | 生成备份片段时,%U=%u_%p_%c; |
%Y
: 当前时间中的年,格式为YYYY。
PS:
如果在 BACKUP 命令中没有指定 FORMAT 选项,则RMAN默认使用%U
为备份片段命名。