Oracle在线撤销表空间,创办、管理撤销表空间
撤销管理模式:
用户通过设定撤销管理模式(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
包含撤消表空间的每个区所对应的事务的提交时间
--查询撤消有关的参数SQL>SHOW PARAMETER UNDO;--查看撤消表空间的使用情况SELECTBYTES/1024/1024BYTE,MAXBYTES/1024/1024MAXFROMDBA_DATA_FILESWHERETABLESPACE_NAME='UNDOTBS';--通过V$undostat来查询最近产生的撤消数据的ORACLE块数,V$undostat每10分钟产生一条记录,最多包含144条记录。SELECTTO_CHAR(END_TIME,'HH24:mi:ss') etime,
to_char(begin_time,'hh24:mi:ss') btime,
(end_time-begin_time)*24*60*60ttime,
undoblksfromv$undostat;--撤消表空间以及数据文件的信息selecta.tablespace_name tbs,
a.file_name,a.blocks,a.bytes/1024/1024bt,
a.maxbytes/1024/1024max,
a.autoextensiblefromdba_data_files a,dba_tablespaces bwherea.tablespace_name=b.tablespace_name;--撤消段的统计信息selecta.name,b.xacts,b.writes,b.extentsfromv$rollname a ,v$rollstat bwherea.usn=b.usn;--创建撤销表空间createundo tablespace undotbs2
datafile'e:\oradata\undo\undotbs2.dbf'size 200M autoextendonnext50M;--使用撤销表空间altersystemsetundo_tablespace=undotbs2;
Oracle在线撤销表空间,创办、管理撤销表空间相关推荐
- oracle命令清空数据库表,Oracle中如何快速删除数据字典管理的表空间-数据库专栏,ORACLE...
我的测试环境:hp rp7410主机,hp-unix11.11 os,oracle8.1.7.4的数据库,一个有90张表大约100g的测试表空间tbs_test. 问题的提出:oracle中在使用dr ...
- rbac权限管理表mysql_RBAC权限管理数据库表小解
TP2.0版本就已经支持扩展RBAC权限管理,也有对应的demo,Rbac权限管理在Examples目录下面. RBAC扩展库核心文件则可以在ThinkPHP/Lib/ORG/Util下面找到,查看源 ...
- ORACLE DBA学习笔记--表空间的管理(tablespace)
表空间是个逻辑概念. 表空间是ORACLE的最大逻辑结构.表空间是组织数据和分配空间的逻辑结构. 特性: 一个表空间有多个数据文件组成,但一个数据文件只属于一个表空间 一个数据库可以有多个表空间,可以 ...
- linux 进程 转存储,Linux memory management——(进程虚存空间的管理)(转)
Linux memory management--(进程虚存空间的管理)(转)[@more@]Linux memory management--(进程虚存空间的管理) 1.内核空间和用户空间 进程运行 ...
- MySQL权限与安全管理之权限表与账户管理
目录 MySQL权限与安全管理之权限表与账户管理 权限表 user表 db表 tables_priv表和columns_priv表 procs_priv表 账户管理 登录和退出MySQL服务器 新建普 ...
- Oracle 数据库表空间的管理
表空间管理概述 1.表空间分类 按构成文件 大文件表空间:只能包含1个大文件(最大尺寸为128 TB) 小文件表空间:可包含多个数据文件(默认) 按表空间用途:系统表空间.撤销表空间.临时表空间.数据 ...
- Oracle表空间的管理方式(LMT、DMT)--本地和字典管理
Oracle表空间的管理方式(LMT.DMT)--本地和字典管理 字典管理:oracle 8i(不包括i),只存在一种表空间的管理模式,即字典管理表空间(DMT).DMT是指oracle的空间分配或回 ...
- oracle 授权访问条空间,oracle创建用户和角色、管理授权以及表空间操作
show user 显示当前用户 connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norm ...
- oracle 数据库,用户管理以及表空间等相关基础操作
开启超级管理员模式 sqlplus "/as sysdba" 修改BI账户密码为721521 alter user BI identified by 721521; #修改时间格式 ...
最新文章
- Android--SoundPool
- git 冲突覆盖_git pull冲突解决之强制覆盖
- 贪心算法之——喷水装置二(nyoj12)
- 怎么用python编程实现二次差值多项式_二次插值法python实现
- 图像像素点赋值_Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像...
- 简单的for()循环使用方式foreach
- 容易被PHP程序员忽视的几个要点
- php图像生成和处理,PHP的gd库(图像生成和处理)的应用
- 洛谷再分肥宅水c语言,【菜鸟进阶之路】P5706【深基2.例8】再分肥宅水 - 洛谷
- 大聊Python----Select解析
- VMware+ubuntu+win10笔记本实现笔记本连接WIFI且ubuntu既可以上网又能连接开发板
- 一分钟搞懂 微调(fine-tuning)和prompt
- TCP/IP层次模型
- [运动规划算法]Fast-tracker分析
- python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏
- Flask项目——Todo
- GSP药品经营质量管理认证的要求?
- 计算机蓝屏代码c2,如何解决Win8电脑出现蓝屏故障0x000000c2的问题?
- 红帽认证工程师和红帽认证技师应试指南
- python批量巡检服务器_python3监控批量服务器网络通畅的工具