您的位置:首页 > 数据库 > Oracle

Oracle OCP笔记(27)RMAN备份

2015-07-27 19:58 686 查看

Oracle OCP笔记(27)RMAN备份

一.关于RMAN(Recovery Manager,恢复管理器)

RMAN是用于备份(backup)、还原(restore)和恢复(recover)数据库的工具,只能用于Oracle8或更高的版本中。

RMAN能备份整个数据库或数据库部件、如表空间、数据文件、控制文件、归档日志文件及spfile参数文件.

RMAN可以在数据库处于打开或关闭状态时执行备份,也可以执行完整或局部备份,还可以执行全部和增量备份,RMAN允许进行增量数据块级别的备份,只备份自上次备份以来有变化的数据块。

允许第三方软件(如veritas)通过rman提供的接口提供更强大的备份与恢复的管理功能

通过RMAN可以使用更多功能: 克隆数据库,建立备用数据库,备份和移动裸设备上的文件等.

RMAN备份称为服务器管理的备份,所有工作均由服务器进程完成。RMAN使用在目标数据库的控制文件中存储的仓库,此仓库包含执行的所有备份的详细信息,也可以创建一个Catalog数据库来管理此仓库.

二.RMAN的启动和连接

1.rman的命令的位置

$ which rman

/u01/app/oracle/product/12.1.0/db_1/bin/rman

2.rman连接数据库

$ export ORACLE_SID=orcl;

$ rman target /



$ rman target sys/oracle@orcl;



$ rman

RMAN> connect target sys/oracle@orcl;

三.使用RMAN备份

1.使用rman备份的前提条件

(1)数据库处于归档模式

(2)数据库运行在mount/open阶段(rman需要读取控制文件,以便查找数据文件)

如果在加载模式下尝试执行操作系统备份,则将失效(DBA在尝试还原后才会意识到这一点),因为在加载模式中,当复制控制文件时,可能对控制文件执行了写操作,这样一来,副本就变得不一致了,失去了作用。rman通过拍制控制文件的读一致性快照并进行备份,避免此问题发生。

2.备份的位置

如果不指定备份位置,rman默认备份到闪回恢复区,涉及的初始化参数:

db_recovery_file_dest -- 闪回恢复区位置

db_recovery_file_dest_size -- 闪回恢复区大小

rman备份时指定备份位置

backup database format '/u02/oracle/sales/dbfull_%U';

3.rman备份的方式

copy -- 物理备份,备份的文件与源文件大小一样

backup -- 逻辑物理备份,基于块级别的备份,只备份使用过的块。

4.backup备份命令

backup database; -- 全库备份:只备份参数文件、控制文件、数据文件,不备份联机日志文件

backup spfile; -- 备份参数文件(只能备份spfile)

backup current controlfile; -- 备份控制文件

backup datafile 4; -- 备份数据文件

backup tablespace tbsname; -- 备份表空间

backup archivelog all; -- 备份归档日志

backup archivelog all delete input; -- 备份归档日志并删除源归档日志

backup full database plus archivelog; -- 全库备份并包括归档日志

增量备份

backup database;

backup incremental level 1 tablespace system;

backup incremental level 1 tablespace sysaux;

不备份某些对象

backup database skip readonly; -- 跳过只读的表空间

backup database skip offline; -- 跳过脱机的表空间

5.copy备份命令

copy备份方式是物理备份,备份的文件与源文件大小一样,可直接用于手工还原.

(1)备份数据文件

copy datafile '/u01/app/oracle/oradata/sales/user01.dbf' to '/u02/oracle/backup/sales/user01.dbf';

与以下用户管理的备份方式等效

alter alter tablespace tbs begin backup;

host cp /u01/app/oracle/oradata/sales/user01.dbf /u02/oracle/backup/sales/user01.dbf;

alter alter tablespace tbs end backup;

(2)备份控制文件

copy current controlfile to '/u02/oracle/backup/sales/controlfile.ctl';

与以下用户管理的备份方式等效

alter database backup controlfile to '/u02/oracle/backup/sales/controlfile.ctl';

6.使用backup as copy命令

backup as copy database;

与以下用户管理的备份方式等效

alter database begin backup;

ho cp /u01/app/oracle/oradata/sales/* /u02/oracle/backup/sales/

alter database end backup;

7.使用run{}制作备份脚本

备份等rman指令可以放在run{}中执行.

(1).使用rman脱机完整全备脚本(offline_full_whole.rman):

run {

shutdown immediate;

startup mount;

allocate channel d1 type disk;

backup as backupset database format '/u02/oracle/backup/sales/offline_full_whole.bus';

alter database open;

}

channel: 通道 type:disk|sbt_tape

backupset: 备份集,rman专用结构,可以将多个输入文件组合成一个输出文件,具有压缩功能

format: 将包含备份集的文件

启动rman运行备份脚本offline_full_whole.rman

rman target / @offline_full_whole.rman;

(2).使用rman联机备份脚本(online_full.rman)

run {

allocate channel t1 type sbt_tape;

allocate channel t2 type sbt_tape;

backup as compressed backupset filesperset 4 database;

backup as compressed backupset archivelog all delete all input;

}

rman target / @online_full.rman;

四.管理RMAN备份

RMAN仓库:

rman使用仓库来存储所有备份操作的详细信息,此仓库是实现自动还原和恢复的关键,也是备份报告的来源。

默认方式下,rman将数据库备份到闪回恢复区,rman将尝试管理闪回恢复区域中的空间。

在执行恢复期间,RMAN必须确定从最近一次备份(全部备份或级别0备份)中提取文件,此后执行恢复,rman必须确定可用的增量备份(如果有),然后提取和应用他们,此后,它必须确定需要的归档日志文件,如果无法从磁盘上获取,也可以从备份中还原他们,并加以应用。最后,它应用来自联机日志文件的更改矢量,将已还原的文件推进到最新状态。

仓库是rman需要的信息的来源,不管做什么,它都会查看仓库,仓库存储在控制文件中,包含执行的所有备份的详细信息。

控制文件中的rman仓库信息会过期,使用初始化参数control_file_record_keep_time设置保持时间.

rman仓库总是存储在目标数据库的控制文件中,不过可以创建一个称为Recovery Catalog的独立数据库,或在众所周知的位置创建控制文件的自动备份.

(1).备份的报告

·list backup;

·list copy;

·list backup of database; -- 列出已经执行并记录在仓库中的所有备份

·list backup of datafile 1; -- 列出数据文件的所有备份

·list backup of archivelog all; -- 列出归档的重做日志文件的所有备份

·report need backup; -- 需要备份的所有内容(根据rman的配置保留策略)

·report obsolete; -- 不再需要的所有备份(根据rman的配置保留策略)

(2).管理备份

4个关键命令:

·crosscheck -- 强制rman将仓库与实际要求对比,所丢失内容标记为EXPIRED.

·delete expired -- 从仓库删除对过期备份的引用

·delete obsolete -- 从磁盘或磁带中删除所有不再需要的备份,并从仓库删除备份的引用。

·catalog -- 将用户管理的备份的位置包含在仓库中.

归档日志被移走后v$archived_log仍存在的处理:

rman target /

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all

RMAN> exit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: