Oracle Undo与脏读解析】的更多相关文章

Undo就是用来记录保存事务操作过程中的数据,如果事务发生错误,可以之前的数据进行填补. Undo segment 是保存在表空间上的.Undo 大小是固定的,既然是固定的也就是有限的.如果保存的记录非常多,那么它就会被占满,新记录的数据会覆盖掉最早的数据. 在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read).回滚事务(RollbackTransaction)以及实例恢复(Instance Recovery). 一致性读是相对于脏读(DirtyRead…
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也就是每次执行都需要进行硬解析.还有一类就是DML语句(数据操纵语言),他们会根据情况选择要么进行硬解析,要么进行软解析. DML:INSERT,UPDATE,DELETE,SELECT DDL:CREATE,DROP,ALTER 一.  SQL 解析过程 Oracle对此SQL将进行几个步骤的处理过…
                                                             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数据库字符集问题解析 经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下.第一次迭代:掌握字符集方面的基本概念.有些朋友可能会认为这是多此一举,但实际上正是由于对相关基本概念把握不清,才导致了诸多问题和疑问.首先是字符集的概念.我们知道,电子计算机最初是用来进行科学计算的(所以叫做“计算机”),但随着技术的发展,还需要计算机进行其它方面的应用处理.这就要求计算机不仅能处理数值,还能处理诸如文字.特殊符号等其它信息,而计算机本身能直接处理的只有数值信息,所以就要…
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要指定一个UNDO 表空间. 如果设为manual,系统启动后使用rollback segment方式存储undo信息.如果系统没有指定undo_management,那么系统默认以manual方式启动,即使设置了auto方式的参数,这些参数将被忽略. 当实例启动的时候,系统自动选择第一个有效的und…
Oracle sql执行计划解析 https://blog.csdn.net/xybelieve1990/article/details/50562963 Oracle优化器 Oracle的优化器共有3种模式:RULE (基于规则).COST(基于成本).CHOOSE(基于选择). 设置缺省的优化器的方法,是在启动参数文件中针对OPTIMIZER_ MODE参数的各种声明进行选择,如RULE.COST.CHOOSE.ALL_ ROWS.FIRST_ ROWS.当然也可以在SQL语句级别或是会话级…
Undo是干嘛用的?          简单理解,就相当于Windows下的回收站.        你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条ROLLBACK语句请求回滚,就可以利用这些undo信息将数据放回到修改前的样子.而redo用于在失败时重放事务(即恢复事务),undo则用于取消一条语句或一组语句的作用.                                     在介绍undo之前,先说一下另外一个东西 tr…
1.Undo是干嘛用的?   在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过). 一个很典型的列子,银行转账,其实其需要两步操作,第一步先将你账户上的钱减去,第二步把被转账户的钱加上,(先减后加,出了问题银行不吃亏.呵呵!)这样就是一个完整的事务.如果执行了一半,你的钱减了,被转账户的钱没加上,这个时候事务就要…
主要原因: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务. 2.database instance没有起起来.windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID. 3.注册表问题.regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\Orac…
包声明 create or replace package PKG_EXCEL_UTILS is -- Author: zkongbai-- Create at: 2016-07-06-- Action: 解析xmlType 类型的 Excel 数据--============================================================================================TYPE t_table_varchar IS TABLE O…
通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验规则使用java或c来实现,其实挺麻烦的.效率不高.主要是拓展性不好. 使用xmltyoe解析Excel数据,对于代码的改动非常的小.也许就是前端一点点东西.另外就是一个存储过程,这个存储过程是用来将解析校验合格后中间表的数据,插入到正式表,或者是修改正式表的数据.拓展性非常好.效率也高. 优点:…
yuanwen:http://blog.csdn.net/javacoffe/article/details/5578206 Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工具,并非Oracle专有.通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图.…
Oracle中每条sql在执行前都要解析,解析分为硬解析.软解析.软软解析. Oracle会缓存DML语句,相同的DML语句会进行软解析.但不会缓存DDL语句,所以DDL每次都做硬解析.硬解析是一个很耗时的操作,所以应用程序内部很少执行执行DDL.DDL一般在部署前执行. sql语句执行步骤: 1.语法检查(syntax check) 2.语义检查(symantic check): 对象是否存在,是否有权限. 3.sql解析(parse): 利用内部算法对sql进行解析,生成解析树及执行计划.…
一. 概述 undo 保存的是旧数据.比方,你改动了一条记录将A列abc改动为def,那么undo里面保存的就是abc.目的有两个:1. 假设你的事务没有提交,可是已经将A列改动,那么别人读取这条数据的时候.不应该可以看到你改动后的内容def.应该还仅仅能看到abc.这个时候就须要去读取undo.才干取到abc. 2. 假设你的事务后来失败,须要将A列由改动过的值def回退到之前的值abc,abc也要从undo里面去取. 这篇文章,简要介绍一下读一致性(也就是别人无法读取到你改动的未提交的内容)…
在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转 通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8 在上一篇文章中,我们介绍了undo表空间中区的3种状态:ACTIVE.EXPIRED.UNEXPIRED.在对其概念理解后,个人认为在未设置undo表空间retention guarantee的情况下,只要ACTIVE状态的区未达到100%,皆不会造成数据库hang住. 那么Toad中undotb…
在数据库服务器异常断电重启后,数据库会进行实例恢复,那么实例恢复的过程中Oracle做了什么操作呢?参考官网在这里做一下解释,菜鸟水平有限,欢迎勘正. 首先说下实例恢复的定义: Instance recovery is the process of applying records in the online redo log to data files to reconstruct changes made after the most recent checkpoint. Instance…
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的配置参数 undo_management值设置为MANUAL所以在启动数据库时没有报任何错误,但是给表插入数据时报错了,回滚段不可用的错误.然后查询了错误原因. 1 首先看数据库中undo信息 SQL> show parameter undo; NAME TYPE VALUE------------------------------------ ----------- ------------------------------und…
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: 过期数据, …
在前文中讲到了如何使用JSON标准库解析json串,参考: Oracle解析复杂json的方法(转) 现补充一篇使用GSON库在Oracle中解析复杂json的方法. GSON串的使用教程参考官方文档及 Gson使用一(Gson) Gson使用二(GsonBuilder) Gson使用三(集合的处理,一对多处理) Gson使用四(TypeAdapter) 这一系列教程挺不错的,不过都使用了JavaBean,个人没有在Oracle里面直接使用JavaBean,GSON库提供了丰富的JsonElem…
Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工具,并非Oracle专有.通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图.比如下图所示,是一个以关学生化学考试成绩分数分布情况绘制的直方图:              二.       Oracle中…
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…
1. REDO(重做信息) Redo log file(重做日志文件),是数据库的事务日志. Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件,这两类重做日志文件用于实例失败或是介质失败时数据的恢复: 如果数据库所在主机突然断电导致实例失败,则Oracle会使用在线重做日志将系统恰好恢复到掉电之前的时间点: 如果硬盘出现故障(即介质失败),Oracle会使用归档重做日志和在线重做日志将硬盘上的数据恢复到适当的时间点: 另外如果你无意地上除…
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 ---------- ---------- --------- ----------…
1.Excel导出,此处没有给出 2.错误原因在中间表,T_EXCEL_IMPORT_GENERATION,其中errormsg不为空的数据 3,中间表入库过程: 需要自己实现,为一个存储过程,存储过程的名字在规则表中会生成,(p+业务类型+sheet数),存储过程的参数为Excel数据原始数据的id 4,有些规则比较复杂,比如,Excel数据中的楼宇NAME,需要找到楼宇ID,并且判断这个NAME是否存在,如果存在,才导入该楼宇中的其他数据 5.导入通常是根据组织进行导入的 6,插入正式表如果…
表说明: T_EXCEL_IMPORT_DATASRC: Excel数据存储表,(使用了xmltype存储Excel数据) 部分字段说明: BUSINESSTYPE: Excel模板类型,一个Excel一个模板类型(非空) EXPANDTYPE: 拓展类型,用于存储一些有用的业务数据,比如组织organ,用于等等.组织通常用来过滤展示数据的 XMLDATA: Excel数据 BUSINESSTYPE_sheet: 某一个Excel文件的第几个Sheet T_EXCEL_IMPORT_GENERA…