Oracle Undo 和 Redo】的更多相关文章

1. REDO(重做信息) Redo log file(重做日志文件),是数据库的事务日志. Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件,这两类重做日志文件用于实例失败或是介质失败时数据的恢复: 如果数据库所在主机突然断电导致实例失败,则Oracle会使用在线重做日志将系统恰好恢复到掉电之前的时间点: 如果硬盘出现故障(即介质失败),Oracle会使用归档重做日志和在线重做日志将硬盘上的数据恢复到适当的时间点: 另外如果你无意地上除…
Undo是干嘛用的?          简单理解,就相当于Windows下的回收站.        你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条ROLLBACK语句请求回滚,就可以利用这些undo信息将数据放回到修改前的样子.而redo用于在失败时重放事务(即恢复事务),undo则用于取消一条语句或一组语句的作用.                                     在介绍undo之前,先说一下另外一个东西 tr…
一 为了更清楚的看出2者差别,请看下表:                                               UNDO                                                                   REDO Record of How to undo a change How to reproduce a change Used for Rollback, Read-Consistency Rolling forwar…
1.Undo是干嘛用的?   在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过). 一个很典型的列子,银行转账,其实其需要两步操作,第一步先将你账户上的钱减去,第二步把被转账户的钱加上,(先减后加,出了问题银行不吃亏.呵呵!)这样就是一个完整的事务.如果执行了一半,你的钱减了,被转账户的钱没加上,这个时候事务就要…
                                                             Oracle undo 镜像数据探究  今天是2013-08-18,隔别一周的网络终于可以上网了.幸福啊.  我们都知道,undo是为了保证一致性读的,也就是说你在对更改的数据但是没有提交,那么其他session是无法查看到你更改的内容的,如果对方  进行读取数据,依然是之前的数据,undo就是保存了数据的前镜像.看完我写的这篇文章之后,你就知道undo是怎么保存前镜像的以及…
