平时看书也没有怎么作笔记,时间一长就慢慢的忘记了。
今天开通了cu的博客,记录下学习的点点滴滴。
undo表空间
回退表空间之存储一些回退信息,在这个表空间里面不能建立segment比如:表、索引等。并不是每个Caution:数据库都必须要有会滚表空间
但是在自动会滚管理模式下的数据库里面,每个实例必须而且仅有一个会滚表空间。
当用户执行dml语句的事物时,需要会滚的数据都存储在指定回滚表空间里面。如果说没有指定会滚表空间的数据苦里面,事务的会滚数据就会执行system undo segment。
如果一个会滚表空间正在被某个数据库实例使用或者存储的有某个事务需要会滚的信息,这样的情况下,会滚表空间是不可以被删除的。
有两种方法可以使用回退表空间:
1。在数据库实例启动的时候,在初始化参数文件指定该回退表空间让数据库去选择一个可用的回退表空间
2。在数据库实例启动以后,通过数据库的命令去设置一下alter system set undo_tablespace.
操作:
show parameter undo_tablespace -- 产看当前的回退表空间是什么
--创建一个回退表空间
create undo tablespace undobilly
datafile 'undobilly01.dbf'
size 20m
autoextend on retention guarantee;
--目前还存在一个回退表空间,在删除之前测试一下
drop tablespace UNDOTBS;
ORA-30013: undo tablespace 'UNDOTBS1' is currently in use;
--更换回退表空间
alter system set undo_tablespace=undobilly scope=both;
drop tablespace UNDOTBS;
在切换会滚表空间之后,不一定就能就能删除就的会滚表空间,因为里面还有其他事物的会滚信息在里面。
还是会报ORA-30013的错误。
阅读(571) | 评论(0) | 转发(0) |