事务的相关知识

用户会话只是用户到数据库的一个连接,而用户对数据库的操作则是通过会话中的一个个事务来进行的。对事务的管理不仅仅是DBA的任务,每个发布事务的用户也能够对自已的事务进行管理。

事务的开始:
Oracle中的事务由遇到的第一条可执行SQL语句开始。
DDL (Data Definition Language)
DML(Data Manipulation Language )    

事务的结束:
·用户执行commit或rollback语句
·用户执行一条DDL语句,比如create,drop,rename,alter。如果当前事务中包含有已经执行的DML语句,Oracle首先提交事务,然后再将DDL语句作为一个新的只包含一条语句的事务执行并提交。
·用户主动断开到oracle的连接。
·用户进程意外中止。

提交事务前完成的工作:
·在SGA区的回退缓存中生成该事务的回退条目。在回退条目中保存有该事务所修改的数据的原始版本。
·在SGA区的重做日志缓存中生成该事务的重做记录。重做记录中记载了该事务对数据块所进行的修改,并且还记载了对回退段中的数据块所进行的修改。缓存中的重做记录有可能在事务提交之前就写入硬盘中。
·在SGA区的数据库缓丰中记录了事务对数据库所进行的修改。这些修改也有可能在事务提交之前就写入硬盘中。

提交事务时完成的工作:
·在为该事务指定的回退段中的内部事务表内记录下这个事务已经被提交,并且生成一个惟一的SCN记录在内部事务表中,用于惟一标识这个事务。
·LGWR后进进程将SGA区重做日志缓存中的重做记录写入联机重做日志文件。在写入重做日志的同时还将写入该事务的SCN。
·Oracle服务进程释放事务所使用的所有记录锁与表锁。
·Oracle通知用户事务提交完成。
·Oracle将该事务标记为已完成。

回退事务完成的工作:
·Oracle通过使用回退段中的回退条目,撤销事务中所有SQL语句对数据库所做的修改。
·Oracle服务进程释放事务所使用的所有锁
·Oracle通知事务回退成功。
·Oracle将该事务标记为已完成

事务的隔离等级:
(servers=dedicated)
set transaction isolation level read committed
set transaction isolation level serializable
set transaction read only
set transaction read write

alter session set isolation_level=serializable
alter session set isolation_level=read commited

读一致性的工作机制:
设定查询语句的SCN:10023
该查询语句在搜索所需要的数据块时,
如果所需数据块的SCN<=10023,则读取。
如果所需数据块的SCN>10023,查询语句将从回退段中获取对应的数据块的原始版本(原始版本的SCN同样要<=10023)
这样,通过对数据块的SCN进行比较,查询语句将只返回在它开始执行之前已经提交的数据,保证了不会读取到未提交事务所修改的脏数据块,也不会读取到语句开始执行后再提交的数据块。

定义私有回退段
set transaction use rollback segment XXX

时间: 2024-12-01 14:03:03

事务的相关知识的相关文章

简述SQL Server 2005数据库镜像相关知识_mssql2005

SQL Server 数据库中,数据库镜像是用于提高数据库可用性的主要软件解决方案.数据库镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.简单恢复模式和大容量日志恢复模式不支持数据库镜像,数据库镜像不能镜像master.msdb.tempdb 或 model 数据库.本文我们主要就介绍一下数据库镜像的相关知识,接在来就让我们来一起了解一下吧! 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的SQL Server 数据库引擎实例(服务器实例)上.通常,这些服务器实例驻留

关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料

问题描述 关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料 解决方案 我只想说 数据分析 不应该用MATLAB更方便吗? 解决方案二: http://wenku.baidu.com/link?url=ZAScYogajXHrTTRa5xjpUPtS7OQQXZ_LfXaWNkczTtWf2MJgx0RZFUuca4iRGUcPwtr4Um4AJObpWKl8dg5WS6fZdx6lfoES8JYcsJtcdgi 解决方案三: 数值分析各种算法C语言数值分

求射频、IC相关知识解析

