oracle学习笔记还原段undo

OCP学习之:UNDO管理 UNDO段是用于存储还原数据的特殊段,在发生实例故障的时候,UNDO段用来对数据进行恢复。本章内容包括介绍UNDO段的工作原理,并进行自动和手工的UNDO段的管理。 阅读详情

oracle数据库管理从入门到精通——何明著

Oracle学习笔记,原书摘抄重点加上自己实验内容

1.什么是还原段

当某个进程修改数据时,oracle首先将它的原始值存入一个还原段中。一个事务只能将他全部的还原数据存放在同一个还原段中,并行事务可以写同一个还原段。
 

1.1还原段目的

  1. 事务回滚(rollback)
  2. 读一致性(其他用户不能看到其他未提交的事务修改的数据,一个语句在执行期间所看到的数据是静止的)
  3. 事务恢复(回滚所有未提交的变化,要完全恢复回滚段必须受到联机重做日志文件保护)

1.2oracle并行写测试


        开启一个sql窗口发起update事务A未commit,新开窗口发起update事务B会一直执行直到前一个事务commit。A未提交时,B查询出来的数据为A未修改的原数据


1.3还原段类型

  • system 仅为系统表空间中的对边变化所用
  • non-system 为其他表空间中的对象使用,当一个数据库具有多个表空间时就需要至少一个手动的非系统还原段或一个自动管理的还原表空间
  • 私有还原段:为一个实例所用
  • 公有还原段:为任何一个实例所用
  • deferred 延迟还原段(由系统管理)

2.还原段的管理

 

2.1还原段的自动管理


spfile中的参数 
        undo_management #静态参数只能在参数文件中修改 
        undo_tablespace #动态参数可以通过alter system set undo_tablespace=undotable

2.2还原表空间的创建与维护


2.2.1创建

CREATE UNDO TABLESPACE jinlian_undo
DATAFILE 'E:\orcltest\oradata\ORCL\DATAFILE\jinlian_undo.DBF'
SIZE 20M

2.2.2查看还原表空间

SELECT tablespace_name,status,CONTENTS FROM Dba_Tablespaces WHERE CONTENTS='UNDO'

 

  • 还原表空间维护

alter tablespace
rename
add datafile
datafile [online|offline]
begin backup
end backup
        

--增加数据文件(默认文件不自动扩展)
ALTER TABLESPACE jinlian_undo ADD DATAFILE 'E:\orcltest\oradata\ORCL\DATAFILE\jinlian2_undo.DBF' SIZE 25M;
--让表空间自动扩展(设置数据文件自动扩展)
ALTER DATABASE DATAFILE 'E:\orcltest\oradata\ORCL\DATAFILE\jinlian_undo.DBF' AUTOEXTEND ON
--查看还原表空间参数信息
SELECT * FROM v$parameter WHERE NAME LIKE '%undo%'
--删除还原段OS中的文件不会被删除
drop tablespace jinlian_undo;


2.2.3自动还原数据管理

 

  • undo_retention

            § 该参数决定还原数据在提交后保存的时间单位:秒。这是一个动态参数
            § ALTER SYSTEM SET undo_retention=900


        该参数是为了保证读一致性,如果一个查询语句发起了事务A,A之后DML的事务B修改了A所查询的数据并做了提交,A事务需要找到DML的B事务提交前的数据,该数据就是从还原段读取的,若还原段保留的时间不够,该数据可能会被新的数据清除,A要检索当时的数据就会发生snapshot too old错误(所需快照太老)。

 

  • 表空间的RETENTION GUARANTEE|NOGUARANTEE(动态参数)

            还原表空间的retention属性
            Oracle默认不会100%保留设定的undo_retention时间内的数据需要设置还原表空间的retention属性
            查看还原表空间属性( dba_Tablespaces)
            

SELECT tablespace_name,RETENTION,CONTENTS FROM Dba_Tablespaces WHERE tablespace_name LIKE 'U%'


   让oracle在undo_retention时间内100%保证读一致
           

 ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE;

 该模式下,当新的事务需要还原段而没有空闲还原段时该事务会执行失败
  该模式是为了保证长时间的查询(如统计)事务的读一致性,应当根据业务需要对资源进行调度


   改回oracle默认模式

ALTER TABLESPACE UNDOTBS1 RETENTION NOGUARANTEE;


2.3还原表空间的相关字典表


2.3.1查看还原表空间的参数信息


show parameter undo

2.3.2回滚数据追踪

  • v$undostat

回滚数据的追踪大致思路为通过以下语句,找到undoblks较大的时间段,通过v$sql等视图确定问题语句或操作从而排查出产生大量还原数据问题原因,以求找到合理的解决方案。

