第四章 ORACLE体系结构 (三) 还原段

本文深入探讨了Oracle数据库中的排他锁机制,解释了如何通过排他锁确保数据写操作的独占性,同时保持其他进程的读取能力。文章详细介绍了9i版本前后还原段(Undo Segment)的演变,包括其作用、类型及管理方式,并对比了回滚段的概念。此外,还介绍了创建还原表空间的方法和获取还原数据统计信息的途径。

 

数据库管理系统对库中的一行数据进行写操作时,需要将这行数据用排他锁锁上。除了正在进行操作的进程之外,其他的任何进程(用户)不能访问上了排他锁的数据行的。

 

当一个进程正在写某一行数据时,其他的进程可以读这行但是不能写操作。此时其他进程读的是写之前的数据。oracle通过在所有的dml操作之前将原来的数据复制到还原段(9i版本之前叫回滚段)上来实现这一功能的。从9i开始,管理还原数据可以手动,也可以由oracle服务器自动管理还原段的创建分配和优化。而9i之前只能手动。

 

回滚段:9i版本之前,还原段叫回滚段,不叫undo而是rollback。

还原段:解决了某一个进程写某行数据时,其他进程不能读的问题。但是当某个进程修改数据时候,先把原始值(还原数据)存入一个还原段中。一个事务只能将全部还原数据存放在同一个还原段中。但是多个并行的事务可以写一个还原段。每个还原段都有一个段头,在该段头中包含一个事务表,其中存放着有关使用这一还原段的当前事务的信息。

 

系统还原段system:仅为系统表空间中的对象变化所用。他是在数据库创建时在系统表空间中创建的。系统还原段既可以存在并工作在手动模式下。

非系统还原段non-system:包括自动和手动管理的还原段。手动管理的还原段分为私有和公有。

 

延迟还原段deferred:

 

两种方法可以创建还原表空间:

CREATE DATABASE 命令中加入一个子句,在创建数据库时建立还原表空间。

2.在已经创建数据库后,使用CREATE UNDOTABLESPACE 命令来建立还原表空间。

 

v$undostat 获取还原数据统计信息。 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值