随笔分类 -  oracle

UNDO内存结构剖析
摘要:UNDO内存结构剖析 一、场景 Oracle的 C事物从早上9:00开始读取A表全部10w行数据,这个而读取需要经历5分钟。在9:01的时候,B事物将A表删除100条记录,那么,当9:05的时候,事物C读取完成,能读取到多少条记录? 其实,按照一致性原则,需要读取10w行记录,而不是9900行。这个 阅读全文
posted @ 2016-11-16 14:32 罗武 阅读(962) 评论(0) 推荐(0)
事物深度解析
摘要:事物深度解析 一、部分概念及理论 1、快速提交 Oracle数据库事物信息会分布在: (1)undo段头块事务表。 (2)数据块事物槽。 (3)数据块中的数据行。每更新修改一条数据,都会在行头部写入事物信息。 如果数据库事物提交,则需要更新各个角落的事物信息,造成提交缓慢。目前,oracle采用快速 阅读全文
posted @ 2016-11-15 14:32 罗武 阅读(349) 评论(0) 推荐(0)
UNDO
摘要:UNDO及事物 undo表空间是Oracle独有,在oracle开启一个事物之后,oracle对数据进行修改,同时,会把修改前的数据保存到UNDO表空间的UNDO段里。undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值。在r 阅读全文
posted @ 2016-11-14 17:34 罗武 阅读(2057) 评论(0) 推荐(0)
SCN
摘要:SCN 一、SCN的引入 众所周知,当oracle实例崩溃时,oracle通过检查点队列使用CKPT进程,周期性的将LRBA记入控制文件,以记录读取REDO LOG的范围。确定范围之后,oracle首先进行前滚(将redo log中的数据块重新构造成buffer),然后回滚(将不需要进行构造的未提交 阅读全文
posted @ 2016-11-14 12:58 罗武 阅读(624) 评论(0) 推荐(0)
检查点队列
摘要:检查点队列 Oracle实例崩溃,恢复呢?Oracle数据库提交了的数据块,只是保证了已经保存到了Redo buffer中。如果oracle数据库崩溃了,需要前滚数据库日志来重构buffer cache中的脏块,从而保证已提交的事物不会丢失。前滚哪些数据文件呢?起点和终点分别在哪里? ORACLE 阅读全文
posted @ 2016-11-11 17:01 罗武 阅读(461) 评论(0) 推荐(0)
Log Buffer
摘要:Log Buffer 一、Log Buffer的引入 Oracle有一个原则:只要是已经提交的数据,就不会丢失,保证数据库的一致性。这该如何实现?事物提交时,直接写入dbf中,效率是极低的。因为直接写入文件系统,buffer对应的数据块可能分布在文件系统的各个地方,提交时直接写入,会有大量的IO和寻 阅读全文
posted @ 2016-11-10 16:22 罗武 阅读(1911) 评论(0) 推荐(0)
Buffer Cache
摘要:Buffer Cache Buffer Cache是SGA区中专门用于存放从数据文件中读取的的数据块拷贝的区域。Oracle进程如果发现需要访问的数据块已经在buffer cache中,就直接读写内存中的相应区域,而无需读取数据文件,从而大大提高性能(内存的读取效率是磁盘读取效率的14000倍)。B 阅读全文
posted @ 2016-11-10 11:05 罗武 阅读(1069) 评论(0) 推荐(1)
Shared pool
摘要:Shared pool 一、Shared pool的引入 当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程: 1、语法检查(syntax check) 检查此sql的拼写是否语法。2、语义检查(semantic check) 诸如检查sql语 阅读全文
posted @ 2016-11-09 15:17 罗武 阅读(678) 评论(0) 推荐(0)
ORACLE 体系结构
摘要:Oracle体系结构如图: 一般情况下是一个实例instance和一个database组成。实际生产很多实用到RAC技术,就是一个数据库对应多个实例。 Oracle实例:实例是指操作系统中一系列的进程和进程所分配的内存块。通俗的说,实例是访问数据库文件的通道。 数据库是通过数据库实例来访问的,数据库 阅读全文
posted @ 2016-11-08 12:48 罗武 阅读(1735) 评论(0) 推荐(0)
数据库dump导入
摘要:数据库dump导入 一、导入命令介绍: Oracle dump数据导入导出有两种方式:imp/exp、impdp/expdp。两者区别: 1、exp/imp客户端程序,受网络,磁盘的影响;impdp/expdp服务器端程序,只受磁盘的影响。 2、exp常规方式是使用SELECT的方式查询数据库中的数 阅读全文
posted @ 2016-11-08 12:46 罗武 阅读(5253) 评论(0) 推荐(0)
ORACLE数据库存储结构
摘要:一、数据块 Oracle对数据库数据文件中的存储空间进行管理的单位是数据块。数据块是数据库中最小的(逻辑)数据单位,是最小的I/O单位。与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节。每种操作系统都有一个被称为块容量的参数。Oracle每次获取数据时,总是访问整个数据块,而不是按照操作 阅读全文
posted @ 2016-06-29 10:58 罗武 阅读(1091) 评论(0) 推荐(0)