请问如何清空UNDO表空间的内容?

[复制链接]
查看11 | 回复8 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
请问如何清空UNDO表空间的内容?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
新建undo表空间
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
事务提交后会自动释放的!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
新建一个undo01
alter user default temporary tablespace
等待当前undo上的transaction完成
drop undo
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
会慢慢自己释放的
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
/*系统UNDO表空间的重建*/
--1. 创建新的UNDO表空间
CREATE UNDO TABLESPACE "UNDOTEMP"
DATAFILE 'G:\ORACLE\ORADATA\HOME\UNDOTEMP.ora' SIZE 5M
/
--2. 在OEM控制台修改系统默认的UNDO表空间名, 由UNDOTBS改为UNDOTEMP, 或通过下面的命令修改默认UNDO表空间的标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTEMP
/
--3. 删除原来的系统默认UNDO表空间, 并重建UNDOTBS
DROP TABLESPACE "UNDOTBS" INCLUDING CONTENTS AND DATAFILES
/
CREATE UNDO TABLESPACE "UNDOTBS"
DATAFILE 'G:\ORACLE\ORADATA\HOME\UNDOTBS01.DBF' SIZE 200M
AUTOEXTEND ON NEXT4096K MAXSIZE500M
/
--4. 在OEM控制台修改系统默认的UNDO表空间名, 由 UNDOTEMP 改为 UNDOTBS, 改回原有的UNDO表空间标识
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS
/
--5. 删除临时创建的UNDO表空间UNDOTEMP
DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES
/
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 eagle_fan 发布
[B]新建一个undo01
alter user default temporary tablespace
等待当前undo上的transaction完成
drop undo [/B]

undo表空间不是temp表空间,建立新的表空间,重新指定初始化参数中的undo_tablespace为这个新的表空间,然后删除原来的即可,如果原来的undo中仍然有事务在运行,那么重新指定undo表空间后原来正在进行的事务并不会移到新的undo中,所以最好等事务完成后再修改。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
是我看错了,undo是用来rollback的
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
如果是你做的DML,在当前session下commit/rollback就可以释放部分undo空间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行