一、RMAN连接数据库

1.  连接本地数据库

[oracle@oracle hotbak]$ export oracle_sid=orcl
[oracle@oracle hotbak]$ rman target/ 恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 21 01:43:25 2016 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到目标数据库: ORCL (DBID=1458478724)

  注: 如果是一个实例,则不需要指定

或者

[oracle@oracle hotbak]$ rman 

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 21 01:54:22 2016

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target/

连接到目标数据库: ORCL (DBID=1458478724)

2.  连接远程数据库

[oracle@oracle hotbak]$ rman target sys/sinosoft@dbsrv1

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 21 02:02:41 2016

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: DBSRV1 (DBID=294555525)

RMAN> 

  当然,在这里你也可以同样先启动rman,再通过connect 创建连接。

3. 将终端输出定向到日志文件中

[oracle@oracle ~]$ rman target/ log /tmp/rman.log
RMAN> show all;

4. 启动关闭数据库

RMAN> shutdown immediate

RMAN> startup mount;

RMAN> alter database open;

数据库已打开

    启动和关闭的命令跟SQL 环境下完全一模一样。

5. 执行操作系统命令

RMAN> host;

[oracle@oracle ~]$ ls /tmp/rman.log
/tmp/rman.log
[oracle@oracle ~]$ exit
exit
主机命令完成 RMAN>

6. 执行SQL语句

RMAN> SQL 'ALTER SYSTEM checkpoint';

sql 语句: ALTER SYSTEM checkpoint

rman 中的sql环境不能执行 SELECT语句,或者说执行不报错,但你也看不到结果。

二、 定义RAMN的配置

 --显示RAMN的配置

RMAN> show all;

db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
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 BACKUP TYPE TO BACKUPSET; # 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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default

  该命令使用也相当灵活,其后跟上不同的类型的配置参数,即可以显示不同类型的配置,如:
  SHOW CHANNEL;
  SHOW DEVICE TYPE;
  SHOW DEFAULT DEVICE TYPE;

--修改配置

1、CONFIGURE RETENTION POLICY 配置备份保留策略

基于时间:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
基于冗余数量:
CONFIGURE RETENTION POLICY TO REDUNDANCY n;
也可以取消备份保留策略:
CONFIGURE RETENTION POLICY TO NONE;

2、CONFIGURE BACKUP OPTIMIZATION 配置备份优化

打开备份优化:
CONFIGURE BACKUP OPTIMIZATION ON;
关闭备份优化:
CONFIGURE BACKUP OPTIMIZATION OFF;

3、CONFIGURE DEFAULTDEVICE TYPE 配置IO 设备类型

RMAN 支持的IO 设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。
使用磁盘设备:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
使用磁带设置:
CONFIGURE DEFAULT DEVICE TYPE TO SBT;

4、CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份

是否自动备份,包含两个状态:OFF 和ON
打开自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON
禁止自动备份
CONFIGURE CONTROLFILE AUTOBACKUP OFF
同时可以通过如下配置指定备份的控制格式,路径。例如:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';

在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以通过如下配置:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/BACKUP/SNCFDEMO.'dbf;

5、CONFIGURE DEVICE TYPE 设置并行备份

RMAN 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

6、CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度

我们想把某条更改过的配置再置为初始应该怎么办呢,很简单,用如下命令:

RMAN> configure CONTROLFILE AUTOBACKUP clear;

旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN 配置参数已成功重置为默认值

--FORMAT字符串替代变量

使用FORMAT参数时可使用的各种替换变量,如下:
%c:备份片的拷贝数(从1 开始编号);
%d:数据库名称;
%D:位于该月中的天数(DD);
%M:位于该年中的月份(MM);
%F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;
%n:数据库名称,并且会在右侧用x 字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8 字符名称。利用%u 可以为每个备份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从1 开始编号;
%U:是%u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式;
%s:备份集的号;
%t:备份集时间戳;
%T:年月日格式(YYYYMMDD);s
注:如果在BACKUP 命令中没有指定FORMAT选项,则RMAN 默认使用%U 为备份片段命名。

三、RMAN备份数据库

--备份全库

RMAN> backup database;

执行上述命令后将对目标数据库中的所有数据文件进行备份,

如果没有显式指定FORMAT参数,rman 会自动为每个备份片段命名,默认保存在$ORACLE_BASE/flash_recovery_area/SID/backupset下面

