重建UNDO表空间遭遇ORA-01548
今天开发那边的一套数据库的undo表空间不知道被谁设置成了自动扩展,然后所谓的屋漏偏逢连夜雨的是,
开发人员今天跑了一个很大的事物,然后直接后果就是undo表空间不断被扩展,直到把文件系统写爆了。没办法得把undo表空间删了重建以回收空间啊。安装常规的操作:
先新建一个新的undo表空间:
create undo tablespace tmpundo datafile '/soft/Oracle/oradata/sitjf/tmpundo01.dbf'size 1g autoextend off;
把新建的undo表空间设置为默认undo表空间:
alter system set undo_tablespace=tmpundo;
接下来就是删除原有undo表空间undotbs1了,但是我发现我悲剧了,删除报错:
SQL> DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/soft/oracle/oradata/sitjf/undotbs01.dbf' SIZE 1G AUTOEXTEND OFF;
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1_2181731349$' found, terminate
dropping tablespace
尝试过重启数据库,依然无效,尝试删除数据文件后,依然是报错:
SQL> ALTER DATABASE DATAFILE '/soft/oracle/oradata/sitjf/undotbs01.dbf' OFFLINE DROP;
Database altered.
最后弄的没办法了,还是Google一下吧,于是参照Google上的解决方法顺利的处理了:
1、修改init$ORACLE_SID.ora参数文件,为:
undo_management=manual
undo_retention=10800
undo_tablespace=tmpundo
_CORRUPTED_ROLLBACK_SEGMENTS = (_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$,_SYSSMU1_2181731349$)
及,把undo修改为手动管理,并把默认undo表空间设置为新建的临时过渡undo表空间tmpundo。
最重要的是_CORRUPTED_ROLLBACK_SEGMENTS参数,改参数Oracle会假设事务已经回滚,而不会进行其他的检查。一般UNDO表空间丢失或损害的时候可以尝试使用这个隐含参数。
然后以init$ORACLE_SID.ora参数文件启动数据库
SQL> startup force pfile='?/dbs/initsitjf.ora'
ORACLE instance started.
Total System Global Area 3423965184 bytes
Fixed Size 2211584 bytes
Variable Size 1761607936 bytes
Database Buffers 1644167168 bytes
Redo Buffers 15978496 bytes
Database mounted.
Database opened.
现在就可以删除undotbs1表空间了
SQL> drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.
然后重建undotbs1表空间
SQL> create undo tablespace undotBS1 datafile '/soft/oracle/oradata/sitjf/undotbs01.dbf' size 100M ;
Tablespace created.
重新修改undo表空间为自动管理,并且设置默认undo表空间为undotbs1,通过init参数修改。
undo_management=auto
undo_retention=10800
undo_tablespace=undotbs1
重启数据库,现在就可以删除过渡undo表空间tmpundo了:
SQL> drop tablespace tmpundo including contents;
Tablespace dropped.
现在空间已经回收了,undo表空间也被收缩了。
注:
也可以使用drop rollback命令来删除回滚段_SYSSMU1_2181731349$,undo表空间必须为manual管理方式
DROP ROLLBACK SEGMENT "_SYSSMU1_2181731349$";
查看回滚段
SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME, STATUS FROM DBA_ROLLBACK_SEGS;
=================================================================================--------------------------------------
4) offline the rollback segment:
alter system set "_smu_debug_mode"=4;
使用 _smu_debug_mode=4并使用manual的方式管理UNDO,即将回滚段设置为手工的debug模式
alter rollback segment "_SYSSMU8$" offline;
select status from dba_rollback_segs where segment_id=8;
5) if STATUS=OFFLINE
drop rollback segment "_SYSSMU8$";
alter system set "_smu_debug_mode"=0;
---------------------------------==================================================================
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:https://www.linuxidc.com/Linux/2012-08/68465.htm
重建UNDO表空间遭遇ORA-01548的更多相关文章
- 在PDB级别中如何切换或重建UNDO表空间
Oracle 12.1版本中,UNDO表空间仅存在CDB级别(共享UNDO),来自于AskScuti博客园. Oracle 12.2版本开始,UNDO表空间同时可以存在每个PDB级别(本地UNDO). ...
- oracle重建undo表空间
create undo tablespace UNDOTBS2 datafile 'D:\oracle\product\10.2.0\oradata\ttonline\UNDOTBS02.DBF' s ...
- 总结Oracle8i 的UNDO表空间损坏(ORA-01092及ORA-00600【4193】)情况下的数据库不完全恢复的经历
服务器断电重启导致备份生产环境的恢复目录库无法进行启动,提示Ora-01092例程终止.强行断开连接 查看跟踪日志: Wed Jan 10 08:41:37 2018 Errors in file d ...
- Oracle undo 表空间管理 (摘DAVID)
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...
- 【Oracle】重做undo表空间
重做undo表空间 场景: alert日志,报了如下错误: [oraprod@arpinfo bdump]$ tail -f alert_PROD.log Errors in file /ora115 ...
- Oracle备份恢复之无备份情况下恢复undo表空间
UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...
- 如何删除回滚段状态为NEEDS RECOVERY的undo表空间
环境:RHEL 6.4 + Oracle 11.2.0.4 背景:备份恢复的测试库在一次不完全恢复后,没有来及做有效的全备,又一次数据库故障导致数据库无法正常open. 只能离线部分数据文件打开数据库 ...
- UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...
- Oracle创建新undo表空间最佳实践(包含段检查)
在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ...
随机推荐
- IIS服务器被配置为不列出此目录的内容
使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录浏览”页上,在“操作”窗格中单击“启用”.
- 2017-11-09 中文代码示例之Vuejs入门教程(一)
"中文编程"知乎专栏原链 为了检验中文命名在主流框架中的支持程度, 在vuejs官方入门教程第一部分的示例代码中尽量使用了中文命名. 所有演示都在本地测试通过, 源码在这里. 下面 ...
- Django之初识Ajax
1.简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数据 ...
- iOS ---------NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
遇到此问题的解决办法: 使用<NSURLSessionDelegate>中的didReceiveChallenge方法,方法中的代码如下: - (void)URLSession:(NSUR ...
- Python高级特性:列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 最常见的例子: 生成list [, , , , , , , , , ]可以用li ...
- PyCharm 如何新建Django工程项目
声明:本文使用的IDE是PyCharm 2018.1.2版. 一.File-New Project 二.选择工程类型 强烈建议选项"Pure Python",因为如果选择" ...
- L2-024. 部落
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同 ...
- Scala视图界定
package big.data.analyse.dataSet /** * 视图界定 * Created by zhen on 2018/11/29. */ /*class Pair_NotPerf ...
- windows下VMware-workstation中安装CentOS
windows下VMware-workstation中安装CentOS,可以分两部分,安装虚拟机和安装CentOS虚拟机.具体步骤如下: 一.安装虚拟机 1.安装VMware-workstation, ...
- sql 语句-初级进阶(一)
以下所有的sql语句是根据个人资料进行操作,为方便大家操作联系,附上链接:: 链接:https://pan.baidu.com/s/14LmWyhJPQRzpjURQBKM4mA 提取码:wu1q ...