首页 > 数据库 >oracle学习笔记(10)——逻辑存储结构——段

oracle学习笔记(10)——逻辑存储结构——段

时间:2023-08-27 11:01:19浏览次数:40  
标签:10 回滚 数据库 事务 笔记 Oracle 回退 回滚段 oracle


段是由一个或多个扩展区组成的逻辑存储单元,数据库模式对象在逻辑上是以段来占据表空间的大小,段代表特定数据类型的数据存储结构。

1、  段的类型

        段分为:数据段、索引段、临时段、回滚段

        1)数据段

              数据段用来存储表或簇的数据,可以细分为表数据段、索引表数据段、分区表数据段及簇数据段四种。

       2)索引段

             用来存放索引信息,主要包括存储ROWID和索引键。索引段与其相应的表段经常会被同时访问,为了减少硬盘访问的冲突,索引段与表段可以放到处于不同物理位置的表空间中。

       3)临时段

             当用户进行排序查询时,如果在指定的内存无法完成排序,Oracle将自动从用户默认的临时表空间中指派临时段进行排序。会话结束,数据将从临时段中自动删除。

       4)回滚段

             回滚段用于保存数据库的回滚信息,包含当前未提交事务所修改的数据的原始版本。一个事务只能使用一个回滚段存放它的回滚信息,但是一个回滚段可以存放多个事务的回滚信息。回滚段可以动态创建和撤销。

2、  回滚段(UndoSegment)

(1)回滚段的工作方式

          回滚段采用循环写的方式进行写入。当回滚段中最后一个区写满时,Oracle将覆盖写入回滚段的第一个区,如果此时第一个区保存得回滚条目所对应的事务依然处于活动状态(事务未提交),则此时该区不能被覆盖,Oracle将为回滚段分配一个新的区。

          一个回滚段至少需要两个区。一个事务可以占用回滚段中的多个区,同一个区也能够存放多个事务的数据

(2)回滚段的作用

          1)事务回滚

                当启动一个事务时,Oracle把一个回滚段指定给该事务。当事务修改数据时,该数据修改前的信息会保存在该回滚段中,当用户执行事务回滚操作时(ROLLBACK),Oracle会利用保存在回滚段中的数据将修改的数据恢复到原来的值。

          2)数据库恢复

当数据库实例运行失败时,在数据库恢复时,Oracle先利用重做日志文件中的信息对数据文件进行恢复(包括提交事务和未提交事务的恢复),然后利用回滚段中的信息回滚未提交事务对数据的修改。

          3)数据的读一致性

                当一个用户对数据库进行修改,但还没有提交时,系统将用户修改的数据的原始信息保存在回滚段中,这样就可以为正在访问相同数据的其他用户提供一份该数据的原始视图,从而保证当前用户未提交的修改其他用户无法看到,保证了数据的读一致性。

         4)闪回查询

               闪回查询技术是Oracle 10g引入的新特性,利用该技术可以查询某个表过去某个时间点的状态。

(3)回滚段的种类

        1)系统回退段

              创建数据库时Oracle系统自动在SYSTEM表空间中创建一个“SYSTEM”系统回退段。该回退段只用于系统事务的回退处理,保存系统表空间中对象的前影像。

        2)非系统回退段

              用户可以创建非SYSTEM回退段,用于用户事务的回退处理,保存非系统表空间中对象的前影像。非系统回退段又分为私有回退段和公有回退段,其中私有回退段只能被一个实例使用,其数目和名称由ROLLBACK_SEGMENTS参数决定;公有回退段可以被多个实例共享使用,其数目由TRANSACTIONS和TRANSACTION_PER_ROLLBACK_SEGMENT决定。

