Oracle的Rman差异增量备份
所谓增量备份,顾名思义即是每次备份操作那些发生了“变化”的数据块。在RMAN增量备份中有两种:Differential(差异备份)和Cumulative(增量备份)方式。由于需求这里用到的备份方式则是差异增量备份。
差异增量备份概念:
是备份低级别或者同级别备份以来的所有数据块,也就是要备份前期备份以来的差异数据块。在实际的备份中必须存在基础备份也就是0级备份,若没有0级备份则没有比较的对象文件,从而无法实现增量备份,而0级备份便是数据库的全备份。(在Oracle10g之前的版本中,增量备份可以有n多个级别,从0级、1级…….这样的顺序直到n级,n为小于等于4的整数。而10g之后包括10g,Oracle的官方文档明确指出增量备份只有0和1两种级别,设置太多的级别没有太大的意义,不过在实际执行增量操作时,仍能能够指定多个级别,最大能够支持4级的增量备份)
备份原则:
(1) 若前面同时有n-1级别和同级别,则备份相同级别以来变化的数据;
(2) 若前面没有同级别的备份,则备份n-x级别以来变化的数据;
总的一点,差异增量触发的条件是:小于等于当前级别;
下面是周备份差异增量备份策略:


Rman备份基本命令:
登录Rman:
win+r 输入rman target/,或者先输入cmd,窗口打开后再输入rman target/(建议用后者)
登录进入的方式:
Rman targetsystem/newoa
Rman targetsystem/newoa nocatalog(控制文件方式)
Rman targetsystem/newoa catalog(恢复目录方式)
数据库备份:
Backup databaseformat=’ D:/backup/%d_%T_%s’;(format备份到自己想要备份到的地方)
备份表空间:
Backup tablespaceemp;
备份数据文件:
Backup datafileformat’ D:/backup/%d_%T_%s’;
备份归档日志:
Backup archivelogall delete input format ‘D:/backup/%d_%T_%s.dbf’;
备份控制文件:
Backup currentcontrolfile format ‘D:/backup/%d_%T_%s’;(current当前的)
备份spfile(参数文件):
Backup spfileformat=’ D:/backup/%d_%T_%s’;
0级增量备份:(level 后是几就代表几级)
backup incremental level 0 database format 'D:/backup/%d_%T_%s';
1级增量备份:
backup incremental level 1 database format 'D:/backup/%d_%T_%s';
---rman 维护命令:(登录rman后进行的操作)
listbackup --列出全部的备份信息
list backup ofdatabase --列出数据库备份
list backup of tablespace emp --列出指定的表空间备份
list backup of datafile5 --列出指定的数据文件备份
list backup ofcontrolfile --列出控制文件备份
list backup ofspfile --列出spfile备份
list archivelogall --列出归档日志
list backup of archivelogall --列出归档日志的备份
list backup of databasesummary --列出可用的备份
list backup of tablespace empsummary --关于表空间的备份
list backup byfile --按文件类型列出备份
list expired backup of archivelog all summary --失效的备份
reportobsolete --查看过期的
deleteobsolete --删除过期的
list recoverable backup ofdatabase --列出有效的备份
list expiredbackup --列出失效的备份
list expired backup of archivelogall --列出失效的归档日志备份
在开始操作前一定要将数据库设为归档模式,否则无法实现备份操作
首先切换到服务器归档模式,如果已经是归档模式可以跳过此步骤:
(1) Win键+r打开cmd , sqlplus /nolog (启动sqlplus)
(2) SQL>conn system/newoa as sysdba;(以DBA身份连接数据库)
(3) SQL>archivelog list;(查看是否处于归档模式)

(4) shutdownimmediate;(立即关闭数据库)

(5) startupmount;(启动实例并加载数据库,但不打开)

(6) alterdatabase archivelog;(更改数据库为归档模式)

(7) 重复步骤(3)若出现下图,表示数据库已切换归档模式

(8) alterdatabase open;(打开数据库)

开始备份,新建四个文件分别是:rman0.bat,rman0.txt,rman1.bat,rman1.txt(文件的名字随便命名只要区分备份级别即可)
Rman0.bat脚本内容:
rman target system/newoa nocatalogCMDFILE 'd:/Rman0.txt' LOG 'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';----à(此地址为日志地址)
Rman0.txt内容:
run{
backup incremental level 0database format 'D:/backup/%d_%T_%s';
backup archivelog all format'D:/backup/archivelog_%d_%T_%s_%p' delete all input;
}
Rman1.bat脚本内容:
rman target system/newoa nocatalogCMDFILE 'd:/Rman1.txt' LOG 'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';
rman1.txt内容:
run{
backup incremental level 1database format 'D:/backup/%d_%T_%s_%p';
backup archivelog all format'D:/backup/archivelog_%d_%T_%s_%p' delete all input;
}
在这里不需要再特意的写备份控制文件,在备份数据库时里面已经包含了控制文件的备份
在开始备份前,需在D盘中新建一个名为backup的文件夹,由上面备份文件存放的路径可以看出;
执行rman0.bat:
出现这个窗口表示成功执行,若执行后没过几秒关闭则失败,具体失败原因在D盘backup文件夹的日志文件中可以查看;
备份成功后到磁盘中可以看到已经备份好的文件;

这样数据库0级备份便完成,接着进入到数据库,添加一些数据再进行1级数据库的备份(执行rman1.bat文件);
这时可以登录rman查看已备份好的数据库具体信息:
打开cmd 执行 rman target/
接着执行 list backup; 会看到以下信息

