rman 备份

7.1 归档方式下rman备份常用语法:

7.1.1 backup 备份

1)备份全库:
1.1 RMAN> backup database format='/u01/myrman/timran_%s.bak' filesperset 3;
1.2 RMAN> backup database plus archivelog delete input; //备份全库及控制文件、参数文件与所有归档日志,并删除旧的归档日志
1.3 RMAN> backup database format '/u01/myrman/%s_bak' plus archivelog delete input skip inaccessible;
1.4 RMAN> backup incremental level 0 database; //0级增量备份,省略differential描述, 默认的就是差异增量备份
1.5 RMAN> backup cumulative incremental level 1 database; //1级累计增量备份

注:关于1.3的说明

backup database 紧接format可以使datafile 的备份片指定到format的目的地,archivelog的备份是根据控制文件中(v$archived_log)
中的内容导航的,如果控制文件中记录了而实际归档中又不存在,则会报错,skip inaccessible的含义是跳过物理上缺失的日志文件。

当delete input后,控制文件相关信息(v$archived_log)也会被更新。

因为有了全备,随时可以还原备份,还原点之前的归档日志一般没有就什么用处了,如果想单独还原归档日志备份可以使用:
restore archivelog all;

考点:在使用RMAN时,不一定需要还原归档重做日志,RMAN会自动根据恢复过程的需要应用备份的归档重做日志。

2)备份表空间:
RMAN> backup tablespace users format '/u01/myrman/users_%s.bak' tag=userbak;
RMAN> backup tablespace system plus archivelog delete input; //备份指定表空间及归档日志,并删除旧的归档日志

3)备份数据文件
RMAN> backup datafile 3,5 format '/u01/myrman/%d_%s.bak'; //备份数据文件,可以多个,以“,”分开。

4)备份归档日志
RMAN> backup archivelog all delete input;

5)备份控制文件:
RMAN> backup current controlfile;

6)备份参数文件
RMAN> backup spfile;

7)备份闪回恢复区

RMAN> backup recovry area;

8)备份备份集

RMAN> backup backupset 18; //将disk上的backupset备份一份到tape上,注意不产生新的备份集,类似duplex.

*考点:RMAN从不备份联机重做日志文件、临时文件等。它只备份数据文件,控制文件,spfile,归档日志文件。

7.1.2 image(映像文件)备份

1)RMAN> copy datafile 4 to '/u01/myrman/users_%s.bak';
2)RMAN> backup as copy tablespace 'TEST' format='/u01/myrman/%d_test_%s.bak'; //都用backup语法。统一格式

RMAN> list datafilecopy all; //列出映像集

*考点:RMAN可在不执行restore情况下直接使用映像副本,而backupset在recover前必须先restore。RMAN映像副本备份不包括spfile

7.2 增量备份:(见PPT-II-117)

只备份自某次备份以来发生变化的block(rman在备份时会记录datablock的scn,下次备份时通过比较某次备份数据块上的scn来确定该数据块是否发生变化)

1)差异增量备份(Differential incremental backup):以某次以来同级别或低级别的备份作为基础备份
2)累积增量备份(Cumulative incremental backup): 以某次以来比自己级别低的备份作为基础备份

提示:10g以后,增量备份只有0级和1级,原来2级以上的级别可兼容,但不推荐使用。

7.2.1 差异和累计综合运用的一周备份计划。
见插图
*考点:
1)0级增量备份不等同于全备(full backup),全备不能做为增量备份的基础备份。
2)如果没有备份过0级备份,那么第一次1级备份(差异或累计)就当做0级备份。
3)非归档情况下的恢复就只有还原备份这一步,在RMAN下的方法是:
startup force mount;
restore database;
alter database open resetlogs;

如果非归档情况下使用了增量备份,在restore第二句后,加上recover database noredo; 这个命令有两个作用,1)定位所有级别为1的累计
或差异增量备份并使用它们,2)不应用日志。
(PPT-II-179)

7.3 块变更跟踪(block change tracking)(从10G开始引入)

