RMAN详细教程(一):基本命令代码

RMAN详细教程(二):备份、检查、维护、恢复

RMAN详细教程(三):备份脚本的组件和注释

RMAN详细教程(四):备份脚本实战操作

 

 

一、target——连接数据库

1、本地:

[oracle@oracle ~]$ rman target /

2、远程:

[oracle@oracle ~]$ rman target sys/oracle@orcl

  

 

二、show——查看配置

RMAN> show all //总配置参数,具体看configure模块

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO‘C:ORACLE..SNCFTEST.ORA’; #default

RMAN> show channel; // 通道分配

RMAN> show device type; // IO 设备类型

RMAN> show retention policy; // 保存策略

RMAN> show datafile backup copies; // 多个备份的拷贝数目

RMAN> show maxsetsize; // 备份集大小的最大值

RMAN> show exclude; // 不必备份的表空间

RMAN> show backup optimization; // 备份的优化

 

 

三、configure——调整配置

1、configure retention policy to redundancy 1;

舍弃备份原则,共三种,分别是:

(1)CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

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

(2)CONFIGURE RETENTION POLICY TO REDUNDANCY 5;

保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。一般采用的方法,默认值为1,可以设置为5。

(3)CONFIGURE RETENTION POLICY TO NONE;

不需要保持策略,clear将恢复回默认的保持策略。

 

2、CONFIGURE BACKUP OPTIMIZATION OFF;

默认为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。

 

3、Configure default device type to disk;

默认值是硬盘,是指定所有I/O操作的设备类型是硬盘或者磁带(SBT)。

 

4、CONFIGURE CONTROLFILE AUTOBACKUP OFF;

强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样在控制文件和catalog丢失后,控制文件仍然可以恢复。

 

5、CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';

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

 

6、CONFIGURE DEVICE TYPE DISK PARALLELISM 1;

配置数据库设备类型的并行度,默认为1。

 

7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;

配置每次备份的copy数量。

 

8、CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;

配置归档日志存放的设备类型。

 

9、configure maxsetsize 大小;

配置备份集的最大尺寸,默认值是unlimited,单位bytes,K,M,G;

 

10、CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA';

配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。

 

11、CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';

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

 

12、CONFIGURE CHANNEL DISK CLEAR;

用于清除上面的信道配置。

 

13、CONFIGURE EXCLUDE FOR TABLESPACE [CLEAR];

不备份指定的表空间到备份集中,对只读表空间是非常有用的。

 

14、configure channel device type disk format 'e:\backupb%d_db_%u';

将备份文件存储到e:\backupb,后面的%d_db_%u是存储格式。

 

15、configure controlfile autobackup format for device type disk to 'e:\backupcontrol%F';

指定control file存储在另一个路径: e:\backupcontrol,后面的%F是存储格式。

 

 

四、List—— 列出备份集和数据文件镜像

1、list incarnation;

汇总查询,多备份文件时,可以对备份文件有个总体了解。

 

2、list backup;

列出备份详细信息。

 

3、list backup summary;

简述可用的备份(TY: B代表备份, LV: F代表全备fullbackup, A表示 Archivelog, 0,1,2 表示备份级别, S表示状态, A表示available可用, X表示expried过期)。

备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
11 B F A DISK 02-7月 -13 1 1 NO TAG20130702T162726
12 B F A DISK 14-2月 -14 1 1 NO TAG20140214T140119
13 B F A DISK 14-2月 -14 1 1 NO TAG20140214T140119
14 B F A DISK 21-2月 -14 1 1 NO TAG20140221T125325
15 B F A DISK 21-2月 -14 1 1 NO TAG20140221T125325
16 B A A DISK 24-2月 -14 1 1 NO TAG20140224T125128

 

4、list backup by file;

按照文件类型列出以下四种类型列表:

数据文件备份列表、已存档的日志备份列表、控制文件备份列表、SPFILE 备份的列表。

 

5、list backup of database summary;

 

6、list backup of tablespace users;

 

7、list backup of archivelog all;

查看已经备份的 archive log 情况。

 

8、list archivelog all;

查看目前所有的archivelog文件 (可能包含已经备份的, 除非你在备份时有参数 delete input file 删除了)。

 

9、list backup of spfile;

 

10、list backup of controlfile;

 

11、list backup verbose;

 

12、list backup of datafile 1 [n | <dir>];

 

13、list backup of archivelog from sequence 1000 until sequence 1020;

 

14、list backupset tag=TAG20140317T155753;

 

15、list expried backup;

列出过去的备份文件。

 

 

五、Report——显示存储仓库(Repository)中详细的分析信息

1、report schema;

报告目标数据库的物理结构。

 

2、report need backup;

报告需要备份的数据文件(根据条件不同)。

 

3、report need backup days 3;

最近三天没有备份的数据文件(如果出问题的话,这些数据文件将需要最近3天的归档日志才能恢复)。

 

4、report need backup redundancy 3;

报告出冗余次数小于3的数据文件。

 

5、report need backup recovery window of 3 days;

报告出恢复需要3天归档日志的数据文件。

 

6、report obsolete;

