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
相关文章推荐
- oracle数据库在ibatis的批处理
- oracle 任务使用
- oracle---DBLink
- ORACLE-014:oracle中查看DBLink密码
- Linux平台 Oracle 11gR2 RAC安装Part3:DB安装
- Linux平台 Oracle 11gR2 RAC安装Part2:GI安装
- ORACLE授权
- ORACLE授权
- Oracle 经典练习语句
- windows下同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
- Oracle SQL ANY和ALL语句
- ORACLE数据迁移
- zf-关于改绍兴县2个简单的BUG却需要ORACLE数据库的感慨
- ORA-01033: ORACLE initialization or shutdown in progress (DBD ERROR: OCISessionBegin)
- Oracle中的延迟块的清除方法
- Oracle 锁表 解锁
- linux下oracle手动启动服务和监听命令
- Oracle远程连接