恢复数据库
恢复数据库的方式:基于scn恢复
选择scn恢复时,scn值为你选择中的备份片的控制文件scn值,使用 list backup命令去查看;

开始恢复:
(1) 登录到rman, --------rman target/
(2) shutdownimmediate;(立即关闭数据库)
(3) startup mount;(启动实例并加载数据库,但不打开)
(4) run{
set untilscn 1041640;
restoredatabase;
recoverdatabase;
alterdatabase open resetlogs;
}

结束之后便可进入数据库查看数据是否恢复。
Oracle的Rman差异增量备份的更多相关文章
- 如何通过rman的增量备份恢复dataguard中standby端的数据
很多正在使用dataguard的客户,都会遇到一个棘手的问题: 在备份端与主库同步的过程中由于网络原因或磁盘问题导致一个或多个归档日志丢失,进而dataguard同步无法继续.很多客户都选择了重新全库 ...
- MySQL和MSSQL差异(增量)备份的原理
MySQL和MSSQL差异(增量)备份的原理 对于真正的增量备份来说,只需要记录当前每页最后的检查点的LSN,如果大于之前全备时的LSN,则备份该页面,否则不用备份 这大大加快了备份速度和恢复时间,同 ...
- Oracle通过SCN做增量备份修复DG
DG由于网络原因或者bug原因经常不同步,有时隔得时间久了,就会丢失归档日志,或者长时间的归档恢复较慢,有一种可以基于scn的方式来恢复DG库,使用基于scn的增量备份来恢复standby库可以节省大 ...
- oracle全量、增量备份
采用0221222增量备份策略,7天一个轮回 也就是周日0级备份,周1 2 4 5 6 采用2级增量备份,周3采用1级增量备份 打开控制文件自动备份 CONFIGURE CONTROLFILE AUT ...
- Oracle Rman 增量备份与差异备份
一.增量与差异 关于Incremental增量备份级别: Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推. Oracle 10g官方文档明确指出增量 ...
- ORACLE RMAN备份--差异增量与累积增量的策略实例图
转自原文 ORACLE RMAN备份--差异增量与累积增量的策略实例图
- Oracle 差异增量和累计增量备份
网址: http://www.eygle.com/digest/2009/04/oracle_rman_incremental_backup.html 在rman增量备份中,有差异增量和累积增量的概念 ...
- Oracle 12 Rman增量备份
增量备份 增量备份主要作用是仅复制自上次备份以来已更改的数据块.您可以使用RMAN创建数据文件,表空间或整个数据库的增量备份. 将增量备份作为策略的一部分的主要原因是: 用于基于增量更新备份的策略,其 ...
- 示例说明Oracle RMAN两种库增量备份的差别
1差异增量实验示例 1.1差异增量备份 为了演示增量备份的效果,我们在执行一次0级别的备份后,对数据库进行一些改变. 再执行一次1级别的差异增量备份: 执行完1级别的备份后再次对数据库进行更改: 再执 ...
随机推荐
- 从苏宁电器到卡巴斯基第09篇:我在苏宁电器当营业员 I
毕竟应聘的是营业员,门槛还是很低的 我应聘苏宁的时候已经到了2009年的8月初,记得当时苏宁电器的长春总部还在吉林大路与东盛大街交汇处的亚泰广场,我当时的面试就是在那里. 我记得很清楚,那天等待面试的 ...
- hdu3182 状态压缩dp
题意: 一个人做汉堡包,每个汉堡包有自己的花费和价值,某些汉堡包必须是在其他的某些汉堡包已经做好了的前提下才能制作,给你这个人的初始钱数,问最大的价值是多少. 思路: 比较简单 ...
- C++基于文件流和armadillo读取mnist
发现网上大把都是用python读取mnist的,用C++大都是用opencv读取的,但我不怎么用opencv,因此自己摸索了个使用文件流读取mnist的方法,armadillo仅作为储存矩阵的一种方式 ...
- spring和mybatis整合时Access denied for user '***'@'localhost' (using password: YES)错误的解决方案
参考文章:博客园文章 参考解决办法: 将数据库配置文件格式 key=value 改为 jdbc.key=value 以下为问题分析 使用Spring + Mybatis + Mysql整合时,测试报错 ...
- Mac 右键强化工具-超级右键
App Store 功能介绍 1.新建文件 默认支持新建:TXT/RTF/XML/Word/Excel/PPT/WPS文字/WPS表格/WPS演示/Pages/Numbers/keynote/Ai/P ...
- Java_接口回调与匿名内部类
匿名内部类 警告:匿名内部类本质上是一个对象 如果有一个接口或者抽象类,必须要用class定义一个实现类写重写抽象方法,才能创建对象并使用. 匿名内部类就是省略了用class定义子类的过程,直接使用父 ...
- 项目展示$\alpha$
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 强制转会与项目展示 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 ...
- Serverless实践-静态网站托管
Serverless实践-静态网站托管 超多图预警!!! 本文旨在帮助不懂运维/网络/服务器知识的小白,在不租用云服务器的情况下,实现Web站点的上线部署 适合边看文章边跟着动手做 包含使用Githu ...
- 如何实现一个简易版的 Spring - 如何实现 AOP(上)
前言 本文是「如何实现一个简易版的 Spring 系列」的第五篇,在之前介绍了 Spring 中的核心技术之一 IoC,从这篇开始我们再来看看 Spring 的另一个重要的技术--AOP.用过 Spr ...
- 排坑·ASCII码为160的空格(nbsp)
阅文时长 | 2.83分钟 字数统计 | 1345.2字符 『排坑·ASCII码为160的空格(nbsp)』 编写人 | SCscHero 编写时间 | Wednesday, September 9, ...