[oracle@oracledb 2016_12_21]$ pwd
/opt/oracle/app/flash_recovery_area/DBSRV1/backupset/2016_12_21
[oracle@oracledb 2016_12_21]$ ll
总用量 429588
-rw-r----- 1 oracle oinstall 439889920 12月 21 14:09 o1_mf_nnndf_TAG20161221T140401_d5n6tr2h_.bkp

如果指定了FORMAT参数,则备份在指定的目录下

[oracle@oracle backup]$ pwd
/u03/rman/backup
[oracle@oracle backup]$ ll
总用量 407764
-rw-r-----. 1 oracle oinstall 407388160 12月 21 21:49 backup_09ro29uj_1_1

当然,也可以通过显式指定format 参数来自定义备份片段的命令规则,比如:

RMAN> BACKUP DATABASE FORMAT '/tmp/BACKUP/%U';

--通过list 命令查看刚刚创建的备份信息

RMAN> list backup of database;
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
7 Full 1.62G DISK 00:00:45 21-12月-16
BP 关键字: 7 状态: AVAILABLE 已压缩: NO 标记: TAG20161221T143048
段名:/tmp/BACKUP/0bro1gco_1_1
备份集 7 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/system01.dbf
2 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/sysaux01.dbf
3 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/undotbs01.dbf
4 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/users01.dbf
5 Full 13147385 21-12月-16 /opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf
6 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF
7 Full 13147385 21-12月-16 /opt/oracle/app/oradata/pdms/PDMS_DATA.dbf

--备份表空间

只要实例启动并处于加载状态,不论数据库是否打开,都可以在rman 中对表空间进行备份,而且不
需要像手动备份那样先'ALTERTABLESPACE... BEGIN BACKUP'。例如:

RMAN> backup tablespace DEV_DATA;

查看备份集

RMAN> LIST BACKUP OF TABLESPACE DEV_DATA;

备份集 7 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 Full 13147385 21-12月-16 /opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF

BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
9 Full 18.98M DISK 00:00:00 21-12月-16
BP 关键字: 9 状态: AVAILABLE 已压缩: NO 标记: TAG20161221T143911
段名:/opt/oracle/app/flash_recovery_area/DBSRV1/backupset/2016_12_21/o1_mf_nnndf_TAG20161221T143911_d5n8wj9v_.bkp
备份集 9 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 Full 13147708 21-12月-16 /opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF

发现有两个片段,删除一个

RMAN> delete backupset 9;

--备份指定数据文件

RMAN> BACKUP DATAFILE n;

如果要查看指定数据文件的备份,可以用:

RMAN> LIST BACKUP OF DATAFILE n;

注:n=指定的的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔:RMAN> backup datafile 1,2;

--备份控制文件

1.最简单的方式,通过CONFIGURE 命令将CONTROLFILE AUTOBACKUP 置为ON。
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
然后你再通过rman 做任何备份操作的同时,都会自动对控制文件做备份。

2.对编号为1 的数据文件,即SYSTEM 表空间的数据文件做备份时,RMAN 也会自动对控制文件做备份。

3.手动执行备份命令。

RMAN> BACKUP CURRENT CONTROLFILE;

4.执行BACKUP 时指定INCLUDE CURRENT CONTROLFILE 参数,例如:

RMAN> BACKUP DATABASEINCLUDE CURRENT CONTROLFILE;

如果要查看备份的控制文件,可以通过:

RMAN> LIST BACKUP OF CONTROLFILE;

--备份归档日志文件

在RMAN 中备份归档日志有两种方式

1、利用BACKUP ARCHIVELOG 命令备份

RMAN> BACKUP ARCHIVELOG ALL;

2、 在BACKUP 过程中利用PLUS ARCHIVELOG 参数备份,例如:

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

则在备份数据库的同时自动对所有归档文件进行备份。这种方式与上种有什么区别呢,区别太明显
了,BACKUP.....PLUS ARCHIVELOG 命令在备份过程中会依次执行下列步骤:
1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT 语句对当前redolog 进行归档。
2>.执行BACKUP ARCHIVELOG ALL 命令备份所有已归档日志。
3>.执行BACKUP 命令对指定项进行备份。
4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT 对当前redolog 归档。
5>.对新生成的尚未备份的归档文件进行备份。

RMAN 提供了DELETE ALL INPUT 参数,加在BACKUP 命令后,则会在完成备份后自动删除归档目录中已备份的归档日志

