RMAN 程序的兼容性

RMAN 环境由以下5部分组成:

(1) RMAN executable

(2) Recovery catalog database

(3) Recovery catalog schema in the recovery catalog database

(4) Target database

(5) Auxiliary database (used forduplicate, duplicate for standby or tablespace point-in-time recovery)

说明: 1 、 4 是必须存在的。

一般来说,RMAN兼容性规则如下:

(1)RMAN 可执行文件的版本要和目标数据库的版本一致,但也有例外,具体参考下表。

RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)_数据库

表中的 目录模式版本 可以从RCVER 表中查看:

SQL> conn rman/rman@orcl; -- 用catalog 用户登录

已连接。

SQL> select * from rcver;

VERSION

------------

11.02.00.01

(2)RMAN catalog schema 的版本必须大于等于RMAN 可执行文件的版本。

(3)RMAN catalog对target database目标数据库向后兼容,支持早期版本的目标数据库

--当遇到兼容性问题时,会报如下错误:

RMAN-6186 -associated message: "PL/SQL package %s.%s version %s in %s database is too old"

RMAN-6429 -associated message: "%s database is not compatible with this version of RMAN".

RMAN 支持混合平台之间支持如下操作:

+ Active Database DUPLICATE

+ Backup-based DUPLICATE using image copies or backup sets

+ RESTORE and RECOVER using image copies or backup sets

(1)在Oracle 10gR2 之后的版本,支持如下操作系统之间的RMAN 操作:

Solaris x86-64 <-> Linux x86-64

HP-PA <-> HP-IA

Windows IA (64-bit) / Windows (64-bitItanium) <-> Windows 64-bit for AMD / Windows (x86-64)

(2) 在Oracle 11gR1 之后的版本,支持如下操作系统之间的RMAN 操作,当然这里也包含第一条里提到的10gR2后的组合。

Linux <-> Windows

(3)在11.2.0.2以上版本中,因为Bug 12702521的存在,SolarisSPARC (64-bit) <-> AIX (64-bit) 这2个版本之间不能进行RMAN 操作。

1 修改控制文件自动备份

rman中有一个比较好用的功能就是自动备份控制文件,而且同时还备份spfile文件。这对于不使用恢复目录而使用控制文件作为保存恢复信息的备份策略来说,尤为重要!


一般情况下有两种事件触发控制文件自动备份。

1、每个rman的backup或copy命令都会触发自动备份。也就是说每次执行部分备份或者完全备份时,都会执行控制文件和spfile文件的自动备份。备份信息输出中有 :完成 Control File and SPFILE Autobackup 。

2、数据库结构发生变化,比如增加表空间、改变表空间大小、增加日志文件组等等。alert日志中有,Starting control autobackup 。。

--查看数据库是否开启控制文件自动备份。

RMAN> show controlfile autobackup;

--rman开启控制文件自动备份

RMAN> configure controlfile autobackup on;

2 修改控制文件保存的时间

控制文件保存的时间由参数CONTROL_FILE_RECORD_KEEP_TIME决定,默认值是7天。 我们可以改成0到365之间的任意值。

SQL> select name,value from v$parameter where name='control_file_record_keep_time';

SQL> alter system set control_file_record_keep_time=20;

SQL> show parameter control_file_record_keep_time

说明:如果控制文件里的记录被覆盖了,可以重新 catalog 注册。 如:

---ASM:

CATALOG START WITH '+disk'; # catalog allfiles from an ASM disk group

--本地目录:最后一定要加/

CATALOG START WITH '/fs1/datafiles/'; #catalog all files in directory

3 配置备份默认的保存策略

3.1 通过recovery window

如:configure retention policy to recovery window of 7 days;

recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。

3.2 通过redundancy

备份保留策略的REDUNDANCY的值,就是最终备份保留的值。

configure retention policy to redundancy 5;

如果REDUNDANCY设置为5,那么Oracle会保留5个备份。

--保存策略重置为默认值(冗余为1)

configure retention policy clear;

--不应用任何保存策略。

CONFIGURE RETENTION POLICY TO NONE;

注意:

配置保存策略不会导致自动删除备份,需要使用delete obsolete 命令才能删除过期的备份集。 在report obsolete 命令时显示到期的备份集。 如果列出的某个文件不能被删除,需要使用crosscheck 命令,否则,Oracle 删除delete obsolete命令输出的所有项。如:

report obsolete;

delete noprompt obsolete;

crosscheck backup;

delete noprompt expired backup;

4 Nocatalog下的RMAN 增量备份脚本

4.1 全库加归档0级增量备份。

run{

sql 'alter system archive log current';

allocate channel ch1 type disk;

allocate channel ch2 type disk;

backup incremental level 0 database plus archivelog delete input

format '/u01/app/oracle/rmanbak/db_%d_%U'

tag=db_inc_0;

release channel ch1;

release channel ch2;

}

4.2 全库加归档1级增量备份。

run{

sql 'alter system archive log current';

allocate channel ch1 type disk;

allocate channel ch2 type disk;

backup incremental level 1 database plus archivelog delete input

format '/u01/app/oracle/rmanbak/db1_%d_%U'

tag=db_inc_1;

release channel ch1;

release channel ch2;

}