网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.讲解往表中顺序插入N条记录的简易.
.ActualTest Oracle 1Z0-301 v05..
.批量绑定(bulk binds):FOR循环与.
.如何为oracle中的表增加像sql se.
.TestKing Oracle 1Z0-501 Edt1.1.
.sql 存储过程分页.
.包含复制环境的数据库迁移.
.Oracle数据库中分区表的操作方法.
.在 Oracle 数据库上构建 .NET 应.
.影响Oracle汉字显示的字符集问题.
.Oracle数据库安全性设计建议.
.专家调优秘密之改善Oracle数据库.
.怎样使两台服务器的oracle9i的数.
.怎样在Oracle中创建,维护图形大.
.如何使用pipeline function获得实.
.ORACLE数据库备份方法.
.Oracle数据库-PL/SQL整理(1).
.J2EE应用中与Oracle数据库的连接.
.ORACLE *Graphics中不同类型图形.
.Installing Oracle 9iR2 on RHEL.

撤销段的自动管理

发表日期:2008-2-9



  作者:gototop
  
  在Oracle 9i里,一个很显著的新特性就是引入了自动的回滚段治理,当使用了AUM (Automatic Undo Management)时,为了区别,名称也由原来的ROLLBACK SEGMENT(回滚段)变成UNDO SEGMENT(撤销段),相对应的是UNDO TABLESPACE。 当然我们也可以继续使用传统的MANUAL方式来治理撤销段。
  
  一、初始化参数
  
  使用下面的参数来设置有ORACLE自动治理撤销段:
  
  UNDO_MANAGEMENT = AUTO
  
  ORACLE会自动完成撤销段的创建、删除以及ONLINE/OFFLINE,而DBA将无法干预所有以上操作。
  
  假如想自己来治理回滚段可以将UNDO_MANAGEMENT设成MANUAL(DEFAULT就是MANUAL的)。虽然我们可以在UNDO表空间上创建回滚段,但ORACLE并不建议这样做。
  
  当使用了AUM,我们唯一需要做的就是至少创建一个UNDO表空间,我们可以创建多个UNDO表空间,然后使用下面的参数来指定具体使用哪个。
  
  UNDO_TABLESPACE =UNDORBS1
  
  SQL> l
  
  1* select name ,value from v$parameter where name like 'undo%'
  
  SQL> /
  
   
  
  undo_management MANUAL
  
  undo_tablespace UNDOTBS1
  
  undo_suppress_errors FALSE
  
  undo_retention 10800
  
  创建多个UNDO表空间的好处是,我们可以根据不同的应用在不同大小的UNDO表空间之间进行切换。
  
  二、UNDO表空间的创建
  
  1、在建数据库是创建UNDO表空间,具体方法参见本人写的Oracle 9i安装、建库与升级。文章在www.ncn.cn上有下载。
  
  2、我们也可以通过下面的语句来创建:
  
  Create undo tablespace undotbs2 datafile ‘/dev/rundotbs2_1.dbf’ size 100m;
  
  三、UNDO表空间特性
  
  1、UNDO表空间默认就是LOCAL治理方式:
  
  SQL> l
  
  1 select TABLESPACE_NAME, CONTENTS,EXTENT_MANAGEMENT, ALLOCATION_TYPE,
  
  2 SEGMENT_SPACE_MANAGEMENT
  
  3* from dba_tablespaces where contents='UNDO'
  
  SQL> /
  
   
  
  TABLESPACE_NAME CONTENTS EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPAC
  
  -------------------- ------------------ -------------------- ------------------ ------------
  
  UNDOTBS1 UNDO LOCAL SYSTEM MANUAL
  
  UNDOTBS2 UNDO LOCAL SYSTEM MANUAL
  
  2、除撤销段外,我们不能在UNDO表空间上作其他操作:
  
  SQL> create table gototop_t1(c1 number) tablespace undotbs1;
  
  create table gototop_t1(c1 number) tablespace undotbs1
  
  *
  
  ERROR 位于第 1 行:
  
  ORA-30022: Cannot create segments in undo tablespace
  
  SQL> l
  
  1* create rollback segment ncn_rb1 tablespace undotbs1
  
  SQL> /
  
  create rollback segment ncn_rb1 tablespace undotbs1
  
  *
  
  ERROR 位于第 1 行:
  
  ORA-30019: Illegal rollback Segment operation in Automatic Undo mode
  
  3、一个实例职能使用一个UNDO表空间:
  
  除了在INIT.ORA中指定UNDO表空间外,我们还可以使用下面的语句来在线更改实例所用的UNDO表空间:
  
  SQL> alter system set undo_tablespace=undotbs2;
  
  系统已更改。
  
  四、撤销段的特性
  
  1、撤销段自动创建:
  
  Ø n个撤销段(n基于SESSIONS参数,后面会具体讲)
  
  Ø 名字为_SYSSMUn$
  
  Ø OWNER为PUBLIC(在RAC配置中有用)
  
  Ø 选择AUM后,无法手动治理
  
  SQL> l
  
  1 select owner,segment_name,tablespace_name,status
  
  2* from dba_rollback_segs order by 4
  
  SQL> /
  
   
  
  OWNER SEGMENT_NAME TABLESPACE_NAME STATUS
  
  ---------- ------------------ -------------------- --------------------------------
  
  PUBLIC _SYSSMU1$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU2$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU3$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU5$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU7$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU9$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU10$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU8$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU6$ UNDOTBS1 OFFLINE
  
  PUBLIC RB1_CYX1 UNDOTBS1 OFFLINE
  
  PUBLIC RB1_CYX UNDOTBS1 OFFLINE
  
  SYS RB1_08 UNDOTBS1 OFFLINE
  
  SYS RB1_07 UNDOTBS1 OFFLINE
  
  SYS RB1_05 UNDOTBS1 OFFLINE
  
  SYS RB1_04 UNDOTBS1 OFFLINE
  
  SYS RB1_03 UNDOTBS1 OFFLINE
  
  SYS RB1_02 UNDOTBS1 OFFLINE
  
  SYS RB1_01 UNDOTBS1 OFFLINE
  
  SYS RB3_06 UNDOTBS3 OFFLINE
  
  SYS RB3_05 UNDOTBS3 OFFLINE
  
  SYS RB3_04 UNDOTBS3 OFFLINE
  
  SYS RB3_03 UNDOTBS3 OFFLINE
  
  SYS RB3_02 UNDOTBS3 OFFLINE
  
  SYS RB3_01 UNDOTBS3 OFFLINE
  
  SYS RB2 INDX OFFLINE
  
  PUBLIC _SYSSMU4$ UNDOTBS1 OFFLINE
  
  SYS SYSTEM SYSTEM ONLINE
  
  PUBLIC _SYSSMU11$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU12$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU13$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU14$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU15$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU16$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU17$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU18$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU19$ UNDOTBS2 ONLINE
  
  PUBLIC _SYSSMU20$ UNDOTBS2 ONLINE
  
   
  
  已选择37行。

  
   
  
  SQL>
  
  因为我在系统上作测试,之前手动建过回滚段,所以上面返回结果显一般多。
  
  2、只有活动的UNDO表空间上的撤销段和系统回滚段是ONLINE的,其他的撤销段都是OFFLINE的。
  
  这一点从上面的输出中可以清楚地看到。
  
  不过,也不一定一开始所有的撤销段都会ONLINE的,这要依靠于初始化参数SESSIONS的值,默认SESSIONS = 1.1 * PROCESSES + 5,他决定了系统的并发用户数。下面的实验可以让你对这一情况有个明确的熟悉。
  
  我们将SESSIONS调小后重起数据库,可以看到活动的UNDO表空间UNDOTBS1上共10个撤销段,但只ONLINE了5个。
  
  SQL> show parameter sessions
  
   
  
  NAME TYPE VALUE
  
  ------------------------------------ ---------------------- -----------
  
  Java_max_sessionspace_size integer 0
  
  java_soft_sessionspace_limit integer 0
  
  license_max_sessions integer 0
  
  license_sessions_warning integer 0
  
  logmnr_max_persistent_sessions integer 1
  
  mts_sessions integer 0
  
  sessions integer 27
  
  shared_server_sessions integer 0
  
  SQL> select owner,segment_name,tablespace_name,status
  
  2 from dba_rollback_segs;
  
   
  
  OWNER SEGMENT_NAME TABLESPACE_NAM STATUS
  
  ------------ -------------------- -------------- ----------
  
  SYS SYSTEM SYSTEM ONLINE
  
  PUBLIC _SYSSMU1$ UNDOTBS1 ONLINE
  
  PUBLIC _SYSSMU2$ UNDOTBS1 ONLINE
  
  PUBLIC _SYSSMU3$ UNDOTBS1 ONLINE
  
  PUBLIC _SYSSMU4$ UNDOTBS1 ONLINE
  
  PUBLIC _SYSSMU5$ UNDOTBS1 ONLINE
  
  PUBLIC _SYSSMU6$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU7$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU8$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU9$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU10$ UNDOTBS1 OFFLINE
  
  PUBLIC _SYSSMU11$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU12$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU13$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU14$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU15$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU16$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU17$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU18$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU19$ UNDOTBS2 OFFLINE
  
  PUBLIC _SYSSMU20$ UNDOTBS2 OFFLINE
  
  SYS RB1_01 UNDOTBS1 OFFLINE
  
  SYS RB1_02 UNDOTBS1 OFFLINE
  
  SYS RB1_0
上一篇:延续性初始化参数文件(persistent init.ora) 人气:661
下一篇:轻松取得建表和索引的DDL语句 人气:884
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