(4)回滚段的管理

      1)自动撤销(回滚)管理

            如果将初始化参数UNDO_MANAGEMENT设置为AUTO,则启动自动撤销管理方式。DBA不需要为数据库创建多个回滚段,也不需要管理回滚段的使用,只需要为数据库创建撤销表空间,并将UNDO_TABLESPACE参数设置为创建的撤销表空间。这样,数据库运行时的回滚信息就由撤销表空间自动管理。

      2)手动撤销(回滚)管理

            如果将数据库初始化参数UNDO_MANAGEMENT设置为MANUAL,则需要手动进行撤销管理,即需要DBA以手动方式对回滚段进行管理。手动撤销管理增加了DBA的管理负担,正逐渐被Oracle淘汰。

(5)回滚段的查询

 DBA_ROLLBACK_SEGS:包含所有回滚段信息,包括回滚段的名称、所属表空间;

 DBA_SEGMENTS:包含数据库中所有段的信息;

 V$ROLLNAME:包含所有联机回滚段的名称;

 V$ROLLSTAT:包含回滚段的性能统计信息;

 V$UNDOSTAT:包含撤销表空间的性能统计信息;

 V$TRANSACTION:包含事务所使用的回滚段的信息。



标签:10,回滚,数据库,事务,笔记,Oracle,回退,回滚段,oracle
From: https://blog.51cto.com/u_5173797/7251479

相关文章

  • oracle学习笔记(14)——安全管理
        数据库的安全性主要包括两个方面的含义:一方面是防止非法用户对数据库的访问,未授权的用户不能登录数据库;另一方面是每个数据库用户都有不同的操作权限,只能进行自己权限范围内的操作。Oracle数据库的安全可以分为两类:    1)系统安全性       系统安全......
  • oracle学习笔记(12)——数据库服务器工作模式与数据字典
    1、 专用服务器工作模式    1)概念:       专用服务器模式是指Oracle为每个用户进程启动一个专门的服务器进程,该服务器进程仅为该用户进程提供服务,直到用户进程断开连接时,对应的服务器进程才终止。    2)特点:       服务器进程与客户进......
  • 最完美WIN10_Pro_22H2.19045.3393软件选装纯净特别版VIP52.0
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN10_PRO_22H2.19045.3393。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为19045.3393。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • Horizon学习笔记
    Horizon吊炸天!之前,一直认为horizon只不过是一个面板,没啥好研究的,而且我对django又不是很熟,一直懒的看horizon,今晚硬着头皮看了下去,没想到,越看越有劲,眼睛差点跟不上我的思路了!我觉得horizon牛不在对django的运用,而是对事物高度的抽象能力:D程序的入口点在horizon/openstack_dashboar......
  • windows10下SQL Prompt安装图文教程
    一、下载安装官网或者教程:www.red-gate.comvs可以去插件库       二、激活失效激活失效:方法1:在本地hosts加入以下代码:127.0.0.1licensing.red-gate.com127.0.0.1www.red-gate.com127.0.0.1red-gate.com127.0.0.1productusage.red-gate.com127.0.......
  • ORACLE递归用法
     ......
  • NC20277 [SCOI2010]字符串
    题目链接题目题目描述lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能帮助他吗?输入描述输入数据是一......
  • 解决win10下ensp连接cloud死机问题
    应用版本:eNSPV100R003C00SPC100VirtualBox-5.2.30-130521-WinWinPcap_4_1_3Wireshark-win64-3.0.3问题现象:链接cloud后 不能ping通 抓包发现好多来自192.168.56.1到192.168.56.2的udp包,一会儿就卡死出现#######可能是虚拟网卡问题,所以创建窗户自带的换回网卡解决问题......
  • 104
    给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例1: 输入:root=[3,9,20,null,null,15,7]输出:3示例2:输入:root=[1,null,2]输出:2/***Definitionforabinarytreenode.*structTreeNod......
  • 『学习笔记』整除分块(数论分块)
    简述整除分块这个东西听起来不是很抽象,但是我理解起来的确有点抽象(可能因为我太菜了吧)。那就先放张图:其实就是颜色相同的点被分成了一块。如果序列总长度是\(n\),某一个区间左端点是\(l\),那么\(r=\lfloor\dfrac{n}{\lfloor\dfrac{n}{l}\rfloor}\rfloor\)。所以整除分......