问题描述 求射频.IC相关知识解析 什么是射频? 射频的频率范围是什么? 射频与无线,wlan,WiFi,蓝牙关系是什么? 移动通信用的都是射频么?手机的GSM,CDMA等也是用的射频技术么? IC/ID 卡用的射频技术么?卡中的线圈是什么作用?有源IC卡有线圈么,它是怎样应用射频技术达到的? 另外射频技术除射频识别外还有哪些方面的应用? 解决方案 这个问题建议你将问题一个一个的去 Google 等查找一下,都会有答案的.

讲解Python中面向对象编程的相关知识

  这篇文章主要介绍了深入讲解Python中面向对象编程的相关知识,是Python入门学习中的基础知识,需要的朋友可以参考下 Python从第一天开始就是面向对象的语言.正因为如此,创建和使用类和对象是非常地容易.本章将帮助您在使用Python面向对象编程的技术方面所有提高. 如果没有任何以往面向对象(OO)的编程的经验,那么可能要了解一些基本的入门课程就可以了,或者至少某种形式的教程,让你有了解基本概念. 但是,这里会比较少地介绍面向对象编程(OOP): OOP术语概述 类: 用户定义的原型对

repaint和reflow的相关知识

文章简介:页面重构应注意的repaint和reflow. 最近了解了下repaint和reflow的相关知识,觉得在页面重构过程中就应该考虑前端开发(js)人员对dom进行操作,能够减轻客户浏览器的鸭梨.在这里整理了一下相关资料,推荐看帖子底部的文章,如果觉得排版不够好请移步我的博客围观.这是一个讨论帖,抛砖引玉,大家说说自己工作中的经验~ 1. 什么是 repaint 和 reflow? 一个页面由两部分组成:DOM:描述该页面的结构render:描述 DOM 节点 (nodes) 在页面上如

小技巧:打印样式的相关知识

打印|技巧 今天有个朋友问我关于打印样式的问题,当时正是工作时间一时不好回答,只好在工作完成后整理,总结一下打印样式的相关知识. 先来了解一下什么叫打印样式?打印样式也就是说通过CSS指定给打印机来识别的打印时的输出样式.在HTML中链接的打印样式是:<link rel="stylesheet" rev="stylesheet" type="text/css" media="print" href="css/p

非窗口类中使用定时器的方法及相关知识的介绍

本文代码运行效果图如下: 摘 要:本文主要通过一些简单的例子,介绍了如何在Visual C++的窗口和非窗口类中使用定时器.重点介绍了如何用静态成员函数和静态数据成员在非窗口类中使用定时器,同时,又介绍了与定时器相关的知识,例如回调函数,C++类中的静态成员,以及模板类中的映射类等. 关键字 C++ 类 定时器 静态函数 静态成员函数 静态数据成员 回调函数 映射类 摘 要:This page introduce how to use timer in window class and none

计算机网络与路由器故障诊断的相关知识

路由器故障诊断是一门综合性技术,涉及网络技术的各个面.下面,我们就来简单回顾一下网络和路由器的基本概念. 一.计算机网络 计算机网络的发展,导致网络之间各种形式的连接.计算机网络按其计算机分布范围通常被分为局域网和广域网.广域网覆盖地理范围较大,如校园.城市之间.乃至全球;局域网覆盖地理范围较小,一般在数米到数十公里之间. 计算机网络是由计算机集合加通信设施组成的系统,即利用各种通信手段,把地理上分散的计算机连在一起,达到相互通信而且共享软件.硬件和数据等资源的系统. 二.因特网 采用统一协议实

Go语言中的Interface相关知识

一件作品的诞生,通常是一个设计师独立完成的.因为这样,一件建筑也好,画作或者音乐舞蹈也好,才能真实反映出 其个性.而正是这种不同于其他同类的独特一面,正是这种发自创造者的灵光一现.但又不会背离创作目的和原始架构的新 颖实用之处,才使得创新尤为难得. Go语言的诞生,是三个有很强个性的设计师共同完成的.Go语言的定位,就象 三维坐标系中的一个点,在强类型.动态和并发这三个特性维度上,分别代表了Ken.Robert和Rob三人的创造思维的投影. 当然,这样描述不仅是为了表达Go语言有这三个特性,也是