撤销管理模式:

用户通过设定撤销管理模式(undo mode)就可以灵活地选择使用手动撤销管理(manual undo management)或自动撤销管理(automatic undo management)。数据库系统既可以运行在手动撤销管理模式下,也可以运行于自动撤销管理模式下。在手动撤销管理模式下,撤销空间通过回滚段(rollback segment)管理。在自动撤销管理模式下,撤销空间通过撤销表空间(undo tablespace)管理。如需使用自动撤销管理模式,数据库管理员只需为每个实例(instance)创建一个撤销表空间,并将初始化参数 UNDO_MANAGEMENT 设为 AUTO 即可。Oracle建议用户使用自动撤销管理模式。

管理撤销表空间 如果下两种特殊情况需要人工干预自动撤销管理方式。他们需要确定撤销表空间的大小和撤销数据的保留时间。 1.没有足够的撤销空间来处理所有的活动事务。 2.没有足够的撤销空间来满足读一致性需要的撤销数据。 这些干预的结果都需要对撤销表空间进行管理。

(一)创建撤销表空间

可以在创建数据库的时候创建撤销表空间。也可以在创建数据库之后再创建撤销表空间。

创建撤销表空间的命令行语法与创建其他表空间的语句基本相同,但必须指定UNDO关键字,只能使用本地管理方式EXTENT MANAGEMENT LOCAL

而不能使用数据字典管理方式,区管理方式只能是使用AUTOALLOCATE而不能使用UNIFORM,不能指定任何段空间管理方式,所以其语法是:

CREATE UNDO TABLESPACE DATAFILE datafile_clause [,datafile_clause]

[EXTENT MANAGEMENT LOCAL]

[AUTOALLOCATE]

其中datafile_clause子句的语法是:

‘path_filename_suffix‘ SIZE integer [K|M]

[REUSE]

[AUTOEXTEND OFF|ON] [NEXT integer [K|M]]

[MAXSIZE UNLIMITED |integer [K|M]]

在datafile_clause子句中指定数据文件时,不能使用相对路径,只能使用绝对路径。并且,如果没有提供文件名的后缀,则无后缀。

CREATE UNDO TABLESPACE undotbs01 DATAFILE ‘e:\undotbs01_1.dbf‘ SIZE 3M AUTOEXTEND ON NEXT 1M MAXSIZE 15M;

CREATE UNDO TABLESPACE undotbs02 DATAFILE ‘e:\undotbs02_1.dbf‘ SIZE 3M AUTOEXTEND OFF;

虽然DBA最初可以允许数据文件自动扩展,但一旦DBA认为撤销表空间的大小已经合适时,就应该关闭自动扩展特性或限制其最大大小,以防止

某个用户忘记了尽可能频繁提交事务而意外的用完该数据文件所在的磁盘空间。

(二)修改撤销表空间

与其他表空间一样,可以通过ALTER TABLESPACE语句,ALTER DATABASE语句来修改撤销表空间。但因为撤销表空间的大部分设置都由ORACLE本

身进行管理,所以只能对撤销表空间进行如下的修改操作:

1.添加新的数据文件以便增加更多的存储空间。

2.移动(修改位置与名称)数据文件。

3.将数据文件设置成联机或脱机状态。

给UNDOTBS02撤销表空间添加一个新的数据文件。

ALTER TABLESPACE undotbs02 ADD DATAFILE ‘e:\undotbs02_2.dbf‘ SIZE 1M AUTOEXTEND OFF;

给UNDOTBS02撤销表空间中e:\undotbs02_2.dbf数据文件的大小。

ALTER DATABASE DATAFILE ‘e:\undotbs02_2.dbf‘ RESIZE 2M;

删除UNDOTBS02表空间中的e:\undotbs02_2.dbf数据文件。

ALTER DATABASE DATAFILE ‘e:\undotbs02_2.dbf‘ OFFLINE OFF;

这条语句只是将该数据文件的状态改变成了RECOVER了,而并没有从数据库、更没有从磁盘中删除该数据文件。要使该数据文件可以被重新使用,需要进行介质恢复,并将该数据文件的状态改变为ONLINE就可以了。

RECOVER DATAFILE ‘e:\undotbs02_2.dbf‘;

ALTER DATABASE DATAFILE ‘e:\undotbs02_2.dbf‘ ONLINE;

可以使表空间脱机,但不能使当前正在使用的表空间脱机。

(三)更改撤销表空间

启动例程并打开数据库后,在同一时刻一个例程只能使用一个撤销表空间。如果在数据库中创建了多个撤销表空间,那么在数据库的运行过程中,可以更改到另一个撤销表空间,即更改UNDO_TABLESPACE参数,并同时停止当前使用的撤销表空间。由于该参数是一个动态参数,所以可以在数据库运行过程中,通过ALTER SYSTEM SET语句进行更改,并无须重新启动数据库。 不能使当前正在使用的撤销表空间脱机; 如果指定的表空间不存在,或不是一个撤销类型的表空间,则更改时会有错误提示。 在成功更改表空间之后,任何新开始的事务都将在新的撤销表空间中保留撤销数据。但是在旧的撤销表空间中可能还会保留着当前未提交的事务的撤销数据。这时,旧的撤销表空间并不会立即进入脱机状态,而是进入“悬挂脱机状态”。在这种情况下,当前未提交的事务继续使用旧的撤销表空间,知道提交后,旧的撤销表空间才进入脱机状态。