RMAN>  backup archivelog all delete input;

完成备份之后,可以通过下列命令查看已备份的归档日志片段:

RMAN> LIST BACKUP OF ARCHIVELOG ALL;

四、删除备份

1、删除陈旧备份

当使用RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。

RMAN> delete obsolete;

2、删除EXPIRED 备份

执行crosscheck 命令核对备份集,那么会将该备份集标记为EXPIRED 状态。为了删除相应的备份记录,可以执行delete expired backup 命令。

RMAN> delete expired backup;

3、删除EXPIRED 副本

RMAN> delete expired copy;

4、删除特定备份集

RMAN> delete backupset 19;

5、删除特定备份片

RMAN> delete backuppiece '/backup/DEMO_19.bak';

6、删除所有备份集

RMAN> delete backup;

7、删除特定映像副本

RMAN> delete datafilecopy '/backup/DEMO_19.bak';

8、删除所有映像副本

RMAN> delete copy;

9、在备份后删除输入对象

RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''/backup/%u.bak'' delete input

10、 删除归档日志

方式1:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

方式2:

RMAN> list archivelog all;
RMAN> crosscheck archivelog all; --命令的作用是将磁盘或者磁带上不存在的日志标记为expired
RMAN> delete expired archivelog all;--删除过期的归档日志

  

五、 RMAN相关视图

  • RMAN的入门篇的更多相关文章

    1. Membership三步曲之入门篇 - Membership基础示例

      Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

    2. spring boot(一):入门篇

      构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

    3. 1. web前端开发分享-css,js入门篇

      关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

    4. 一个App完成入门篇(七)- 完成发现页面

      第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...

    5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

      本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

    6. 转:OSGi 入门篇:模块层

      OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...

    7. 转:OSGi 入门篇:生命周期层

      OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...

    8. 【three.js详解之一】入门篇

      [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

    9. [Maven]Apache Maven 入门篇

      作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...

    随机推荐

    1. A quick renice command rescheduled the upgrade to a lower priority and I was back to surfing in no time.

      https://www.nixtutor.com/linux/changing-priority-on-linux-processes/ Changing Priority on Linux Proc ...

    2. 对蓝牙profile的理解

      蓝牙profile协议概览.pdf 之所以把Profile翻译为配置文件,是为避免和JavaME中的简表混淆.配置文件也是蓝牙 SIG官方网站给出的标准翻译. 想要使用蓝牙无线技术,设备必须能够翻译特 ...

    3. TF-IDF 文本相似度分析

      前阵子做了一些IT opreation analysis的research,从产线上取了一些J2EE server运行状态的数据(CPU,Menory...),打算通过训练JVM的数据来建立分类模型, ...

    4. 弱引用?强引用?未持有?额滴神啊-- Swift 引用计数指导

      ARC ARC 苹果版本的自动内存管理的编译时间特性.它代表了自动引用计数(Automatic Reference Counting).也就是对于一个对象来说,只有在引用计数为0的情况下内存才会被释放 ...

    5. mysql-四舍五入

      四舍五入:1.format函数:select FORMAT(2.567,2); 返回:2.57select FORMAT(12562.6655,2); 返回:12,562.67 //整数部分超过三位的 ...

    6. django静态文件数据库设置

      STATIC_URL = '/static/'STATICFILES_DIRS = (        os.path.join(BASE_DIR,'static')) DATABASES = {    ...

    7. Wex5页面事件执行顺序

      wex5 事件执行顺序data组件的onCustomRefresh→ model组件的onLoad→ windowReceiver组件的onReceive

    8. 什么是Servlet?它有哪些特点

      什么是Servlet?  它有哪些特点? Servlet是运行在JSP服务器端,用来生成Web页面的一种java程序 特点: (1)效率点 (2)功能强大 (3) Servlet之间能够共享数据 (4 ...

    9. ef第一次启动较慢

      解决ef第一次启动较慢的问题: protected void Application_Start() { //禁用第一次ef查询对表__MigrationHistory的问题使用了ef的Code fi ...

    10. jvm基础笔记

      名词解释: 三类参数:标准参数(可能不会变的,java -help列出来的就是这类的),X参数(非标准化参数),XX参数(扩展参数). 所有XX 参数都以-XX开始,但后面出现的+-就不同了.+代表激 ...