增量备份总是小于完整备份,但是备份时节省的时间并不像想象的那样少,原因是增量备份默认的是要扫描整个要备份的数据文件块,以便确
定哪些块需要提取,这当然有一个好处就是可以顺便检查坏块,如果想要增量备份能快些,oracle还提供了一个机制,叫做块变更跟踪。块变
更跟踪在后台启动一个进程叫CTWR,这个进程向变更跟踪文件中记录每个已更改的块的地址。如果启用了块跟踪,增量备份时就去检查块跟
踪文件,这比遍历整个数据文件块要快的多。当然缺点是数据库维护块跟踪文件会付出性能代价,所以实际工作中此特性通常不在生产库上配
置,而在DATA GUARD物理备库上配置则比较合适。

需要了解的是块改变跟踪使用一个文件,这个文件是不能有RMAN备份的,文件里记录了8个位图,实际上是对应0级增量和之后的7个差异增

量备份,位图是循环利用的,会发生覆盖。

例:
1)使能块改变跟踪

SQL> alter database enable block change tracking using file '/u01/oradata/timran11g/change_tracking';
2)查看视图信息,确认已启动了CTWR进程, 确认生成了块改变跟踪文件。

SQL> col filename for a50;
SQL> select * from v$block_change_tracking;

STATUS FILENAME BYTES
---------- -------------------------------------------------- ----------
ENABLED /u01/oradata/timran11g/change_tracking 11599872

3)开始0级增量做为基础备份,用时36秒
RMAN> backup incremental level 0 format '/u01/myrman/%s.bak' datafile 2;
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:36

4)开始1级增量备份,用时2秒,时间已经大大缩短.
RMAN> backup incremental level 1 format '/u01/myrman/%s.bak' datafile 2;
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02

5)关闭块改变跟踪
SQL> alter database disable block change tracking;

考点:使能块改变跟踪后,需要一个相当于incremental level 0 backup做为基础备份(打底)。

7.4 增量更新备份(PPT-II-168-169)

增量更新特性是以一个image copy为基础,将增量备份应用到这个image copy,由于在做每日的imcremental level 1时, image copy是不
断的累积的,好处是这个累积的image copy的scn越来越新,且恢复数据库是不需要还原。

RMAN>
run {
recover copy of database with tag 'incr_update';
backup incremental level 1 for recover of copy with tag 'incr_update' datafile 4;
}

这个例子每天执行一次,结果如何?

第一天,backup命令将创建一个的相当于level 0 的image copy, 因为之前没有这个备份。
第二天,backup命令创建一个level 1的backup set。
第三天以及以后的每一天,recover copy命令将把level 1应用到image copy,从而不断的更新它。

//将database代替datafile,便可以得到一个具有增量特性的a whole backup。
//根据保留策略,如果retention=1, 多余的增量level 1将成为obsolete。
//最大的优势是image copy不断的累计,可以省去还原步骤,从而节省了大量恢复数据的时间。

7.5 数据恢复顾问DRA(PPT-II-218-225)

DRA是一个诊断和恢复数据库的工具,通过两个途径操作,一个是RMAN界面,另一个是EM,它依赖于ADR的自动诊断信息以及Health
Monitor
例:

1)先以RMAN备份一个表空间

RMAN>backup tablespace sysaux format '/u01/myrman/%d_%s.bak';

2)关闭数据库,将sysaux01.dbf 删掉,然后启动数据库报错!
SQL> shutdown abort

[oracle@timran timran11g]$ mv sysaux01.dbf sysaux01.bak

SQL> startup

3)数据库在mount模式下连接rman, 看DRA给出的建议报告
[oracle@timran timran11g]$ rman target /

RMAN> list failure;

可以尝试使用Change failure 命令可以改变failure的级别,(change failure nnn priority [low|high]);

5)RMAN> advise failure;

6)RMAN> repair failure;

*考点:
1)先list failure,然后再advise failure.次序不能错,修复问题的顺序是list,advise,repair
2)所有启动模式下都可以使用DRA, nomount下修复控制文件,mount或open下修复数据文件。
3)DRA目前只能在单实例下运行,RAC不可以使用它。

7.6 Catalog command

目的是对RMAN存储库进行编目,有这样一种情形,RMAN元数据受损,我们手里只有备份,那可以根据备份的物理路径重新编目RMAN元数据。这种方法可以将早期的老化的备份,
重新(要有磁盘路径)注册到target controlfile中,也可以完成向一个空的catalog中注册元数据。

常见的语法形式有:

CATALOG DATAFILECOPY '/disk1/old_datafiles/01_01_2003/users01.dbf';
CATALOG ARCHIVELOG '/disk1/arch_logs/archive1_731.dbf', '/disk1/arch_logs/archive1_732.dbf';
CATALOG BACKUPPIECE '/disk1/backups/backup_820.bkp';

