UNDO表空间切换步骤
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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现