Restore Points 制定回退方案

背景:Flashback Database 和 restore points 都可以提供一个基于时间点的回滚。

理论:
1) Normal Restore Points
对于Normal Restore Points, point的名称和SCN 保存在控制文件里。
Normal restore points 信息保存在控制文件中,属轻量级别,即使我们没有手工的删除这些points 信息,控制文件也会有删除这些信息,所以对于Normal restore points,我们不要其他的维护操作。
Restore Point 同Flashback Database 一样,也会产生image 文件,在没有启用Flashback Database的情况下,只在开始时创建一次image,并保存在FRA中。

2) Guaranteed Restore Points
Guaranteed restore points 的信息也是保存在控制文件里的,本质的不同是Guaranteed restore points 不会自动的删除,必须手工的清除这些信息。

如果我们创建了Guaranteed restore point,那么即使我们没有启用Flashback Database,那么我也可以恢复到我们创建的point。 但如果我们同时启用了Flashback Database,那么guaranteed restore point 会强制保留从那个point 依赖的flashback log 文件。 这样我们就会rewind从我们创建point 以来的任一个SCN。

一句话表示,就是在不启用FlashbackDatabase 的情况下, Guaranteed restore point 只能rewind到我们创建的点对应的SCN.

当我们创建了一个Guaranteed Restore Points,并且我们没有启动Flashback Database,那么在这种情况下,DB 会也会创建一个block 的镜像,并存在FRA空间里,这个和Flashback Database 的一致,那么不同的时,Flashback Database 会每隔一段时间创建一个block的image,而Restore Points 只在开始时创建一次,那么恢复的时候也就只能恢复到这个时间点。
这里要注意一点,我们创建Restore Point的名称和对应的SCN是保存在控制文件里的,这点前面有说明。

在不启用Flashback Database 的情况下,我们创建Guaranteed Restore Points,只创建一次image,那么会节省很多的FRA空间,这种方法在对数据库进行升级的时候很有用,在升级之前我们创建一次Guaranteed Restore Point,然后升级DB,如果升级失败,我们回退,如果升级生成,我们删除Restore Point。

实际上,在我们进行变更操作之前,只需要创建一个镜像就可以了,不需要时时记录变化。而Resotre Points 恰好满足我们的需求,又节省空间,并且恢复速度还快,因为它不像RMAN 那样需要进行restore。所以用他非常方便。

注:
guaranteed模式下只要有足够的闪回区,不会受DB_FLASHBACK_RETENTION_TARGE参数影响。
normal还原点至少保留2048个,保留的个数据受CONTROL_FILE_RECORD_KEEP_TIME参数决定,默认值是7天。