还可以一次完成一个目录树下的所有文件的注册: 通过提供一个OS路径,RMAN自动导航找到要编目的所有备份片(包括其子目录)

CATALOG START WITH '/disk1/backups/';

oracle之三rman 备份的更多相关文章

  1. oracle数据库rman备份计划及恢复

    1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog. 2.rman备份脚本: a.RMAN 0级备份 ...

  2. Linux服务器下对Oracle作Rman备份

    由于工作需要,最近要对几台Linux系统下的Oracle数据库进行Rman备份,就在操作的同时,整理了一下,方便今后作为资料进行查阅. ------------------------Linux服务器 ...

  3. Oracle 12c RMAN备份文档

    创建备份目录,查看剩余空间 [cistest@cistest ~]$ df -h df: '/home/oratest/.gvfs': Permission denied Filesystem Siz ...

  4. Oracle使用rman备份数据库时出现cannot reclaim的错误

    1. 按照<2 day DBA>中的guide,设置fast recovery area. SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_S ...

  5. Oracle之RMAN备份恢复1-基础篇

    1,rman的作用与体系架构 1.1 什么是rman rman(recovery manager)是oracle8i以后dba的一重要工具一般位于$oracle_home/bin目录下,主要用来备份, ...

  6. Oracle之RMAN备份及还原

    RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...

  7. oracle数据库rman备份与还原

    我是oracle 界的小白,由于公司领导要求,不得不硬着头皮在网上找rman备份还原的方法,废话不多说,具体看例子(window) 运行CMD: rman target 管理员账号/密码@orcl 备 ...

  8. oracle之三rman 不完全恢复

    rman 不完全恢复 9.1 rman 不完全恢复的三个标准模式:基于time.基于scn和基于sequence: 范例1:恢复过去某个时间点误操作,一般使用基于time或scn. 1)环境:有一套全 ...

  9. oracle之三rman 完全恢复

    rman 完全恢复 8.1 recover 恢复: 1)归档 : 完全恢复和不完全恢复 2)非归档:只能恢复到最后一次备份状态(还原) 8.2 完全恢复: ----先对数据库做一个备份(如果是arch ...

随机推荐

  1. vue 三元表达式当出现elif

    方式一: <span class="person_name">{{item.type_name == '车商' ? item.title : item.type_nam ...

  2. do...while循环语句(水仙花)

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  3. .Net MVC5(.Net Framework 4.0+)多语言解决方案

    最近项目需要做多语言,原先是2种语言(中文/英文),现在又要加一种语言,成了3种.那么原来的方式肯定不适用了,只能升级解决方案. 原来的写法,使用三目表达式,按照当前全局变量的语言类型,返回不同的语言 ...

  4. J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...

  5. ES7异步函数解决进程等待相关业务问题

    业务需求场景描述: 在接口只能单一检测的情况下,批量检测资源名称是否存在数据库,如果资源群中某一个资源已存在:给出交互让用户决定是否覆盖资源,最后形成不存在的资源和用户确定覆盖的资源群,进行提交. 业 ...

  6. Ubuntu下载连接(阿里云镜像)

    ubuntu 14.04: http://mirrors.aliyun.com/ubuntu-releases/14.04/ ubuntu 16.04: http://mirrors.aliyun.c ...

  7. Manico--自定义应用快速切换

    快速切换应用的app,使用非常频繁,奈何还是没有钱! 这玩意儿虽然免费,但是时不时跳一个弹框让你购买,也是够烦的,然后我们正好利用逆向工具,对着玩意儿进行破解,让它不再弹框! 下载安装Hopper D ...

  8. 科普,想成为厉害的 Java 后端程序员,你需要懂这 13 个知识点

    老读者就请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题. 站 ...

  9. Java面试题(Kafka篇+zookeeper 篇)

    Kafka 152.kafka 可以脱离 zookeeper 单独使用吗?为什么? kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafk ...

  10. Log4Net + Log4Mongo 将日志记录到MongoDb中

    实现: 将日志保存在MongoDb中: 自定义日志字段: 日志按照日期拆分集合: 第一部分:将日志保存在MongoDb中 新建控制台程序Log4MongoDemo 通过NuGet安装Log4Net ( ...