[Oracle维护工程师手记]为什么flashback 的时候既需要 flashback log ,又需要 archive log?
为什么flashback 的时候既需要 flashback log ,又需要 archive log 呢?
如果数据库的活动不是很频繁,可以看到,其flashback log 是比较小的。那么是通过怎样的方式 flashback 到过去的呢?
示意如下:
12:50 第一次更改数据(100-->200)
1:00 进行 第一次 flashback log 写入。 记录内容是 更改前的数据:100
1:10 第二次更改数据(200-->300)
1:30 再进行下一次flashback log 写入。 记录内容是 更改前的数据:200
1:45 第三次更改数据(300-->400)
2:00 再进行下一次flashback log 写入。 记录内容是 更改前的数据:300
2:20 第四次更改数据(400-->500)
2:30 再进行下一次flashback log 写入。 记录内容是 更改前的数据:400
2:40 第五次更改数据(500-->600)
3:00 再进行下一次flashback log 写入。 记录内容是 更改前的数据:500
如果想要 flashback 到 1:15 时刻,
数据库需要先找到最靠近这个时间点的之前的 flashback log 的时刻。
也就是 1:00 是的 flashback 的内容,用这个内容覆当前的数据,然后再吧 1:00 到 1:15 的 archive log 的内容 apply 此数据上。
上面举的例子是一个数据块的变更,数据库运行中有多个数据块被在不同时刻修改。所以真实的 flashback 是这样的一个过程:
比如现在是 3:10分,想要回到1:15 时刻,那么要经过如下的过程:
先利用 3:00 的 flashback ,用其中的更改前的数据, 回到3:00 的时刻的状态。
再利用 2:30 的 flashback ,用其中的更改前的数据, 回到2:30 的时刻的状态。
再利用 2:00 的 flashback ,用其中的更改前的数据, 回到2:00 的时刻的状态。
再利用 1:30 的 flashback ,用其中的更改前的数据, 回到1:30 的时刻的状态。
再利用 1:00 的 flashback ,用其中的更改前的数据, 回到1:00 的时刻的状态。
然后,再利用 1:00 到 1:15 的archive log 内容,apply后达到 1:15 时刻的状态。
[Oracle维护工程师手记]为什么flashback 的时候既需要 flashback log ,又需要 archive log?的更多相关文章
- [Oracle维护工程师手记]Data Guard Broker中改属性是否需要两侧分别执行?
Data Guard Broker中改属性是否需要两侧分别执行? Data Guard Broker有一些属性,可以通过 show configuration 看到.我有时会想,这些个属性,是否是分别 ...
- [Oracle维护工程师手记]一次升级后运行变慢的分析
客户报告,当他从 Oracle 11.1.0.7 ,迁移到云环境,并且升级到12.1.0.2.运行客户的应用程序测试,发现比以前更慢了. 从AWR report 的"Top 10 Foreg ...
- [Oracle维护工程师手记]两表结合的MVIEW的告诉刷新
对两表结合查询建立MVIEW,进行MVIEW的的高速刷新失败,如何处理? 例如: SQL> drop user u1 cascade; User dropped. SQL> grant d ...
- [Oracle运维工程师手记] 如何从trace 文件,判断是否执行了并行
[Oracle运维工程师手记系列]如何从trace 文件,判断是否执行了并行 客户说,明明指定了并行的hint,OEM 却报说没有并行,并且提供了画面. 客户的SQL文长这样: INSERT/*+ p ...
- Oracle维护:每天的工作
Oracle维护:每天的工作 检查数据库状态 确认所有的INSTANCE状态以及listener状态正常,登陆到所有数据库或例程,检测ORACLE后台进程: $ ps –ef|grep ora $ l ...
- ORACLE DATAGURARD配置手记
经过多次实践,参阅网上N多文章……最后还是配不成,可能本人悟性太低,无法体会高手的笔记.最终还是在前辈的帮助下完成.特用最平实的手法记录下来,以便如吾辈菜鸟能 看得懂. 运行Data Guard的条件 ...
- Oracle 10g DataGuard手记之基础配置
DataGuard为企业数据的高可用性,数据安全以及灾难恢复提供支持,一般由一个primary db与几个物理或逻辑standby db组成一个DataGuard配置. 系统环境 操作系统为windo ...
- Oracle 11g的Redo Log和Archive Log的分析方法
自Oracle 11g起,无需设置UTL_FILE_DIR就可以使用LOGMNR对本地数据库的日志进行分析,以下是使用LOGMNR的DICT_FROM_ONLINE_CATALOG分析REDO和归档日 ...
- oracle维护服务 oracle解决方案 oracle售后服务
为客户提供的oracle 金牌技术服务内容为: 1.电话服务 (7*24) 热线支持电话800-810-0081 每周7天,每天24小时北京技术支持中心每天都有专人值守.以保证及时与客 ...
随机推荐
- Mybatis源码解析 - mapper代理对象的生成,你有想过吗
前言 开心一刻 本人幼教老师,冬天戴帽子进教室,被小朋友看到,这时候,有个小家伙对我说:老师你的帽子太丑,赶紧摘了吧.我逗他:那你好好学习,以后给老师买个漂亮的?这孩子想都没想立刻回答:等我赚钱了,带 ...
- mysql数据插入前判断是否存在
今天在对一些抓取到的数据做插入的时候,因为使用了定时器,每间隔几分钟会抓取一次,导致很多数据插入的是重复数据,为了解决这个问题, 一般是在插入之前先通过一个标识去查询表数据看是否已经有了,没有再执行插 ...
- Linux之数据库操作
一.mysql基本操作 ,连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.56 ,授予远程连接的权限 grant ...
- 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了如何使用Dapper持久化IdentityServer4(以下简称ids4)的信息,并实现了sqlserver和mysql两种 ...
- Redis in python
什么是Redis 数据库类型分为两种,关系型和非关系型,Redis是一个非常重要的非关系型数据库. 既然是数据库,就是存储数据的一个空间,或者说是一个软件,非关系就是不再按照一对一多对多等结构进行外键 ...
- [转]gitlab cicd (二)系列之安装git-runner rpm安装方式
本文转自:https://blog.csdn.net/qq_21816375/article/details/84308748 本编是继gitlab cicd (一)系列之安装gitlb之后,基于安装 ...
- Java开发笔记(五十)几种开放性修饰符
前面介绍子类继承父类的时候,提到了public(公共)和private(私有)两个修饰符,其中public表示它所修饰的实体是允许外部访问的:而private表示它所修饰的实体不允许外部访问,只能在当 ...
- SpringBoot 整合 apollo
简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...
- select2 下拉无法显示
.select2-container--open{ z-index: 99999;}
- js知识点总结
组成 ECMAscript 基础语法 变量 数据类型 运算符 数组 函数 对象BOM 浏览器对象模型 window对象(获取浏览器宽高) history对象 locat ...