一、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. iOS 两个App之间调起通信

      前言 假设需求是这样的:由一个app1跳转到app2之后,app2完成某项任务之后,怎么把app2的完成信息传到app1(自己的程序是app1),传的是什么类型的数据,怎么进行解析? 逻辑 本文章使用 ...

    2. Ubuntu 14.04 升级gcc 4.8到gcc 5.x

      简介 有些软件比较新,需要更高的gcc版本,所以需要升级gcc.编译安装比较耗时,所以直接选择bin包就好. 步骤 添加源 sudo add-apt-repository ppa:ubuntu-too ...

    3. swift2.0单例

      import Foundation   public class SwiftSingleton{     var name = "000"     public static le ...

    4. SQL Nexus

      在前面的SQLdiag系列中有提到SQLNexus,当时我们用SQLNexus查看了Perfmon Summary(性能计数器).ReadTrace Reports(跟踪文件)两项报表.SQLNexu ...

    5. curl 查看一个web站点的响应时间(rt)

      1. curl 查看web站点rt curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer} ...

    6. python 安装easy_install和pip

      做个记录 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/ ...

    7. vertical-align属性

      准备阶段 vertical-align取值及含义: 值 含义 baseline 默认.元素放置在父元素的基线上. top 把元素的顶端与行中最高元素的顶端对齐 text-top 把元素的顶端与父元素字 ...

    8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布

      历时数月,RDIFramework.NET V2.7 版本发布了,感谢大家的支持. RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系 ...

    9. win32下的双缓冲绘图技术

      一:双缓冲原理 为了解决窗口刷新频率过快所带来的闪烁问题,利用双缓冲技术进行绘图.所谓双缓冲技术,就是将资源加载到内存,然后复制内存数据到设备DC(这个比较快),避免了直接在设备DC上绘图(这个比较慢 ...

    10. HttpClient_002_中文乱码、HttpClient中文乱码透析、总结

      中文乱码原理代码: String s = "中文"; byte[] bs2 = s.getBytes("utf-8");//将s拆成:utf-8个体,注:utf ...