首页 > 其他 > 详细

UNDO表空间切换步骤

时间:2020-06-03 09:24:18      阅读:40      评论:0      收藏:0      [点我收藏+]

1.新建UNDO表空间

create undo tablespace UNDOTBS2 datafile /data01/testdb/undotbs01.dbf size 1G;
alter database datafile /data01/testdb/undotbs01.dbf resize 30g;
alter tablespace UNDOTBS2 add datafile /data01/testdb/undotbs02.dbf size 1g;

2.切换表空间

alter system set undo_tablespace = UNDOTBS2;

3.查看原有表空间的状态

select tablespace_name , status , count(*) from dba_rollback_segs WHERE TABLESPACE_NAME=UNDOTBS1 group by tablespace_name , status;

技术分享图片

 

 4.第3步中有ONLINE的UNDO段,查看是哪个SESSION

  SELECT s.sid,
         s.serial#,
         S.STATUS,
         S.USERNAME,
         S.MODULE,
         S.MACHINE,
         s.sql_id,
         R.TABLESPACE_NAME,
         v.usn,
         segment_name,
         r.status,
         v.rssize / 1024 / 1024 mb
    FROM dba_rollback_segs r,
         v$rollstat v,
         v$transaction t,
         v$session s
   WHERE     r.segment_id = v.usn
         AND v.usn = t.xidusn
         AND t.addr = s.taddr
         AND TABLESPACE_NAME = UNDOTBS1
ORDER BY segment_name;

找到对应的SESSION后,通知对应的team解决

5.待全部OFFLINE后,删除UNDOTBS1表空间

技术分享图片

Drop tablespace UNDOTBS1 including contents and datafiles;

6.删除后,查看OS目录是否有变化

删除后,发现UNDO数据文件所在的目录并没有变化,使用命令sync也没有效果,猜测是这些文件只是索引被删除,实际的内容并没有被删除

查看哪些进程在使用这些文件

losf|grep  delete

技术分享图片

 

 

找到这些进程,杀掉即可

SELECT S.SID,s.serial#,S.USERNAME,S.STATUS,S.MODULE,S.MACHINE FROM V$SESSION S,V$PROCESS P WHERE S.PADDR=P.ADDR AND P.SPID=41487;

 

UNDO表空间切换步骤

原文:https://www.cnblogs.com/monkey6/p/13035166.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!