1. 使用RMAN时需要考虑的问题
- 资源:共享内存、更多的进程
- 权限:授予用户sysdba权限,OS访问设备的权限
- 远程操作:
设置密码文件
确保密码文件被备份
- 全球化环境变量设置
- 在RMAN命令行格式化时间参数
2. 连接类型
- 目标数据库
- 恢复目录数据库,缺省情况RMAN运行在非恢复目录数据库
- 辅助数据库
Standby database
Duplicate database
TSPITR instance
3. 连接目标数据库或恢复目录数据库
- 不连接数据库仅启动RMAN
D:> rman
- 使用操作系统认证(OS认证)连接到目标数据库
Unix:$ ORACLE_SID=orcl; -- export ORACLE_SID
$ rman target /
Windows:D:> set ORACLE_SID=orcl;
D:> rman target /
- 从命令行连接到恢复目录数据库
rman target / catalog rman/cat@catdb; -- 使用OS认证,第二个rman为恢复目录数据库的schema
- 从RMAN提示符连接到目标数据库和恢复目录数据库
RMAN> connect target / -- 使用OS认证
RMAN> connect catalog rman/cat@catdb
- 其它
远程连接
rman target sys/oracle@trgt -- trgt表示远程目标数据库
二、configure常用命令总结
1. 查询RMAN设置中非默认值
- SQL> select name,value from v$rman_configuration;
2. 显示RMAN配置
- RMAN> show all;
3. 使用CONFIGURE命令设置参数值:
3.1 备份集的保存策略
- 恢复窗口 -- Recover Window (指定RMAN保留备份集的时间)
RMAN> configure retention policy to recovery window of 15 days; -- 设置恢复窗口保留备份集的时间为15天
RMAN> show retention policy; -- 查看设置的该参数
- 冗余数量 -- Redundancy
RMAN> configure retention policy to redundancy n; -- 保存可以恢复的最新的n份数据库备份,
任何超过最新n份的备份都将被标记为redundancy。它的默认值是1份。
- 恢复默认的保存策略
RMAN> configure retention policy clear; -- Clear将恢复默认的保存策略
- 取消备份保存策略
RMAN> configure retention policy to none; -- None可以使备份保存策略失效
一般最安全的方法是采用第二种保存策略。
3.2 设置备份片大小(磁带或文件系统限制)
- RMAN> configure channel device type disk maxpiecesize 100m;
- RMAN> configure channel decvice type disk clear;
3.3 备份优化 backup optimization
- configure backup optimization on;
- configure backup optimization off;
- configure backup optimization clear;
默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法
3.4 默认设备 default device type
- configure default device type to disk;
- configure default device type to sbt;
- configure default device type clear;
是指定所有I/O操作的设置类型是硬盘或者磁带,默认值是硬盘
磁带的设置:configure default device type to sbt;
3.5 控制文件 controlfile
- configure controlfile autobackup on;
- configure controlfile autoback format for device type disk to '路径';
- configure controlfile autoback clear;
- configure controlfile autoback format for device type disk clear;
- configure snapshot controlfile name to '路径/scontrolfile.snp';
- configure snapshot controlfile name cleare;
是配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,
用于控制文件的读一致性。
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,
默认值为关闭。这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。
3.6 排除选项 exclude
- configure exclude for tablespace 'USERS';
- configure exclude clear;
此命令用于将指定的表空间不备份到备份集中,此命令对只读表空间非常有效。
3.7 备份集大小 maxsetsize
- configure maxsetsize to 1G|100M|1000000K|unlimited;
- configure maxsetsize clear;
三、 List常用命令总结
List命令列出控制文件、RMAN恢复目录中备份信息,是我们对所有可见的
数据库备份文件的一个最直观的了解的方法。
1.List当前RMAN所备份的数据库:
- RMAN> list incamation;
- 1.1 list backup summary; -- 概述可用的备份
B 表示Backup 、 A 表示Archivelog 、 F 表示Full Backup 、
0 1 2 表示incremental level备份(几级备份)
X 表示Expired
这个命令可以派生出很多类似命令,例如:
list backup of database summary;
list backup of archivelog all summary;
list backup of tablespace users summary;
list backup of datafile n,n,n summary;
这些命令可以让我们对已有的备份文件有一个整体、直观的了解。
- 1.2 list backup by file; -- 按照文件类型分别列出
分别为:数据文件列表、归档日志列表、控制文件列表、SPFILE列表
- 1.3 list backup;
这个命令列出已有备份集的详细信息
- 1.4 list expired backup;
列出过期的备份文件
- 1.5 list copy;
列出copy文件
list copy of database;
list copy of controlfile;
list copy of tablespace user;
list copy of datafile n,n,n;
list copy of archivelog all;
list copy of archivelog from scn 10000;
list copy of archivelog until sequence 12;
2. List相关文件的信息
- list backup of {archivelog,controlfile,database,datafile,spfile,tablespace};
- list backup of database;
- 2.1 服务器参数文件:
list backup of spfile;
- 2.2 控制文件
list backup of controlfile;
- 2.3 数据文件:
list backup of datafile n,n,n;
- 2.4 表空间:
list backup of tablespace tablespace_name;
- 2.5 归档日志:
list backup of archivelog { all, from, high, like, logseq, low, scn, sequence, time, until };
list backup of archivelog all;
list backup of archivelog until time 'sysdate-1';
list backup opf archivelog from sequence 10;
list backup opf archivelog until sequence 10;
list backup opf archivelog from scn 10000;
list backup opf archivelog until scn 20000;
-----------------------------------------------------------
list archivelog from scn 1000;
list archivelog until scn 2000;
四、 Report常用命令总结
report用于判断数据库当前可恢复状态、以及数据库已有备份的信息。
最常使用的是report obsolete; report schema;
report { device, need, obsolete, schema, unrecoverable }
1. report schema;
报告数据库模式
2. report obsolete;
报告已丢弃的备份集(配置了保留策略)
3. report unrecoverable;
报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已过期)
4. report need backup;
报告需要备份的数据文件(根据条件不同)
- report need backup days=3;
最近三天没有备份的数据文件。(如果出问题的话,这些数据文件将需要最近三天的归档日志才能恢复)
- report need backup incremental=3;
需要多少个增量备份文件才能恢复的数据文件。(如果出问题,这些数据文件将需要三个增量备份才能恢复)
- report need backup redundancy=3;
报告出冗余次数小于3的数据文件
例如数据文件中包含2个数据文件system01.dbf和user01.dbf
在三次或都三次以上备份中包含system01.dbf这个数据文件,而user01.dbf则小于三次
那么,报告出来的数据文件就是user01.dbf
即:报告出数据库中冗余次数小于n的数据文件。
- report need backup recovery window of 2 days;
报告出恢复需要2天归档日志的数据文件。
五、Backup常用命令总结
1. 设置备份标记
backup database tag='full_bak1';
注:每个标记必须唯一,相同的标记可以用于多个备份但只还原最新的备份。
2. 设置备份集大小(一次备份的所有结果为一个备份集,需要注意备份集大小)
backup database maxsetsize=100m tag='datafile1';
注:maxsetsize限定备份集的大小。所以必须大于数据库总数据文件的大小,否则会报错。
RMAN-06183:
3. 备份集的保存策略
backup database keep forever; -- 永久保留备份文件
backup database keep until time ='syadate+30'; -- 保存备份30天
4. 重写configure exclude命令
backup database noexclude keep forever tag='test backup';
5. 检查数据库错误
backup validate database;
使用RMAN来扫描数据库的物理/逻辑错误,并不执行实际备份。
6. 跳过脱机,不可存取或只读文件
backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;
backup database skip readonly skip offline skip inaccessible;
7. 强制备份
backup database force;
8. 基于上次备份时间来备份数据文件
1> 只备份添加的新的数据文件
backup database not backed up;
2> 备份"在限定时间周期内"没有被备份的数据文件
backup database not backed up since time='sysdate-2';
9. 备份操作期间检查逻辑错误
backup check logical database;
backup validate check logical database;
10. 备份控制文件
backup database device type disk include current controlfile;
11. 使用backup备份
backup database plus archivelog delete input; -- 备份全库及控制文件、服务器参数文件、
与所有归档的重做日志,并删除旧的归档日志
backup tablespace system plus archivelog delete input; -- 备份表空间
backup archivelog all delete input; -- 备份归档日志
六、 校检备份
1. 校检备份
crosscheck backup;
crosscheck backup of database;
crosscheck backup of tablespace system;
crosscheck backup of controlfile;
crosscheck backup of spfile;
crosscheck backup of archivelog all;
2. 校检没有备份过的归档日志
crosscheck archivelog all;
3. 删除所有的Archivelog files
delete archivelog all;
4. 删除昨天以前的Archivelog files;
delete force archivelog until time 'sysdate-1';
delete noprompt force archivelog until time 'sysdate-1';
5. 删除备份
delete obsolete; -- 删除陈旧备份
delete noprompt obsolete;
delete backup; -- 删除所有备份
6. 改变备份集的状态
change backupset id keep forever logs;
change backupset id keep until time 'sysdate+30' logs;
change backupset id nokeep;
七、RMAN的format格式中的%
%c 备份片中的拷贝数
%d 数据库名称
%D 位于该月中的第几天(DD)
%M 位于该年中的第几月(MM)
%u 一个八位字符的名称代表备份集与创建时间
%p 该备份集中的备份片号,从1开始到创建的文件数
%U 一个唯一的文件名
%s 备份集的号
%T 年月日格式(YYYYMMDD)