UNDO自动管理模式下,如何手工指定回滚段(_smu_debug_mode)
通过设置_smu_debug_mode值来实现指定session级别使用特定的回滚段
_smu_debug_mode为默认值
--测试数据库版本 SQL>select* fromv$version; BANNER -------------------------------------------------------------------------------- OracleDatabase11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNSforSolaris: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production --_smu_debug_mode值 SQL>selecta.ksppinm name,b.ksppstvl value 2 fromx$ksppi a,x$ksppcv b 3 wherea.inst_id = USERENV ('Instance') 4 andb.inst_id = USERENV ('Instance') 5 anda.indx = b.indx 6 andupper(a.ksppinm)LIKEupper('%¶m%') 7 orderby name; Enter value forparam: _smu_debug_mode old 6: andupper(a.ksppinm)LIKEupper('%¶m%') new 6: andupper(a.ksppinm)LIKEupper('%_smu_debug_mode%') NAME VALUE -------------------------------- ------------------------ _smu_debug_mode 0 --undo管理模式 SQL> show parameter undo; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 --指定回滚段(查询dba_rollback_segs得到回滚段名称) SQL> settransaction use rollbacksegment "_SYSSMU7_1887299474$"; Transactionset. SQL>deletefrom t whererownum<10; 9rowsdeleted. --查询使用回滚段 SQL>selectXIDUSN fromV$TRANSACTION; XIDUSN ---------- 9 |
这里可以看到在undo自动管理模式下,我们手工指定了回滚段但是被数据库给忽略,还是使用了系统自动分配的回滚段。例如这里我指定的回滚段7,但是使用了系统自动分配的回滚段9
_smu_debug_mode=45
SQL>select* fromv$version; BANNER ------------------------------------------------------------------------- OracleDatabase11g Enterprise Edition Release 11.2.0.3.0 - Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNSfor32-bitWindows: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production SQL> show parameter undo; NAME TYPE VALUE ------------------------------------ ------- ----------------- undo_management string AUTO undo_retention integer 900 undo_tablespace string undo_new SQL>selecta.ksppinm name,b.ksppstvl value 2 fromx$ksppi a,x$ksppcv b 3 wherea.inst_id = USERENV ('Instance') 4 andb.inst_id = USERENV ('Instance') 5 anda.indx = b.indx 6 andupper(a.ksppinm)LIKEupper('%¶m%') 7 orderby name; Enter value forparam: _smu_debug_mode old 6: andupper(a.ksppinm)LIKEupper('%¶m%') new 6: andupper(a.ksppinm)LIKEupper('%_smu_debug_mode%') NAME VALUE -------------------------------- ------------------------ _smu_debug_mode 45 /* 使用altersystem set"_smu_debug_mode" = 45;配置 注意:该参数只能在system级别配置 */ --测试表 SQL>createtable t_xifenfei 2 as 3 select* fromdba_objects; Tablecreated. --指定回滚段 SQL>settransaction use rollbacksegment "_SYSSMU15_1680736333$"; Transactionset. SQL>deletefrom t_xifenfei whererownum<10; 9rowsdeleted. --查询事务回滚段 SQL>selectXIDUSN fromV$TRANSACTION; XIDUSN ---------- 15 SQL>commit; Commitcomplete. --再次指定回滚段 SQL>settransaction use rollbacksegment "_SYSSMU17_527554872$"; Transactionset. SQL>deletefrom t_xifenfei whererownum<10; 9rowsdeleted. --查询事务回滚段 SQL>selectXIDUSN fromV$TRANSACTION; XIDUSN ---------- 17 |
这里可以看出来通过设置”_smu_debug_mode” = 45可以很好的实现在undo自动管理模式下,指定事务在特定的回滚段,在某些极限情况下,可以通过该操作来减少回滚段争用.
转自:http://www.xifenfei.com/2013/01/设置_smu_debug_mode实现指定session级别使用特定回滚段.html
UNDO自动管理模式下,如何手工指定回滚段(_smu_debug_mode)相关推荐
- Oracle 手工清除回滚段的几种方法
关于回滚段的问题,之前也小整理过一个,参考: Current online Redo 和 Undo 损坏的处理方法 http://blog.csdn.net/tianlesoftware/articl ...
- mysql rollback.pl_设置_smu_debug_mode实现指定session级别使用特定回滚段
通过设置_smu_debug_mode值来实现指定session级别使用特定的回滚段 _smu_debug_mode为默认值 --测试数据库版本 SQL> select * from v$ver ...
- 自动undo表空间模式下切换新的undo表空间
在undo自动表空间模式下切换新的undo表空间后都需要将老的undo表空间给drop,可是由于切换时由于活动事物并未完全结束, 于是导正drop旧的undo表空间时报"ORA- ...
- Undo TableSpace ②.回滚段研究
Undo TableSpace ②.回滚段研究 回滚段一直是我看了头大的一个东西,倒不是说这个东西的创建.管理有多复杂,而是在于如果你的系统需要涉及到回滚段的手动创建的时候,这个性能问题就 ...
- 【MySql进阶】undo日志详解:undo日志结构、undo日志链表、回滚段、undo log原理
undo日志 本文为阅读<MySql是怎样运行的>的笔记,供大家参考. 文章目录 undo日志 概述 undo日志数据结构 insert 对应的undo log delete 对应的und ...
- oracle回滚段创建,Oracle回滚段管理
Oracle回滚段管理 回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头 ...
- 自动undo管理下如何添加和删除回滚段
以sys DBA帐户登陆数据库如下: SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 11 08:46:26 2008 Copyright (c ...
- oracle跳过undo回滚段启动,[Oracle] 解析在没有备份的情况下undo损坏怎么办
如果Oracle在运行中很不幸遇到undo损坏,当然最好的方法是完全恢复,不过如果没有备份,可以采用一种非常规的手段(利用Oracle的隐藏参数), 如果此时undo包含未提交的事务,会造成一点点的数 ...
- ORACLE回滚段管理(下)
创建回滚段 语法: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITI ...
最新文章
- html点击散点图的点显示一个文本,javascript – D3.js中的简单散点图示例?
- 逆向与分析-WebBrowserPassView消息分析
- 小白学数据分析-----聚类分析理论之K-means理论篇
- java匿名类的用法
- Java 8里一元函数Function的compose和andThen方法区别
- activemq网络桥接_ActiveMQ –经纪人网络解释–第5部分
- apache hive_通过6个简单的步骤在Windows上运行Apache Hive
- 初步体验数据驱动之美---TreeView
- javascript 模仿 html5 placeholder
- 2018全国计算机二级c语言题库,全国计算机二级c语言题库试题及答案
- qq表情包html插件,jQuery QQ表情插件jquery.qqFace.js
- PreferenceActivity 分屏显示 分析
- 产品创新案例分析|大疆如何从初创到无人机帝国的进阶之路
- matlab 坐标轴居中,MATLAB 把坐标轴(X Y轴)移到坐标原点
- 计算机网络读书笔记(二)
- iOS 开发问与答(142-159)
- qq公众平台出错了609_腾讯广告投放平台,腾讯广告投放推广平台有哪些?
- UE4 设置夜晚(根据DirectionalLight方向更新SkySphere)
- 用虚拟光驱安装游戏动画教程(原创)
- VUE引入Echarts 打包文件过大——解决方法1:按需引入
热门文章
- python UIAutomator2使用教程
- 佛祖保佑,永无bug——springboot启动图案的修改方法
- 阿里专家,一篇讲透“业务数据双中台”架构,ppt干货分享!
- 简单句 - 主谓/主谓宾/主系表的分析
- html中注册商标r怎么打,如何在PPT里打一个圈加一个R,就是已经注册的标志?
- 关于mysql blob 存取乱码问题
- python之re模块,内存管理
- 服务器维修工程师面试,设备维修工程师面试内容有哪些?
- 云筑网认证_大师为你详解云筑网怎样注册账号
- 斯坦福大学计算机排名多少,斯坦福大学全球排名第几