RMAN参数

CONFIGURE RETENTION POLICY

保留7天的备份,超过7天标记为obsolete

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS

保留最近的五份备份,超过五份最老的备份将标记为redundancy

CONFIGURE RETENTION POLICY TO REDUNDANCY 5

不需要保留策略

CONFIGURE RETENTION POLICY TO NONE

CONFIGUER DEFAULT DEVICE TYPE

指定设备类型为DISK

Configure default device type to disk

指定设备类型为磁带

CONFIGURE DEFAULT DEVICE TYPE TO SBT

CONFIGURE CONTROLFILE AUTOBACKUP

启用控制文件自动备份

CONFIGURE CONTROLFILE AUTOBACKUP ON

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT

配置控制文件的备份路径和备份格式

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%bak_%U'

CONFIGURE DEVICE TYPE DISK PARALLELISM

设置设备类型的并行度

CONFIGURE DEVICE TYPE DISK PARALLELISM 5

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT

设置备份文件的备份路径和格式

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%bak_%U'

CONFIGURE BACKUP OPTIMIZATION

开启备份优化,通常针对只读表空间或OFFLINE状态的表空间,对于未修改过的文件或者已经备份过的归档再次备份时会跳过

configure backup optimization on;

CONFIGURE ARCHIVELOG DELETETION POLICY

设置归档文件删除策略,配置为APPLIED ON STANDBY时如果standby库还需要的日志在通过附加的DELETE INPUT时删除归档时会报RMAN-08137错误

CONFIGURE ARCHIVELOG DELETETION POLICY TO APPLIED ON STANDBY;

RMAN基础命令

连接RMAN

本地连接

rman target /

远程连接

rman target user/password@tns

执行SQL
RMAN还可以直接启动关闭数据库,但无法执行SELECT查询,因为RMAN不会返回查询结果

RMAN >SQL 'ALTER SYSTEM ARCHIVE LOG ALL';

LIST命令

列出所有备份

RMAN >list backup [OF] [CONTROLFILE|DATAFILE|ARCHIVELOG|TABLESPACE];

列出所有归档文件

RMAN >list archivelog all;

列出无效备份

RMAN >list expired backup;

DELETE命令

删除过期备份

RMAN >DELETE EXPIRED BACKUP;

删除无效备份

RMAN >DELETE OBSOLETE;

删除指定备份集

RMAN >DELETE BACKUPSET 19;

备份归档后删除

RMAN >BACKUP ARCHIVELOG ALL DELETE INPUT;

REPORT命令

查看需要备份的文件

RMAN >report need backup;

查看指定表空间是否需要备份

RMAN >REPORT NEED BACKUP TABLESPACE USERS;

CROSSCHECK命令

检查所有归档日志

RMAN >CROSSCHECK ARCHIVELOG LIST;

检查所有备份集

RMAN >CROSSCHECK BACKUP;

CHANGE命令

修改备份集为无效

RMAN >CHANGE BACKUPSET n UNAVAILABLE;

修改归档日志为无效

RMAN >CHANGE ARCHIVELOG LOGSEQ=n UNAVAILABLE;

检查数据库坏块

检查数据库坏块

RMAN >BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;

查看坏块信息

SQL >SELECT * FROM v$database_block_corruption;

备份压缩

执行BACKUP时指定AS COMPRESSED BACKUPSET子句对备份进行压缩,压缩会较小备份集的大小,但是会增加备份和恢复时的速度

BACKUP AS COMPRESSED BACKUPSET TABLESPACE SYSTEM;

备份加密

ORACLE 10gR2开始支持对备份集进行加密,在恢复时需要指定密钥。RMAN提供三种加密方式:透明加密、密码模式、双重模式。透明加密,需要先启用ENCRYPTION WALLET

RMAN >CONFIGURE ENCRYPTION FOR DATABASE ON;

密码模式,作用于当前会话,明文指定加密密码

