文档章节

RMAN 学习过程之三,备份演练初级篇

JAVA枪手
 JAVA枪手
发布于 2017/09/05 16:11
字数 2292
阅读 15
收藏 0
点赞 0
评论 0

      前面我们已经知道了如何进入rman,以及rman的一些基本命令,相信大家定会觉着rman操作的简单,事实也确实如此,但万不要因此小视rman的强大,简单往往意味着灵活,灵活对于那些有心人则意味着主动权尽在掌握。

一、RMAN备份形式

  1、镜像复制(Image Copies)

  镜像复制实际上就是数据文件、控制文件或归档文件的复制,与用户通过操作系统命令建立的文件复制实质一样,只不过RMAN是利用目标数据库中的服务进程来完成文件复制,而用户则是用操作系统命令。所以镜像复制的方式体现不出RMAN的优势,也并非我们讨论的重点,大家了解一下即可。

  2、备份集(Backup Sets)

  备份集是通过RMAN创建的逻辑备份对象。一个备份集中可以包含多个数据文件、控制文件或归档文件。备份集在物理上是由多个备份片段组成,每个备份片段是一个操作系统文件。

二、RMAN命令执行方式

  在进入演练之前,大家还有必要了解运行rman命令的方式,就目前已知的情况,共有4种运行方式。

  1、单个执行(没啥说的,之前的示例都是这种方式)

RMAN> backup database ;

  2、批处理(呵呵,跳票的补上)

RMAN> RUN{

.......................

.......................

}

  批处理方式实质是将原来单个执行的命令组合到一起,并放在run{}之间,这种方式最大的好处是所有在run中的命令被视为一个作业,如果作业中任何一条命令执行失败,则整个命令停止执行,即失败命令后的其它命令都不会再被执行。这种方式是最常使用的方式,特别对于后台执行。

  3、运行脚本(又能细分为几种方式如下:)

C:\> rman TARGET / @backup_db.rman

RMAN> @backup_db.rman

RMAN> RUN { @backup_db.rman }

  运行存储在恢复目录中的脚本(需要首先为rman创建恢复目录)

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

  看看,够灵活吧。

  4、操作系统脚本(linux,windows环境下小有差异,但只是操作系统命令的不同)

C:\ > rman cmdfile=backup_db.rman

  明眼人看的出来,后两种其实是前面两种加上操作系统命令的综合应用。

三、对数据库进行全备

  1、使用backup database命令执行备份

RMAN> BACKUP DATABASE;

  执行上述命令后将对目标数据库中的所有数据文件进行备份,由于没有显式指定FORMAT参数,rman会自动为每个备份片段命名,并保存在ORACLE_HOME/database目录下。

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

RMAN> BACKUP DATABASE FORMAT ¨D:\BACKUP\%U¨;

  ( 关于%U的格式说明,详细咨询度娘。)

  2 、通过list命令查看刚刚创建的备份信息:

RMAN> list backup of database;

正在使用目标数据库控制文件替代恢复目录

备份集列表

===================

BS  关键字  类型 LV 大小       设备类型 经过时间 完成时间

------- ---- -- ---------- ----------- ------------ ----------

11      Incr 0  827M       DISK        00:01:30     26-6 月 -07

BP  关键字: 11   状态: AVAILABLE   标记:TAG20070629T150701

段名:D:\BACKUP\0CILGG8L_1_1

   备份集 11 中的数据文件列表

   文件 LV 类型 Ckp SCN    Ckp 时间   名称

  ---- -- ---- ---------- ---------- ----

  1    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\SYSTEM01.DBF

  2    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\UNDOTBS01.DBF

  3    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\DRSYS01.DBF

  4    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\EXAMPLE01.DBF

  5    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\INDX01.DBF

  6    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\ODM01.DBF

  7    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\TOOLS01.DBF

  8    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\USERS01.DBF

  9    0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\XDB01.DBF

  10   0  Incr 5233577896 26-6 月 -07 F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA;

四、备份表空间

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

RMAN> backup tablespace jweb;
启动 backup 于  26 - 6 月 -07

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在启动 full 数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00010 name=F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA

通道 ORA_DISK_1: 正在启动段 1 于  26 - 6 月 -07

通道 ORA_DISK_1: 已完成段 1 于  26 - 6 月 -07

段 handle=F:\ORAHOME1\DATABASE\0JIM0BBV_1_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:15

完成 backup 于  26 - 6 月 -07

启动 Control File and SPFILE Autobackup 于  26 - 6 月 -07

段 handle=D:\BACKUP\C-3391142503-20070704-00 comment=NONE

完成 Control File and SPFILE Autobackup 于  26 - 6 月 -07

同样,我们在使用backup tablespace也可以通过显式指定format参数自定义备份片段名称。

  我们再通过LIST BACKUP 查看一下备份:

RMAN>  LIST BACKUP OF TABLESPACE JWEB ;

  发现有两份备份片段,复习一下上一章的内容,删除其中一个备份(删除的方法非常多,下例使用删除backupset,有心的朋友不妨自己尝试一下通过其它方式删除指定备份片段)。

RMAN>  DELETE BACKUPSET 18 ;

五、备份指定数据文件

  首先可以先通过数据字典DBA_DATA_FILES查询出表空间对应的数据文件及其序号,例如:

SQL> select  file_name,file_id,tablespace_name  from  dba_data_files

  然后再通过BACKUP DATAFILE 备份指定序号的数据文件,例如:

RMAN>  BACKUP DATAFILE n;

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

RMAN>  LIST BACKUP OF DATAFILE n;

  注:n=指定的的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔即可。

六、备份控制文件

  控制文件在ORACLE中的重要性是毋庸置疑的,你看,连RMAN都给予特殊的照顾,在RMAN中备份控制文件的方式是最多的。

  1. 最简单的方式,通过CONFIGURE命令将CONTROLFILE AUTOBACKUP置为ON。

RMAN>  CONFIGURE CONTROLFILE AUTOBACKUP ON;

  然后你再通过rman做任何备份操作的同时,都会自动对控制文件做备份。

  2. 在自动备份打开的情况下,备份任意表空间操作时,RMAN均会自动对控制文件做备份。

  3. 手动执行备份命令。

RMAN>  BACKUP CURRENT CONTROLFILE;

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

RMAN>  BACKUP DATABASE INCLUDE 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>  LIST BACKUP OF ARCHIVELOG ALL;

  综述:上述示例中出现的命令格式较多,但细细看来是否能发现些格式上的规律?比如查看备份基本都是LIST BACKUP OF备份项名称,如果想自定义片段的话则在备份命令后加上FORMAT参数(后三项没有列举加format参的示例,大家千万表以为是不可以哟,俺都说乐rman是超灵活地泥,大家一定要多多尝试,反正执行的是备份操作不是删除,又搞不坏目标数据库,你还有啥可担心的泥)。

本文转载自:http://www.5ienet.com/note/html/rman/rman-backup-standard-command-list.shtml

共有 人打赏支持
JAVA枪手
粉丝 7
博文 84
码字总数 15221
作品 0
东城
高级程序员
Oracle备份和恢复(RMAN篇)

前言:欢迎加QQ交流1445696451微博地址http://blog.51cto.com/13434336 ~ ~ ~ ~ ~ ~ ~分割 ~ ~ ~ ~ ~ ~ 数据库备份与恢复是数据库管理员必须掌握的。没有任何系统能免遭硬盘物理损坏、粗心用...

张晨chat ⋅ 06/03 ⋅ 0

catalog恢复目录介绍和配置

2.1、nocatalog介绍 nocatalog方式 就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用rman nocatalog方式备份...

PengChonggui ⋅ 06/21 ⋅ 0

Oracle 11g R2 Rman、数据泵、闪回备份与恢复

Oracle 11g R2 Rman备份 备份与恢复的定义及分类 备份的定义及分类: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份。 物理备份:对数据库操作系统的物理文件...

Love小敏 ⋅ 06/14 ⋅ 0

通过RMAN创建dataguard(原创)

环境介绍:数据库版本10G,两个节点分别是rednum1(192.168.212.128)和rednum2(192.168.212.130) 主库主机名称是rednum1,从库主机名称是rednum2 配置步骤如下: 1、在主库和从库配置tnsnames如...

denti ⋅ 06/04 ⋅ 0

RMAN 中delete exipired 和 delete obsolete 的区别

elete expired If you run CROSSCHECK, and if RMAN cannot locate the files, then it updates their records in the RMAN repository to EXPIRED status. You can then use the DELETE EXP......

1321385590 ⋅ 04/19 ⋅ 0

ORACLE不完全恢复的几种情况

ORACLE不完全恢复的几种情况 1、介绍 RMAN不完全恢复的三个标准模式:基于time、基于scn和基于sequence,与手工不完全恢复相比原理类似,语法稍有不同: 2、不完全恢复的几种情况 ### 1)不完...

持续高温 ⋅ 04/22 ⋅ 0

shell判断oracle主备数据库备份脚本

1. 脚本如下 说明:按照客户要求,在主备数据库上同时部署脚本,自动判断是否是主库,如果是主库则进行备份,备库不需要备份,记录日志为备份库即可,以下脚本仅供参考,可以进一步优化。 脚...

roidba ⋅ 05/24 ⋅ 0

将过期或未注册到控制文件 RMAN 激活或注册到控制文件

RMAN备份集显示已过期 重新注册 CATALOG BACKUPPIECE '/backup/oraclebk/archivelog/archivelog.20180516.dft30rbg11.rman'; RMAN显示备份集为可用状态 注:CATALOG BACKUPPIECE 命令还可以往......

1321385590 ⋅ 05/18 ⋅ 0

举一反三:跨平台版本迁移之 XTTS 方案操作指南

跨平台跨版本迁移方案对比 针对跨平台跨版本的迁移,主要有以下三种方式:数据泵、GoldenGate / DSG、XTTS,针对停机时间、复杂度、实施准备时间,做了以下列表比对: 客户的需求都是最短停机...

技术小能手 ⋅ 04/23 ⋅ 0

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案

(一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26040)简介 如果只是错误ORA-01578,而没有伴随ORA-26040,那么这个坏块是由其它的原因引起的坏块,可以尝试使用RMAN的BMR(Block Media R...

lhrbest ⋅ 04/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 16分钟前 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 31分钟前 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 8

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部