SELECT to_char(begin_time,'HH:MM:SS')END_TIME,to_char(end_time,'HH:MM:SS')begin_time,undoblks FROM v$undostat

undoblks 为消耗的还原数据块的总数
maxquerylen 该时间段中所执行的最长的查询(秒为单位)

2.3.3相关数据字典

SELECT * FROM v$rollname;
SELECT * FROM v$rollstat;
SELECT * FROM v$session;
SELECT * FROM v$transaction;
SELECT * FROM Dba_Rollback_Segs;

2.3.4临时还原数据


此特性为12C的特性,临时表存于临时表空间常驻内存
会话一级开启临时还原功能

ALTER SESSION SET temp_undo_enable=TRUE;


在数据库一级开启临时还原功能

ALTER SYSTEM SET temp_undo_enable=TRUE;


查看参数
show parameter temp_undo

SELECT * FROM v$tempundostat


    

 

Oracle DB 管理还原数据 • 说明DML 和还原数据的生成 • 监视和管理还原数据 • 描述还原数据和重做数据之间的不同 • 配置还原保留时间 • 保证还原保留时间 • 使用还原指导   1、数据操纵   可使用DML 类的SQL 语句操纵或修改数据:INSERT、UPDATE、DELETE和MERGE。 这些语句作为事务处理的一部分执行,事务处理以第一个成功的DML 语句作为开始,以COMMI 阅读详情

相关推荐

学Simulink--基于多能源系统协同与能源互联网的电网系统场景实例:风光氢储一体化系统的能量管理与调度仿真

在全球“双碳”目标驱动下,高比例可再生能源并网成为电网发展的核心方向。然而,风电与光伏具有强随机性与间歇性,给电网稳定运行带来巨大挑战。风光氢储一体化系统(Wind-Solar-Hydrogen-Storage Integrated System)通过将可再生能源发电电解水制氢氢气储存与燃料电池发电有机结合,构建了一个长时储能与能量形态转换的闭环系统,是实现能源互联网与零碳电力系统的关键路径。✅平抑波动:氢储能可实现跨天、跨周储能✅能量转化:电→氢→电/热/交通燃料,实现多能互补✅长时储能。

amy_mhd的博客 1071

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

  数据库管理系统对库中的一行数据进行写操作时,需要将这行数据用排他锁锁上。除了正在进行操作的进程之外,其他的任何进程(用户)不能访问上了排他锁的数据行的。   当一个进程正在写某一行数据时,其他的进程可以读这行但是不能写操作。此时其他进程读的是写之前的数据。oracle通过在所有的dml操作之前将原来的数据复制到还原段(9i版本之前叫回滚段)上来实现这一功能的。从9i开始,管理还原数据可以...

lihan7的博客 357

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 218

为什么引入还原段(undo)

引入还原段的作用: oracle还原段的引入解决了修改数据时并行读数据的问题。 当用户修改数据时,该数据首先复制到还原段中,一个事务将它需要修改的全部数据放在同一个还原段中。 还原段的用途有哪些呢? (1)事务恢复 (2)事务回滚 (3)读一致性 那么下面解释下还原段的一些作用: (1)事务恢复: 要实现还原段进行数据恢复,需要将还原段上数据的变化记录在重做日志文件中。一旦某个事务执行期间数据库实例崩溃,再次启动数据库时就需要还原没有提交...

qq_36066390的博客 308

给STM32供电,别只接VDD和GND!VBAT、VDDA这些引脚不接会怎样?

本文深入解析STM32电源设计中VBAT与VDDA引脚的关键作用,揭示仅连接VDD和GND可能导致的ADC精度下降、RTC功能异常等问题。通过实测数据对比不同连接方案,提供包括滤波电路设计、PCB布局布线和双电源自动切换在内的实用解决方案,帮助开发者优化系统稳定性与性能。

weixin_30521161的博客 629

大麦网抢票协议逆向分析:从Web安全到高并发风控实战

在当今高并发Web应用场景下,理解网络协议交互与反爬虫机制是后端开发和系统架构设计的核心技能。其基本原理涉及客户端与服务器之间通过HTTP/HTTPS协议进行数据交换,关键环节包括请求参数构造、身份认证与会话管理。这一技术的核心价值在于保障系统安全与公平性,通过动态令牌、签名算法及设备指纹等多重手段,有效抵御自动化脚本攻击。典型应用场景包括票务系统、电商秒杀等需要严格管控资源访问的高并发业务。本文以热门票务平台为例,深入剖析其**请求链与令牌体系**及**行为生物特征分析**等风控策略,通过实战演示协议逆向

weixin_34354173的博客 452

ORACLE还原段的类型