RMAN >SET ENCRYPTION ON IDENTIFIED BY password ONLY;
FORMAT格式化参数
参数 含义
%a ORACLE数据库的RESETLOG_ID
%c 备份片段的复制数
%d Oracle数据库名称
%D 当前时间的日,格式为DD
%e 归档序号
%f 绝对文件编号
%F 基于DBID+时间组合的唯一名称
%h 归档日志线程号
%I 数据库DBID
%M 当前时间中的月份
%N 表空间名称
%n 数据库名称,并在右侧填充x至8位
%P 备份集中备份片的编号
%s 备份集号
%t 备份集时间戳
%T 当前时间的年月日格式,YYYYMMDD
%u 由备份集编号和建立时间压缩后组成的8个字符
%U 默认是%u_%p_%c的简写形式
%Y 当前时间中的年,YYYY

备份

备份数据库

RMAN >BACKUP DATABASE FORMAT '/u01/backup/db/bak_%U';

备份表空间

RMAN >BACKUP TABLESPACE USERS;

备份数据文件

RMAN >BACKUP DATAFILE '/u01/app/oradata/orcl/system.dbf';   ---也可以直接采用file_id

备份控制文件

RMAN >BACKUP CURRENT CONTROLFILE;

注:当CONFIGURE CONTROLFILE AUTOBACKUP为ON是每次备份会自动备份控制文件,我们也可以在执行BACKUP时指定INCLUDE CURRENT CONTROLFILE子句同时备份控制文件

备份归档日志

RMAN >BACKUP ARCHIVELOG ALL;

注:除ALL外,也可以指定UNTIL/SCN/TIME/SEQUENCE等参数指定备份区间。也可以在执行BACKUP时指定PLUS ARCHIVELOG子句同时备份归档文件

增量备份

增量备份用于在全量备份的基础上进行增量数据的备份,减少备份时间和备份数据量。在进行增量备份前需要先进行0级备份,相当于数据库的完整备份,但是0级备和BACKUP DATABASE并不相同。

增量备份分为两种备份类型:DIFFERENTIAL(差异)和CUMULATIVE(累积),默认为DIFFERENTIAL方式。差异增量备份会只备份上次增量备份以来所有变化的数据,累积增量备份总是备份自0级备份以来所有变化的数据。

0级备份

RMAN >backup incremental level 0 database;

1级增量备份

RMAN >backup incremental level 1 database;

1级累积增量备份

backup incremental level 1 cumulative database;

块跟踪

在增量备份时需要扫描整个数据文件来确认变化的数据,为了避免这种情况进行快速增量备份,Oracle可以开启块跟踪特性,将变化的数据单独记录到跟踪文件中。启用块跟踪后会通过后台进程CTWR负责将变化数据写入块跟踪文件。

查看是否开启

select filename,status,bytes/1024/1024 from v$block_change_tracking;

开启块跟踪

alter database enable/disable block change tracking using file '';

更改块跟踪文件位置

alter database rename file 'old_path' to 'new_path';

恢复

恢复参数文件

设置DBID

RMAN> set DBID = 1405321685

*注:DBID可从v$database、备份日志、string .dbf | grep MAXVALUE等手段获取

启动数据库到nomount并恢复参数文件

RMAN> startup nomount
RMAN> restore spfie from autobackup;

恢复控制文件

RMAN> restore controlfile from autobackup; 

恢复数据库

还原数据库

RMAN> restore database;

恢复数据库

RMAN> recover database;

打开数据库

RMAN> alter database open;

注:可以指定until time选项恢复到指定时间点

还原表空间

表空间脱机

RMAN> sql 'alter tablespace users offline immediate'; 

恢复表空间

RMAN> restore tablespace users;
RMAN> recover tablespace users;

表空间联机

RMAN> sql 'alter tablespace users online';

Recovery Catalog

RMAN Recovery Catalog(恢复目录)用于存储RMAN备份恢复相关信息的数据库,当没有恢复目录时,RMAN的备份信息,例如归档文件路径、备份集路径等信息保存在控制文件中

创建管理用户

CREATE USER RMAN_ADMIN IDENTIFIED BY rman%123;

添加管理权限

grant connect,resource,recovery_catalog_owner to rman_admin;

连接catalog库

rman catalog rman_admin/rman%123@tns

创建恢复目录

create catalog;

注册数据库

rman catalog rman_admin/rman%123@tns target system/oracle@tns
RMAN >register database;

同步恢复目录

RMAN >resync catalog;

取消注册

RMAN >UNREGISTER DATABASE;