创建guaranteed还原点,必须满足以下条件:
a.创建一个guaranteed 还原点必须有SYSDBA系统权限。创建一个normal还原点,你必须有SELECT ANY DICTIONARY or FLASHBACK ANY TABLE privilege
b.必须创建flash recovery area
配置flash recover area共需要二个参数(DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE)这两个参数可以在数据库运行过程中在线修改,修改后立即生效,比如以下列子:
SQL>alter system set db_recovery_file_dest='+XXXX' scope=both;
SQL>alter system set db_recovery_file_dest_size='10g' scope=both sid='*';
c.数据库必须是归档模式(如果是担保还原点,归档目录必须是共享的。

操作流程:

1.先创建restore point
SQL> create restore point upgrade_point guarantee flashback database;
Restore point created.

2. 查看我们创建的restore point
SQL> select * from v$restore_point;

3. 进行打补丁或者升级等大动作
。。。。。

4.如果失败,就进行回滚
注意:执行Flashback Database时,DB 不能处于open状态.
SQL> shutdown immediate
SQL> startup mount;
SQL> select open_mode from v$database;
SQL>select * from v$restore_point;
SQL> flashback database to restore point upgrade_point;
--提示必须用Resetlogs打开:
SQL> alter database open resetlogs;
SQL>@?/rdbms/admin/utlrp.sql (重新编译失效对象)
SQL> drop restore point upgrade_point;
SQL>select * from v$restore_point;

Restore Points 制定回退方案的更多相关文章

  1. Scrum立会报告+燃尽图(十二月八日总第三十九次):制定视频方案

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284 项目地址:https://git.coding.net/zhang ...

  2. 官方文档 恢复备份指南七 Using Flashback Database and Restore Points

    本章内容: Understanding Flashback Database, Restore Points and Guaranteed Restore Points Logging for Fla ...

  3. 使用iMindMap思维导图软件的活动策划模板制定策划方案

    活动策划不单单是一个头脑风暴的过程,更是一个整合各项资源.条件的过程.因此我们可以合理的使用思维导图软件来做活动策划.iMindMap(Windows系统)思维导图软件提供了快捷而方便的活动策划模板, ...

  4. Asp.net Mvc模块化开发之“部分版本部分模块更新(上线)”

    项目开发从来就不是一个简单的问题.更难的问题是维护其他人开发的项目,并且要修改bug.如果原系统有重大问题还需要重构. 怎么重构系统不是本文探讨的问题,但是重构后如何上线部署和本文关系密切.这个大家可 ...

  5. net Mvc模块化开发

    Asp.net Mvc模块化开发之“部分版本部分模块更新(上线)” 项目开发从来就不是一个简单的问题.更难的问题是维护其他人开发的项目,并且要修改bug.如果原系统有重大问题还需要重构. 怎么重构系统 ...

  6. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)

    概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...

  7. 3.SDL落地方案

    01.安全培训 安全意识培训(全员) 邮件安全 钓鱼邮件 邮件伪造 第三方转存 检查发件人 开启二次验证 邮件转发 第三方代收 邮件附件敏感信息加密 病毒防范 什么是木马病毒 我安装哪些杀毒软件? 定 ...

  8. 一位IT行业高收入者的理财规划方案

    一位IT行业高收入者的理财规划方案 http://zhuanlan.zhihu.com/invest/19670220 Alex · 12 天前 回望2013,这一年是极其不寻常的.理财浪潮席卷大江南 ...

  9. 闪回还原点(Flashback Restore Point)

    Flashback Restore Point(闪回还原点) 闪回还原点分两种,一种是Normal Restore Points(正常还原点),另一种是Guaranteed Restore Point ...

随机推荐

  1. HandlerMethodArgumentResolver 参数解析器

    关于springMvc中的参数解析器 springMvc中的HandlerAdapter会检测所有的 HandlerMethodArgumentResolver(对参数的解析器) HandlerMet ...

  2. VS中单元测试用法

    using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestProject1 { [Test ...

  3. 如何利用Require.Js管理多页面站点文件(译)

    英文版地址 最近使用 Require.Js 的时候我发现它确实是一个改善代码管理的一个好方法.我以前发表Backbone类的文章时曾提到过 Require,但此前,我从未在传统的多页面网站内使用到 R ...

  4. 【Java】 Spring依赖注入小试牛刀:编写第一个Spring ApplicationContext Demo

    0  Spring的依赖注入大致是这样工作的: 将对象如何构造(ID是什么?是什么类型?给属性设置什么值?给构造函数传入什么值?)写入外部XML文件里.在调用者需要调用某个类时,不自行构造该类的对象, ...

  5. android WebView详细使用方法(转)

    1.最全面的Android Webview详解 2.最全面总结 Android WebView与 JS 的交互方式 3.你不知道的 Android WebView 使用漏洞 如果想保证登录状态,就插入 ...

  6. word操作

  7. Java 内存分配全面浅析(转)

    本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java.这类文章网上有很多,但大多比较零碎.本文从认知过程角度出发,将带给读者一个系统的介绍. 进入正题前首先要知道的是Java程 ...

  8. HTML 学习笔记 JQuery(事件)

    加载DOM 以浏览器加载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM元素添加事件.在常规的JavaScript中,通常使用window.onload方法,在JQuery中通常使 ...

  9. 【linux】如何查看进程运行在那颗cpu上

    这里介绍一种方法查看进程运行在哪个cpu上, 首先top 然后按字母:f 按字母:j 回车即可 其中P列表示进程运行在哪个CPU上

  10. python——进程池

    from concurrent.futures import ProcessPoolExecutor import os,random def func(name): print("%s吃了 ...