报告已经丢弃的备份(前提是设置了备份策略)。

 

7、report unrecoverable;

报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)。

 

8、report schema at time ‘sysdate – 7’;

 

9、report need backup days 2 tablespace system;

 

 

六、Delete——删除相关的备份集或镜像副本的物理文件, 同时将删除标记 delete 更新到控制文件。

delete backupset;
delete backupset n;
delete obsolete; -- 删除荒废
delete noprompt obsolete; -- 不提示, 删除荒废
delete noprompt expired backup; -- 不提示, 删除不在磁盘上的备份集(可以先用crosscheck同步确认一下)
delete obsolete redundancy 2;
delete noprompt copy
delete noprompt backupset tag TAG20140317T14432;
delete obsolete recovery window of 7 days;
delete expired backupset;
delete expired copy;
delete expired archivelog all;

 

 

七、Crosscheck——设置状态为AVAILABLE(可用)或者EXPIRED(不可用)

执行crosscheck时,RMAN检查目录中列出的每个备份集或副本并且判断他们是否存在与备份介质上。

如果备份集或副本不存在与备份介质上,它就会被标记为expired, 并且不能用于任何还原操作;

如果备份集或副本存在与备份介质上,它就会维持available状态。

如果以前被标记为expired 的备份集或副本再次存在于备份介质上,crosscheck 命令就会将它标记回available。

 

1、RMAN 备份检验的几种状态:

expired: 对象不存在于磁盘或磁带。

available: 对象处于可用状态。

unavailabe: 对象处于不可用状态。

 

2、expired 与 obsolette 的区别:

(1)对于EXPIRED状态,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上, 如果不存在,则状态由AVAILABLE改为EXPIRED。

(2)对于obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为obsolete,但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。

 

RMAN>crosscheck backup; --校验备份片(???)
RMAN> crosscheck backupset; --校验备份集
RMAN> crosscheck copy; --校验镜像副本
RMAN> crosscheck backup of controlfile; --校验备份的控制文件
RMAN> crosscheck backup of archivelog all; --校验所有备份的归档日志
RMAN> crosscheck backup of datafile 1,2; --校验datafile 1,2
RMAN> crosscheck backup of tablespace sysaux,system; --校验表空间sysaux,system
RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10'; --校验时间段,时间段格式由NLS_DATE_FORMAT设置
RMAN> crosscheck backupset 1067,1068; --校验指定的备份集

 

 

八、backup常用命令

1、将备份集放到快速恢复区中:

1)归档模式下:

backup database plus archivelog;

2)非归档模式下:

shutdown immediate;   # 关闭一致性后,打开到mount状态
backup database

 

2、指定备份片段的存放路径和命名规则:

backup format '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p' archivelog like '%arc_dest%';

 

3、备份成镜像文件:

backup as copy

 

4、设置备份标记(每个标记必须唯一,相同的标记可以用于多个备份只还原最新的备份)。

backup database tag='full_bak1';

 

5、设置备份集大小(必须大于数据库总数据文件的大小,否则会报错)。

backup database maxsetsize=100m tag='datafile1';

 

6、设置备份片大小(磁带或文件系统限制)

run {
allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T';
backup database tag='full_0';
release channel c1;
}

PS:

可以在allocate子句中设定每个备份片的大小,以达到磁带或系统限制。

也可以在configure中设置备份片大小。

Configure channel device type disk maxpiecesize 100 m
Configure channel device type disk clear;

 

7、备份集的保存策略

backup database keep forever;  --永久保留备份文件, 这种需要有恢复目录的支持
backup database keep until time='sysdate+30'; --保存备份30天

 

8、重写configure exclude命令

backup databas noexclude keep forever tag='test backup';

 

9、检查数据库错误

backup validate database;

使用RMAN来扫描数据库的物理/逻辑错误,并不执行实际备份。

 

10、跳过脱机,不可存取或只读文件

backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;
backup database ship readonly skip offline ship inaccessible;

 

11、强制备份

backup database force;

 

12、基于上次备份时间备份数据文件

(1)只备份添加的新数据文件:

backup database not backed up;

(2)备份"在限定时间周期内"没有被备份的数据文件:

backup database not backed up since time='sysdate-2';

 

13、备份操作期间检查逻辑错误

backup check logical database;
backup validate check logical database;

 

14、生成备份副本

backup database copies=2;

 

15、备份控制文件

backup database device type disk includ current controlfile;

 

 

九、Format参数

%a:Oracle数据库的activation ID即RESETLOG_ID。

%c:备份片段的复制数(从1开始编号,最大不超过256)。

%d:Oracle数据库名称。

%D:当前时间中的日,格式为DD。

%e:归档序号。

%f:绝对文件编号。

%F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列。

%h:归档日志线程号。

%I:Oracle数据库的DBID。

%M:当前时间中的月,格式为MM。

%N:表空间名称。

%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。

%p:备份集中备份片段的编号,从1开始。

%s:备份集号。

%t:备份集时间戳。

%T:当前时间的年月日格式(YYYYMMDD)。

%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。

%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式。执行不同备份操作时,生成的规则也不同,如下所示:

