通过设置_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)相关推荐

  1. Oracle 手工清除回滚段的几种方法

    关于回滚段的问题,之前也小整理过一个,参考: Current online Redo 和 Undo 损坏的处理方法 http://blog.csdn.net/tianlesoftware/articl ...

  2. mysql rollback.pl_设置_smu_debug_mode实现指定session级别使用特定回滚段

    通过设置_smu_debug_mode值来实现指定session级别使用特定的回滚段 _smu_debug_mode为默认值 --测试数据库版本 SQL> select * from v$ver ...

  3. 自动undo表空间模式下切换新的undo表空间

       在undo自动表空间模式下切换新的undo表空间后都需要将老的undo表空间给drop,可是由于切换时由于活动事物并未完全结束,    于是导正drop旧的undo表空间时报"ORA- ...

  4. Undo TableSpace ②.回滚段研究

    Undo TableSpace ②.回滚段研究       回滚段一直是我看了头大的一个东西,倒不是说这个东西的创建.管理有多复杂,而是在于如果你的系统需要涉及到回滚段的手动创建的时候,这个性能问题就 ...

  5. 【MySql进阶】undo日志详解:undo日志结构、undo日志链表、回滚段、undo log原理

    undo日志 本文为阅读<MySql是怎样运行的>的笔记,供大家参考. 文章目录 undo日志 概述 undo日志数据结构 insert 对应的undo log delete 对应的und ...

  6. oracle回滚段创建,Oracle回滚段管理

    Oracle回滚段管理 回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头 ...

  7. 自动undo管理下如何添加和删除回滚段

    以sys DBA帐户登陆数据库如下: SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 11 08:46:26 2008 Copyright (c ...

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

    如果Oracle在运行中很不幸遇到undo损坏,当然最好的方法是完全恢复,不过如果没有备份,可以采用一种非常规的手段(利用Oracle的隐藏参数), 如果此时undo包含未提交的事务,会造成一点点的数 ...

  9. ORACLE回滚段管理(下)

    创建回滚段 语法: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITI ...

最新文章

  1. html点击散点图的点显示一个文本,javascript – D3.js中的简单散点图示例?
  2. 逆向与分析-WebBrowserPassView消息分析
  3. 小白学数据分析-----聚类分析理论之K-means理论篇
  4. java匿名类的用法
  5. Java 8里一元函数Function的compose和andThen方法区别
  6. activemq网络桥接_ActiveMQ –经纪人网络解释–第5部分
  7. apache hive_通过6个简单的步骤在Windows上运行Apache Hive
  8. 初步体验数据驱动之美---TreeView
  9. javascript 模仿 html5 placeholder
  10. 2018全国计算机二级c语言题库,全国计算机二级c语言题库试题及答案
  11. qq表情包html插件,jQuery QQ表情插件jquery.qqFace.js
  12. PreferenceActivity 分屏显示 分析
  13. 产品创新案例分析|大疆如何从初创到无人机帝国的进阶之路
  14. matlab 坐标轴居中,MATLAB 把坐标轴(X Y轴)移到坐标原点
  15. 计算机网络读书笔记(二)
  16. iOS 开发问与答(142-159)
  17. qq公众平台出错了609_腾讯广告投放平台,腾讯广告投放推广平台有哪些?
  18. UE4 设置夜晚(根据DirectionalLight方向更新SkySphere)
  19. 用虚拟光驱安装游戏动画教程(原创)
  20. VUE引入Echarts 打包文件过大——解决方法1:按需引入

热门文章

  1. python UIAutomator2使用教程
  2. 佛祖保佑,永无bug——springboot启动图案的修改方法
  3. 阿里专家,一篇讲透“业务数据双中台”架构,ppt干货分享!
  4. 简单句 - 主谓/主谓宾/主系表的分析
  5. html中注册商标r怎么打,如何在PPT里打一个圈加一个R,就是已经注册的标志?
  6. 关于mysql blob 存取乱码问题
  7. python之re模块,内存管理
  8. 服务器维修工程师面试,设备维修工程师面试内容有哪些?
  9. 云筑网认证_大师为你详解云筑网怎样注册账号
  10. 斯坦福大学计算机排名多少,斯坦福大学全球排名第几