系统还原段仅为系统表空间中的对象变化所用。它是在数据库创建时在系统表空间中创建的。系统还原段既可以存在并工作在自动模式下,也可以存在并工作在手动模式下。 非系统还原段为其他表空间中对象的变化所使用。当一个数据库具有多个表空间时就需要至少一个手动的非系统还原段或一个自动管理的还原表空间。自动模式:需要一个还原表空间,ORACLE服务器将自动维护还原表空间中的还原数据。手动

朝着梦想 渐行前进 1794

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

COT思维链的出现,为AI的发展开辟了一条新的道路。它让AI学会了像人类一样思考,将复杂问题分解成简单的步骤,并逐步推理出最终答案。希望我的引导会对你产生启发。

智兔唯新的博客 9002

Oracle使用还原段的目的

我们大致概括为三个目的: (1)事务回滚:当一个用户发了一些DML语句之后改了主意使用ROLLBACK语句回滚了他所作的事务,此时Oracle服务器就会将还原段中的原始数据回写到原来的数据行中。 (2)事务恢复:如果当事务正在进行期间实例崩溃了,当数据库再次打开时Oracle服务器就要还原(回滚)所有没有提交的变化。这种还原是事务恢复的一部分。要使恢复真正的成为可能,写到还原段上得变化就要受到

龙神add-走向数据架构师的路 1195

H无穷控制学习笔记——加权灵敏度H无穷控制问题

一、加权灵敏度H无穷问题 系统结构如上图所示。被控对象P的状态空间方程为(Ap,Bp,Cp,DpA_p,B_p,C_p,D_pAp​,Bp​,Cp​,Dp​),加权函数W1的状态空间方程为(A1,B1,C1,D1A_1,B_1,C_1,D_1A1​,B1​,C1​,D1​),加权函数W2的状态空间方程为(A2,B2,C2,D2A_2,B_2,C_2,D_2A2​,B2​,C2​,D2​),加权函数W3的状态空间方程为(A3,B3,C3,D3A_3,B_3,C_3,D_3A3​,B3​,C3​,D3​)。

一饮丶一啄的博客 4350

FAA和EASA在机载电子硬件适航中的发展历史与差异

FAA和EASA在机载电子硬件的适航审查中虽然存在一些差异,但通过近年来的合作,这些差异正在逐步缩小。两者通过。

qq_41854911的博客 745

Oracle什么是还原管理,oracle使用还原段的目的和还原数据的管理方法及还原段的类型...

一、引入还原段主要有3个目的:1、事务回滚:主要是针对rollback语句起作用2、事务恢复:非正常关闭数据库即非保留事务级关闭数据库(abort、immediate)或者数据库instance崩溃,则当数据库再次打开时oracle服务器就要还原所有没有提及的事务。这种还原就是事务恢复的一部分。要使得恢复真正的成为可能写到还原段的变化也要受到联机重做日志的保护。3、保证数据的读一致性。二、还原数据...

weixin_36473398的博客 230

手把手教你学Simulink--电机控制架构与算法实现​场景示例:基于Simulink的电机速度环PID调节仿真