需要注意,在RAC(REAL APPLICATION CLUSTER)结构中,不同例程必须使用各自的、独立的撤销表空间,而不能使用同一个撤销表空间。 更改撤销表空间,不会清空V$UNDOSTAT视图中的内容,仍然会继续向其中每隔10分钟就增加一条记录。只有在关闭数据库时才会清空V$UNDOSTAT视图中的内容。

(四)删除撤销表空间。

可以使用DROP TABLESPACE语句来删除表空间。 不能删除当前正在使用的撤销表空间。 可以删除没有使用的撤销表空间,并且尅指定INCLUDING CONTENTS AND DATAFILES子句,以便在删除撤销表空间的时候,将有内容的撤销表空间及其对应的操作系统数据文件也删除,否则需要在关闭数据库之后才能删除这些操作系统数据文件。

查询和监控撤消的有关信息

视图

作用

V$undostat

包含所有撤消表空间的统计信息,

可用于监控和调整撤消表空间的。DBA可以利用该视图来估算撤消表空间的大小,

ORACLE利用其完成对撤消表空间的自动管理

V$rollstat

包含撤消表空间各个撤消段的信息

V$transcation

包含各个事务所使用的撤消段信息

Dba_undo_extents

包含撤消表空间的每个区所对应的事务的提交时间

Oracle在线撤销表空间,Oracle创建、管理撤销表空间相关推荐

  1. Oracle 数据库创建表空间、创建用户指定表空间

    Oracle 数据库创建表空间.创建用户指定表空间 //创建临时表空间 create temporary tablespace user_temp tempfile 'D:\oracle\oradat ...

  2. Oracle在线撤销表空间,创办、管理撤销表空间

    撤销管理模式: 用户通过设定撤销管理模式(undo mode)就可以灵活地选择使用手动撤销管理(manual undo management)或自动撤销管理(automatic undo manage ...

  3. 表3.5 文章管理测试用例表_本地管理表空间管理机制

    表空间是一种为段(表,索引等)提供空间的逻辑结构,所以,当在表空间中增加,删除段的时候,数据库就必须跟踪这些空间的使用. 如下例所示,假定一个新创建的表空间包含了五个表 表一--表二--表三--表四- ...

  4. mysql创建数据库时候同时创建表空间_mysql::创建多个表空间添加记录数据会添加到哪个表空间中?...

    问题:创建多个表空间添加记录数据会添加到哪个表空间中 答:后一个 drwx------ 2 mysql mysql 4.0K Apr 26 08:04 demo -rw-rw---- 1 mysql ...

  5. mysql存储过程加多个创建表_mysql 存储过程创建多个表

    要创建64个表,听到这一需求,必然要用存储过程.直接上代码: DELIMITER $$ USE `table`$$ DROP PROCEDURE IF EXISTS `p`$$ CREATE DEFI ...

  6. mysql删除表命令_MySQL创建和删除表操作命令实例讲解

    创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...

  7. java邻接表无向图的创建_邻接表无向图(三) 之Java详解

    前面分别介绍了邻接表无向图的C和C++实现,本文通过Java实现邻接表无向图. 目录 邻接表无向图的介绍 邻接表无向图是指通过邻接表表示的无向图. 上面的图G1包含了"A,B,C,D,E,F ...

  8. mysql创建表关联_MySQL创建高级联表教程

    #MYSQL#这是我第七篇MySQL教程,本篇主要介绍的是如何创建高级联表查询,主要包括使用表的别名,和自连接,外连接,和使用聚合函数连接,已经如何创建链接的条件.希望对你有所帮助. 在MySQL中除 ...

  9. [Swift通天遁地]二、表格表单-(11)创建星期选项表单和拥有浮动标签的文本框

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  10. mysql创建学生信息表学号_mysql创建学生信息表

    mysql中,如何创建一个表,并加一条数据? 在一个数据库中创建一个学生表"student",要CSS布局HTML小编今天和大家分享使用查询语句,包括以下字如果想在数据库中创建一个 ...

最新文章

  1. Java中的OutOfMemoryError的各种情况及解决方法
  2. 23种设计模式整体详解
  3. hdu1428(记忆化搜索)
  4. C++ 初始化与赋值
  5. sql server 别名_SQL Server别名概述
  6. JQuery Highcharts 图表控件
  7. 如何在C预处理器中可靠地检测Mac OS X,iOS,Linux,Windows? [重复]
  8. 【bzoj1668/Usaco2006 Oct】Cow Pie Treasures 馅饼里的财富——dp
  9. 搜狗拼音输入法 V9.1.0.2589 最新去广告精简优化版
  10. 图像处理: AlphaBlend
  11. 高一被清华姚班录取,一个重度网瘾少年到理论计算机科学家的蜕变
  12. FFmpeg 视频处理
  13. 新手小白之初识JAVA,随堂笔记
  14. CODE RO RW ZI
  15. 深度学习与TensorFlow实战(十)卷积神经网络—VGG(16)神经网络
  16. hibernate对oracle的文本字段按拼音排序
  17. Oracle12c修改时区
  18. 漫画版python_不能错过的Python漫画
  19. 基础知识 | 近似误差 估计误差
  20. 【使用教程】VSCode创建json文件

热门文章

  1. 深入探討 SCOM 2007 管理技術
  2. DNS Server 的设置使用
  3. C语言里面的 malloc 函数
  4. 【转】互联网架构的三板斧
  5. VISTA组策略中关闭自动播放的位置
  6. oracle 10g 安装完成后,无法登陆EM的解决办法
  7. .net winform 里控件的Dock属性(Dock的Z 顺序停靠)
  8. 关于ext4 simg fill chunk type
  9. 嵌入式工具——smartmontools
  10. Android 学习之Fragment生命周期