近期处理了一次删除、重建Undo表空间的事情,有些细节还是值得记下来备忘。事情的起因是工程师需要将分布在不同ASM磁盘组里的Oracle数据库文件,迁移到新建的ASM磁盘组,操作过程中,错误的删除了Undo磁盘组的所有文件。

版本 11.2.0.4, RAC环境——测试、准生产环境;下文操作不保证在“生产环境”无害。

Step 1:

考虑新建Undo Tablespace,然后修改各个实例(Instance)的Undo_Tablespace 参数,使用新的Undo,然后删除老的Undo 表空间。

Step 2:

发现,此时无法新建表空间,报错Undo表空间的数据文件不可访问。

分析:我没有去细究原因,我想原因可能有两个,1是因为使用自动Undo管理,创建表空间的操作也需要获取Undo,所以报错??2是因为新建表空间,会触发类似checkpoint之类操作,有Active Tx还需要访问Undo??

Step 3:

修改undo_management=manual,再重试之前步骤

alter system set undo_management=manual sid=‘*’;

Step 4:

drop tablespace undotbs1 including contents and datafiles;

Step 5:

drop tablespace UNDOTBS2 including contents and datafiles

*

ERROR at line 1:

ORA-01548: active rollback segment ‘_SYSSMU1_3780397527$’ found, terminate

dropping tablespace

删除实例(Instance 2)对应的Undo表空间时出错了,ORA-01548 有Active 回滚段。我们可以查询dba_rollback_segs查看这个回滚段的状态。

Step 6:

drop rollback segment ‘_SYSSMU1_3780397527$’;

指定删除该回滚段,操作也报错,错误代码我不记得了——常规操作进行不下去了。

Step 7:

只能尝试一下 _offline_rollback_segments 或者 _corrupted_rollback_segments 之类的隐藏参数了。

Step 8:

生产参数文件(pfile),便于编辑参数配置

SQL> create pfile=‘?/dbs/init_temp.ora’ from spfile;

编辑$ORACLE_HOME/dbs/init_temp.ora文件,添加隐藏参数:

*._offline_rollback_segments=(‘_SYSSMU…’)

Step 9:

SQL> startup pfile=‘?/dbs/init_temp.ora'

使用修改过的参数文件启动数据库(想启动,先得关闭!)

Step 10:

这个时候,如果你直接去删除undo 表空间,效果跟之前一样,仍然是ora-01548错误,但是drop rollback segment 操作可以进行……

Step 11:

其他收尾工作,新建undo 表空间,改回使用spfile管理参数,修改undo 参数...

oracle清理undo空间,删除Oracle Undo表空间相关推荐

  1. oracle删除用户、表空间语句整理以及ORA-23515问题整理

    删除用户 --删除用户及用户对象 drop user TDAP cascade; 删除表空间 --删除空的表空间,但是不包含物理文件 drop tablespace tablespace_name; ...

  2. oracle删除数据释放表空间流程

    生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G 再alter database datafile '...../niptest1' resize 10G; 的时候说超出了范 ...

  3. 翻译mosHow to Switch to a New Undo Tablespace (文档 ID 1951695.1)使用新的undo表空间和删除旧的表空间

    使用新的undo表空间和删除旧的表空间 database 9.2.0.1  and later os   every platform 查看当前undo_tablespace SQL> show ...

  4. Oracle入门(七B)之表空间删除数据文件未删除

    转载自 oracle表空间删除数据文件未删除 清理老旧数据的时候,不太熟悉操作,直接把表空间删了,未删除数据文件, HIS20170927此表空间已删除但数据文件还在,这时新创建一个表空间直接指定到这 ...

  5. Oracle删除用户和表空间

    Oracle删除用户和表空间 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop user ×× cascade 说明: 删除了user,只是 ...

  6. oracle 查询 非系统表,Oracle冷备----删除非系统表空间

    1.备份文件 define fil=/home/Oracle/cdbk.sql define log=/home/oracle/cdbk.log spool &fil prompt conne ...

  7. oracle 11g b表空间什么情况下自动增加,oracle 11g 查看表空间使用情况,表空间创建,表空间添加数据文件,修改数据文件自动增长,删除表空间...

    1.查看表空间以及表空间使用情况 SELECT TABLESPACE_NAME "表空间", To_char(Round(BYTES / 1024, 2), '99990.00') ...

  8. oracle删除用户及表空间

    1.以sysdba用户(最高权限)登录,查找需要删除的用户(普通用户没有删除权限) select * from dba_users; 2.查询需要删除用户对应的表空间 SELECT * FROM Us ...

  9. Oracle删除用户、表空间

    删除命令如下: 删除USER. DROP USER XX CASCADE 删除表空间. DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND D ...

  10. Oracle数据库删除用户和表空间

    1.以system用户登录查找需要删除的用户(普通用户没有删除权限) select * from dba_users; 2.查询需要删除用户对应的表空间 select * from dba_data_ ...

最新文章

  1. 实例讲解之校园网病毒该如何铲除
  2. 2019-2021年中国AI芯片市场预测与展望数据
  3. 数学系列 - 概率论 - 泊松分布和(负)指数分布
  4. Linux下网络socket编程——实现服务器(select)与多个客户端通信
  5. caffe下matlab、python的配置和faster RCNN的运行
  6. 解决:Linux中的CentOS 7的火狐浏览器不能访问服务器
  7. Android近场通信---NFC基础(三)
  8. 一文看懂Java锁机制
  9. 2.5 指数加权平均的偏差修正
  10. 金属零件图像数据集_如何使用包装零件来开发易于维护的数据仓库解决方案
  11. zabbix 自定义监控
  12. ARM指令学习,王明学learn
  13. 安装搭配VUE使用的UI框架ElementUI
  14. 【Proteus仿真】CD4026秒脉冲0-9循环计数
  15. Bootstrap:文字排版与图片样式
  16. js渲染引擎 tempo.js
  17. 什么是CSR以及CSR的作用和生成方法
  18. java target文件夹_Maven不会创建“/ target / m2e-wtp / web-resources”文件夹
  19. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决
  20. k8s每天报告服务器状态信息,[工作随笔] 配置 cron 检查 K8s Pod 存活状态以推送钉钉消息...

热门文章

  1. Problem of Windows Phone8.1 Jumpstart Demo
  2. java自动装箱的好处_Java自动拆装箱为什么不起作用了
  3. 迟到的总结(四)--springmvc的系统学习之文件上传、ajaxjson处理
  4. Transformer(二)--论文理解:transformer 结构详解
  5. Activiti 工作流入门到大神-任亮-专题视频课程
  6. 抖音淘宝电商直播运营SOP计划表格脚本
  7. safari网页翻译
  8. postman使用———(一)登录获取token设置全局变量/环境变量
  9. 天正网络版怎么通过注册表修改服务器地址,如何修改天正的网络服务器地址
  10. 微信小程序·云开发 总结