本文带你完成了电机速度环PID参数的科学整定,实现了:✅ 理解了速度环的级联系统特性与关键参数影响工程整定法(理论初值)系统辨识法(参数未知时)✅ PID Tuner自动调参(推荐!自动调参兼具快速性与鲁棒性✅ 学会了前馈补偿抗饱和等工程实用技巧。

MHD0815的博客 653

13.Oracle Undo表空间管理

文章目录前言一、UNDO表空间管理1.还原段的作用2.讨论undo_retention参数3.查看undo参数4.更改参数undo_retention的值5.通过数据字典v$parameter查询undo_retention值6.修改还原表空间7.创建还原表空间8.查询当前undo表空间9.查看还原表空间的信息10.查看关于还原表空间的数据文件信息,默认为自动扩展二、维护还原表空间1.重命名还原表空间2.向还原表空间中添加数据文件3.将数据文件修改为自动扩展方式三、切换还原表空间1.查看当前还原表空间的信息

weixin_40068220的博客 2613

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【DB笔试面试682】在Oracle中,Undo段中区3种状态分别是什么(Undo表空间系列)?...

♣题目部分在Oracle中,Undo段中区3种状态分别是什么? ♣答案部分Undo信息存储在Undo段中,Undo段又存储在Undo表空间中。Undo表空间仅用于...

小麦苗DBA宝典 1928

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

oracle undo表空间清理

oracle undo表空间爆满处理 产生问题的原因主要以下两点: 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况 有较大事务没有收缩或者没有提交所导制; 说明:本问题在ORACLE系统管理中属于比较正常的一现象,日常维护多注意对磁盘空间的监控。 UNDO表空间介绍 UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE...

王铁牛老师 1921

第十三章:UNDO段

一、UNDO UNDO 段是用于存储还原数据的特殊段,在发生实例故障的时候,UNDO 段用来对数 据进行恢复。本章内容包括介绍 UNDO 段的工作原理,并进行自动和手工的 UNDO 段的管理1.1 UNDO 段的作用 RDBMS(关系数据库管理系统)必须要提供一致性的数据,以确保不会丢失数据或导致数据混乱。例如,当用户去银行取款时,需要在用户储蓄账户上减去取款额,而在银行...

weixin_33774883的博客 256

oracle跳过undo回滚段启动,[Oracle] 解析在没有备份的情况下undo损坏怎么办

如果Oracle在运行中很不幸遇到undo损坏,当然最好的方法是完全恢复,不过如果没有备份,可以采用一种非常规的手段(利用Oracle的隐藏参数),如果此时undo包含未提交的事务,会造成一点点的数据丢失(一般都是可忍受的),如果没有未提交的事务,则不会有数据丢失。其主要步骤有:1. 修改undo表空间管理为手动;2. 设置隐藏参数(_offline_rollback_segments或_corr...

weixin_39673051的博客 356

oracle数据库undo表空间,Oracle UNDO表空间

一、还原数据与还原表空间还原数据是:• 原始的、修改之前的数据副本• 针对更改数据的每个事务处理而捕获• 至少保留到事务处理结束• 用于支持:– 回退操作– 读取一致性查询– Oracle 闪回查询、Oracle 闪回事务处理和 Oracle 闪回表– 从失败的事务处理中进行恢复还原信息存储在还原段中,还原段又存储在还原表空间中。还原表空间:• 仅用于还原段• 有特殊的恢复注意事项• 只能与单个实...

weixin_36347877的博客 709

oracle undo段的作用,undo与redo的区别和各自的作用

一、undo中数据的特点:1、是数据修改前的备份,主要是保证用户的读一致性2、在事务修改数据时产生3、至少保存到事务结束二、undo数据的作用:1、回滚(rollback)操作2、实现读一致性与闪回查询3、从失败的事务中还原数据4、非正常停机后的实例恢复三、undo回滚段的特点:1、回滚段是由实例自动创建用于支持事务运行的专用段,同样是区和块组成,回滚段会按实际需要自动进行增长或收...

weixin_31578739的博客 1353

Oracle undo

UNDO表空间相关扫盲(解决ORA-30036:无法按8扩展段(在还原表空间‘XXXX’中))

admin1973的专栏 1448

oracle中redo和undo的区别

redo--> undo-->datafile insert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信息会放进硬盘上. 故障时, redo 便可恢复那些已经commit 了的数据. redo解释:在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFE...

data eudemon 3966

Oracle 撤销表空间undo

文章目录1. 作用2. 事务的属性3. UNDO 数据4. UNDO vs REDO5. Undo的参数5.1 查看undo表空间5.2 切换UNDO5.3 删除UNDO 表空间6. 数据状态和参数 1. 作用 处理事务和还原数据 2. 事务的属性 ACID 原⼦性:⼀个事务的所有部分必须都完成,或都不完成。 ⼀致性:查询的结果必须与数据库在查询开始时的状态⼀致。 隔离性:除了做出表更的会话,...

tyhawk的博客 695

Oracle undo表空间爆满的解决

1. 启动SQLPLUS,并用sys登陆到数据库。 #su - oracle $>sqlplus / as sysdba 2. 查找数据库的UNDO表空间名,确定当前例程正在使用的UNDO表空间: Show parameter undo_tablespace。 3. 确认UNDO表空间; SQL> select name from v$tablespace; NAME -----

疯狂的石头 2111

oracle的还原表空间UNDO写满磁盘空间,解决该问题的具体步骤

 产生问题的原因主要以下两点: 1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况; 2. 有较大事务没有收缩或者没有提交所导制; 说明:本问题在ORACLE系统管理中属于比较正常的一现象,日常维护多注意对磁盘空间的监控。 UNDO表空间介绍 UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,oracl

1071

oracle 12c undo,Oracle 12C新特性-临时UNDO段(Temporary Undo Segments) | 信春哥,系统稳,闭眼上线不回滚!...

在12C版本,为了减少UNDO表空间的使用率及减少REDO和归档日志的产生量,ORACLE推出了临时UNDO段(Temporary Undo Segments)新特性。这个新特性把临时表产生的UNDO信息从UNDO表空间挪到了临时表空间,这样就减少了UNDO表空间的使用。临时表的DML操作不会产生REDO日志,但是UNDO表空间的数据会写入REDO日志中,这样将临时表产生的UNDO数据从UNDO表...

weixin_42496673的博客 347
上一篇: 克隆虚拟机centos6.5+oracle11g网络配置,数据库修改与启动
下一篇: oracle的in和exists区别以及多条件的in的改写
programerbismark
博客等级 码龄11年 2粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值