生成备份片段时,%U=%u_%p_%c;
生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u;
生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;
生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。

%Y:当前时间中的年,格式为YYYY。

PS:

如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。

Oracle中RMAN基本命令教程的更多相关文章

  1. 【RMAN】Oracle中如何备份控制文件?备份控制文件的方式有哪几种?

    真题1. 如何备份控制文件?备份控制文件的方式有哪几种? 答案:备份控制文件的方式有多种. ① 备份控制文件可以在线进行: SQL> ALTER DATABASE BACKUP CONTROLF ...

  2. RMAN详细教程(二):备份、检查、维护、恢复

    RMAN详细教程(一):基本命令代码 一.创建增量备份 增量备份级别为0-4,但为方便备份管理,oracle建议只限于0级和1级. 1.差异增量备份(differential incremental ...

  3. RMAN详细教程(四):备份脚本实战操作

    RMAN详细教程(一):基本命令代码 RMAN详细教程(二):备份.检查.维护.恢复 RMAN详细教程(三):备份脚本的组件和注释 RMAN详细教程(四):备份脚本实战操作 1.为了安全起见,先将数据 ...

  4. RMAN详细教程(三):备份脚本的组件和注释

    RMAN详细教程(一):基本命令代码 RMAN详细教程(二):备份.检查.维护.恢复 RMAN详细教程(三):备份脚本的组件和注释 RMAN详细教程(四):备份脚本实战操作 一.基本组件: 1.Ser ...

  5. Oracle中三种循环(For、While、Loop)

    1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...

  6. ORACLE 查看RMAN的备份信息总结

    关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它方式检查RMAN备份的成功与失败呢?其实我们可以通过下面SQL脚本来检查某个时间段备份失败的记录: SELECT * FROM V$RM ...

  7. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

  8. oracle中drop、delete和truncate的区别

    oracle中drop.delete和truncate的区别 oracle中可以使用drop.delete和truncate三个命令来删除数据库中的表,网上有许多文章和教程专门讲解了它们之间的异同,我 ...

  9. ORACLE的RMAN

    1.什么是RMAN? RMAN可以用来备份和还原数据库文件.归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. 注意:RMAN不能用于备份初始化参数文件和口令文件. RMAN启动数据库上的 ...

随机推荐

  1. 6090A一种手指笔

    发明名称--一种手指笔 申请号   CN201821972396.6 申请日   2018.11.28 公开(公告)号   CN209224777U 公开(公告)日   2019.08.09 IPC分 ...

  2. Docker学习总结(三)--常用命令

    镜像相关命令 查看镜像 docker images 返回列表字段含义如下: 字段名称 字段含义 REPOSITORY 镜像名称 TAG 镜像标签 IMAGE ID 镜像 ID CREATED 镜像创建 ...

  3. Leetcode之深度优先搜索(DFS)专题-301. 删除无效的括号(Remove Invalid Parentheses)

    Leetcode之深度优先搜索(DFS)专题-301. 删除无效的括号(Remove Invalid Parentheses) 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果. 说明 ...

  4. 从SpringBoot构建十万博文聊聊限流特技

    前言 在开发十万博客系统的的过程中,前面主要分享了爬虫.缓存穿透以及文章阅读量计数等等.爬虫的目的就是解决十万+问题:缓存穿透是为了保护后端数据库查询服务:计数服务解决了接近真实阅读数以及数据库服务的 ...

  5. Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送

    idMessage / idSMTP 首先对idMessage类的各种属性进行赋值(邮件的基本信息,如收件人.邮件主题.邮件正文等),其次通过idSMTP连接邮箱服务器,最后通过idSMTP的Send ...

  6. Synchronized机制下偏向锁、轻量级锁、重量级锁的适用场景

    上次总结了Synchronized机制下的锁的种类和原理,这次总结一下几种锁的适用场景. 偏向锁 一个线程获取某个对象的偏向锁的成本是很低的,只需把对象头的偏向线程id改为自己就好,如果偏向线程id已 ...

  7. Requests方法 -- 参数关联与JSESSION(上一个接口的返回数据作为下一个接口的请求参数)

    前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了.最常见的案例就是网站的登录案例,很多网站的登录并不仅仅 ...

  8. SPOJ - Find The Determinant III 计算矩阵的行列式答案 + 辗转相除法思想

    SPOJ -Find The Determinant III 参考:https://blog.csdn.net/zhoufenqin/article/details/7779707 参考中还有几个关于 ...

  9. HDU 6394 Tree 分块 || lct

    Tree 题意: 给你一颗树, 每一个节点都有一个权值, 如果一个石头落在某个节点上, 他就会往上跳这个的点的权值步. 现在有2种操作, 1 把一个石头放在 x 的位置 询问有跳几次才跳出这棵树, 2 ...

  10. 牛客小白月赛5 E 面积 计算三角形面积模板 波尔约-格维也纳定理 匹克公式

    链接:https://www.nowcoder.com/acm/contest/135/E来源:牛客网 题目描述 定义“最大生成图”:在M*N的点阵中,连接一些点形成一条经过所有点恰好一次的回路,且连 ...