<Oracle undo我们需要掌握什么> 引言:undo 是Oracle数据库的重要组件,刚入门的朋友建议要把undo的原理和机制理解明白,尤其是和redo组件的区别和联系.了解undo就相当于对oracle恢复有了一半的理解.下面我们开始学习Oracle undo需要掌握什么! 更多的精彩文章请垂询 www.leonarding.com blog,欢迎大家来探讨交流 “分享技术~成就梦想” 一 大话UNDO       Hi 大家好,我是Oracle 的无敌小安[中文名(small und…
什么是重做? 重做日志包含所有数据产生的历史改变记录. 重做日志目的是保证数据的安全,如果数据因特殊原因没有写到磁盘上,可以通过重做日志来恢复. 重做日志文件通常用于 恢复(实例恢复和介质恢复) 日志挖掘:可以通过oracle工具分析日志里面的内容 流:通过分析redo,从redo获取实时数据,应用到远程数据库. 数据库产生的每个改动: 写入数据库缓存之前,先写入重做日志--内存 写入数据文件之前先写入日志文件 ----数据文件 内存里操作,重做日志的内存区叫Redo buffer 当提交后,日…
Oracle logminer 分析redo log Oracle 11g r2 RAC centos 6.5 设置时间格式 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') date_format from dual ; 查看数据库是否开启补全日志功能 select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, SUPPLEMENTAL_…
在Data Guard环境中,Standby Redo Log是一个比较特殊的日志类型.从最新的DG安装指导中,都推荐在Primary和Standby端,都配置Standby Redo Log. 简单的说,Standby Redo Log就是在Standby端应用传递Redo Log过程中,逐步执行的online redo log.Standby端虽然也有online redo log,但是在redo apply应用的过程中,是不使用online redo log的.即使是11g Active…
这次实验主要是实现多次redo和undo,即程序的撤回和恢复,这里只实现加法的撤回和恢复. 程序的撤回和恢复就是由所使用的软件来记录操作步骤,可以将数据恢复到某个操作状态. 撤回这个指令很常见,Windows系统常用的快捷键ctrl+z就可以实现撤回的效果 恢复目前只在word等文档编辑软件见到. 首先说一下命令模式的结构(参考该类图,使用starUML制作): Adder类是加法的计算和返回计算后的结果, AbstrCommand是抽象类,定义三个抽象方法,AddCommand类继承Abstr…
1.Visio默认Undo和Redo操作是可用的,Appliacation中的UndoEnabled标志Undo和Redo操作是否可用. m_Visio.Window.Application.UndoEnabled = True 当 Microsoft Visio 启动时,UndoEnabled 属性的值为 True.将 UndoEnabled 属性的值设置为 False 会停止在内存中收集撤消信息,并清除现有的撤消信息. 2.Visio中启动事务,结束事务 Dim vsoTextShape A…
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要指定一个UNDO 表空间. 如果设为manual,系统启动后使用rollback segment方式存储undo信息.如果系统没有指定undo_management,那么系统默认以manual方式启动,即使设置了auto方式的参数,这些参数将被忽略. 当实例启动的时候,系统自动选择第一个有效的und…
不知不觉又到了周末,又到了Fly写文章的日子,今天给大家介绍下一个web中很常见的功能, 就是撤销和复原这样一个功能,对于任何一个画图软件,或者是建模软件.没有撤销和复原.这不是傻了对啊吧,所以本篇文章,可以说是基于上一篇文章Canvas 事件系统的下集,如果你没有看过,建议看完再去看这一篇文章.读完本篇文章你可以学习到什么?? 给canvas 绑定键盘事件 实现undo 和 redo 批量回退 2d包围盒算法 局部渲染 绑定键盘事件 tabindex 很多人说绑定键盘事件,有什么好讲的.对虽然…
undo和redo的区别: undo一般用于事务的取消与回滚,记录的是数据修改前的值: redo一般用于恢复已确认但未写入数据库的数据,记录的是数据修改后的值.…
1.undo:回滚未提交的事务.未提交前,内存不够用时,DBWR将脏数据写入数据文件中,以腾出内存空间. 这就是undo存在的原因. redo:恢复所有已提交的事务 2.实例失败(如主机掉电)可能出现的情况: (1)已提交的事务只写到了online redo log,但没有写到数据文件中.(commit时,oracle先调用LGWR,再调用DBWR) (2)没提交的数据写到了数据文件中.(内存不够用) 3.实例恢复的两个阶段 (1)rolling forward (Cache Recovery)…
一. 概述 undo 保存的是旧数据.比方,你改动了一条记录将A列abc改动为def,那么undo里面保存的就是abc.目的有两个:1. 假设你的事务没有提交,可是已经将A列改动,那么别人读取这条数据的时候.不应该可以看到你改动后的内容def.应该还仅仅能看到abc.这个时候就须要去读取undo.才干取到abc. 2. 假设你的事务后来失败,须要将A列由改动过的值def回退到之前的值abc,abc也要从undo里面去取. 这篇文章,简要介绍一下读一致性(也就是别人无法读取到你改动的未提交的内容)…
由于某次不小心操作,在切换表空间时没有成功,由于把undo的配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给表插入数据时报错了,回滚段不可用的错误.然后查询了错误原因. 1 首先看数据库中undo信息 SQL> show parameter undo; NAME TYPE VALUE------------------------------------ ----------- ------------------------------und…
Table Space Query select SEGMENT_NAME,bytes/1024/1024,a.* from dba_segments a UNDO Table Space Size Full 数据库重启SQL> shutdown abortORACLE 例程已经关闭. SQL> quit从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - ProductionWith the Partitioning, O…
过程:开始一个事务--通过事务信息找到UNDO块头的所在的段名及数据文件号等--转储UNDO header--在事务表中对应槽位找到前镜像dba--转储数据块--找到对应记录得到bdba--转储数据块 1)首先更新几条数据,但是不进行commit如下: SYS@ prod>select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----------…
背景:搭建了一套oracle 19c主备库(单实例非CDB,PDB),linux7.5在断电后(没有进行数据库关闭)重启数据库报错如下图,redo当前状态下进行不完全恢复主库后resetlogs 打开主库报错继续报错ORA-00600: internal error code, arguments: [4193], [227], [240], 这个相当于两个问题了,先是恢复主库,再解决ORA-00600: [4193]的问题.这种问题我不止遇见过一次了,多次的,断电后启动实例会报错.处理如下:…
自Oracle 11g起,无需设置UTL_FILE_DIR就可以使用LOGMNR对本地数据库的日志进行分析,以下是使用LOGMNR的DICT_FROM_ONLINE_CATALOG分析REDO和归档日志的步骤 分析REDO日志的实验 创建测试表,并做DML操作. SQL> create table t_test(id number,name varchar2(15)); Table created. SQL> insert into t_test values(1,'stream'); 1 r…
Undo就是用来记录保存事务操作过程中的数据,如果事务发生错误,可以之前的数据进行填补. Undo segment 是保存在表空间上的.Undo 大小是固定的,既然是固定的也就是有限的.如果保存的记录非常多,那么它就会被占满,新记录的数据会覆盖掉最早的数据. 在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read).回滚事务(RollbackTransaction)以及实例恢复(Instance Recovery). 一致性读是相对于脏读(DirtyRead…
实现文本框输入内容的单条记录撤销,重做,通过按钮实现 以及通过JList的多条撤销.重做操作(类似PS) 昨天还在为自己写不出代码怎么办而伤心,没想到今天上午就实现了,并且还完善了功能: 可以在撤销一些操作后,继续编辑文本框,同时给Jlist添加渲染. 代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package UndoText; im…
在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转 通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8 在上一篇文章中,我们介绍了undo表空间中区的3种状态:ACTIVE.EXPIRED.UNEXPIRED.在对其概念理解后,个人认为在未设置undo表空间retention guarantee的情况下,只要ACTIVE状态的区未达到100%,皆不会造成数据库hang住. 那么Toad中undotb…
Oracle 10gr2的后续版本中添加了UNDO信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:1. 当UNDO TABLESPACE为 fixed- size,Oracle将根据表空间的大小和历史使用情况,自动调整undo信息保存时间,同时忽略 undo_retention的值,除非 undo_retention的guarantee 特性被启用.2. 当UNDO TABLESPACE为AUM时,Oracle将动态调整撤销信息最短保留时间为…
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DML操作的前镜像数据,它是实例恢复,数据回滚,一致性查询功能的重要组件:我们常常会忽略对它的监控,这会导致UNDO表空间可能出现以下问题:1).空间使用率100%,导致DML操作无法进行.2).告警日志中出现大量的ORA-01555告警错误.3).实例恢复失败,数据库无法正常打开. 一.对Oracle…
UNDO 数据操纵 数据操纵语言(DML)由以下SQL语句组成: INSERT,DELETE,UPDATE,MERGE DML始终作为事务处理的一部分执行,它可以: 使用Rollback命令执行回退 使用Commit命令执行提交 还原数据 还原数据是: 原始的.修改之前的数据副本 是针对更改数据的每个事物处理所捕获的 至少保留到事物处理结束 用于支持: -回退操作 -读取一致性查询 -闪回查询.闪回事物处理和闪回表 -从失败的事物处理中进行恢复 每个事物处理只分配给一个还原段 一个还原段可以同时…
查询undo表空间状态 "Bytes(M)" FROM dba_undo_extents GROUP BY tablespace_name, status; Undo表空间的状态(STATUS)有三种取值------- ACTIVE, EXPIRED, UNEXPIRED,  他们的含义是: ACTIVE:  正在使用的undo表空间区域, 例如: 正在执行的没有commit的dml涉及的数据所占用的区域.   状态为ACTIVE的区域不可以被新数据覆盖 EXPIRED: 过期数据, …
redhat:清空回收站 rm -rf  /home/登录用户名/.Trash 例子:rm -rf /home/.Trash-root df命令可以显示目前所有文件系统的可用空间及使用情形: 例子:df -h du:查询文件或文件夹的磁盘使用空间 例子:du -h --max-depth=1 /home/oracle/oracle/product/10.2.0/db_1/oradata/ du -sh /home/oracle/oracle/product/10.2.0/db_1/oradata…
使用该脚本可收集与undo相关的信息,在undo表空间出问题时可使用该脚本来诊断. 使用方法: 1.将脚本拷贝到服务器,创建文件保存,文件名可随意取,例如:diag.out 2.以sys用户登录数据库,执行脚本.执行方式为: SQL> @diag.out spool Undo_Diag.out ttitle off set verify off set termout off set trimout on set trimspool on REM REM --------------------…