【故障处理】ORA-30012的解决过程
【故障处理】ORA-30012的解决过程
1 BLOG文档结构图
2 前言部分
2.1 导读和注意事项
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
① ORA-30012的解决过程
Tips:
① 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr)上有同步更新。
② 文章中用到的所有代码、相关软件、相关资料及本文的pdf版本都请前往小麦苗的云盘下载,小麦苗的云盘地址见:http://blog.itpub.net/26736162/viewspace-1624453/。
③ 若网页文章代码格式有错乱,请下载pdf格式的文档来阅读。
④ 在本篇BLOG中,代码输出部分一般放在一行一列的表格中。其中,需要特别关注的地方我都用灰色背景和粉红色字体来表示,比如在下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方;而命令一般使用黄色背景和红色字体标注;对代码或代码输出部分的注释一般采用蓝色字体表示。
List of Archived Logs in backup set 11 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- ------------------- ---------- --------- 1 32 1621589 2015-05-29 11:09:52 1625242 2015-05-29 11:15:48 1 33 1625242 2015-05-29 11:15:48 1625293 2015-05-29 11:15:58 2 42 1613951 2015-05-29 10:41:18 1625245 2015-05-29 11:15:49 2 43 1625245 2015-05-29 11:15:49 1625253 2015-05-29 11:15:53 [ZHLHRDB1:root]:/>lsvg -o T_XLHRD_APP1_vg rootvg [ZHLHRDB1:root]:/> 00:27:22 SQL> alter tablespace idxtbs read write; ====》2097152*512/1024/1024/1024=1G |
本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。
2.2 本文简介
甲方在做灾备切换演练的时候,有一套数据库不能正常启动,基本的报错都是:ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type 。下面记录一下其解决过程。
3 故障分析及解决过程
3.1 故障环境介绍
项目 |
source db |
db 类型 |
RAC |
db version |
11.2.0.3.0 |
db 存储 |
ASM |
OS版本及kernel版本 |
AIX 64位 7.1.0.0 |
3.2 故障发生现象及报错信息
[ZFLHRDB1:root]:/>crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA1.dg ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.LISTENER.lsnr ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.asm ONLINE ONLINE zflhrdb1 Started ONLINE ONLINE zflhrdb2 Started ora.gsd OFFLINE OFFLINE zflhrdb1 OFFLINE OFFLINE zflhrdb2 ora.net1.network ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.ons ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.registry.acfs ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE zflhrdb1 ora.cvu 1 ONLINE ONLINE zflhrdb1 ora.oc4j 1 ONLINE ONLINE zflhrdb1 ora.oralhr.db 1 ONLINE OFFLINE Instance Shutdown 2 ONLINE OFFLINE Instance Shutdown ora.scan1.vip 1 ONLINE ONLINE zflhrdb1 ora.zflhrdb1.vip 1 ONLINE ONLINE zflhrdb1 ora.zflhrdb2.vip 1 ONLINE ONLINE zflhrdb2 [ZFLHRDB1:root]:/>srvctl start db -d oralhr PRCR-1079 : Failed to start resource ora.oralhr.db CRS-5017: The resource action "ora.oralhr.db start" encountered the following error: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type Process ID: 12976284 Session ID: 1421 Serial number: 1 . For details refer to "(:CLSN00107:)" in "/oracle/app/11.2.0/grid/log/zflhrdb1/agent/crsd/oraagent_oracle/oraagent_oracle.log". CRS-2674: Start of 'ora.oralhr.db' on 'zflhrdb1' failed CRS-2632: There are no more servers to try to place resource 'ora.oralhr.db' on that would satisfy its placement policy CRS-5017: The resource action "ora.oralhr.db start" encountered the following error: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-30012: undo tablespace 'UNDOTBS2' does not exist or of wrong type Process ID: 14614730 Session ID: 1421 Serial number: 1 . For details refer to "(:CLSN00107:)" in "/oracle/app/11.2.0/grid/log/zflhrdb2/agent/crsd/oraagent_oracle/oraagent_oracle.log". CRS-2674: Start of 'ora.oralhr.db' on 'zflhrdb2' failed |
3.3 故障分析及解决过程
[ZFLHRDB1:root]:/>oerr ora 30012 30012, 00000, "undo tablespace '%s' does not exist or of wrong type" // *Cause: the specified undo tablespace does not exist or of the // wrong type. // *Action: Correct the tablespace name and reissue the statement. [ZFLHRDB1:root]:/>su - oracle [ZFLHRDB1:oracle]:/oracle>sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Sun Nov 6 23:46:05 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SYS@oraLHR1> startup mount ORACLE instance started. Total System Global Area 3206836224 bytes Fixed Size 2225776 bytes Variable Size 1409288592 bytes Database Buffers 1778384896 bytes Redo Buffers 16936960 bytes Database mounted. SYS@oraLHR1> select * from v$tablespace; TS# NAME INC BIG FLA ENC ---------- ------------------------------ --- --- --- --- 0 SYSTEM YES NO YES 1 SYSAUX YES NO YES 3 TEMP NO NO YES 5 USERS YES NO YES 6 ILHRDATA YES NO YES 7 ILHRIND YES NO YES 8 ILHRLOG YES NO YES 9 UNDO1 YES NO YES 10 UNDO2 YES NO YES 9 rows selected. SYS@oraLHR1> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA1/oralhr/spfileoralhr.ora SYS@oraLHR1> SELECT a.SID, a.VALUE FROM v$spparameter a WHERE a.NAME LIKE '%undo_tablespace%' ; SID VALUE -------------------- ----------- oraLHR2 UNDOTBS2 oraLHR1 UNDOTBS1 * UNDO2 |
可以看到UNDO表空间的名称和从控制文件中查到的名称不一致,下面修改SPFILE文件中有关UNDO表空间的部分,如下所示:
SYS@oraLHR1> ALTER SYSTEM SET undo_tablespace='UNDO1' SID='oraLHR1'; System altered. SYS@oraLHR1> ALTER SYSTEM SET undo_tablespace='UNDO2' SID='oraLHR2'; System altered. SYS@oraLHR1> SELECT a.SID, a.VALUE FROM v$spparameter a WHERE a.NAME LIKE '%undo_tablespace%'; SID VALUE --------------- ------ oraLHR1 UNDO1 oraLHR2 UNDO2 <<<<<<<<<------- 已经和控制文件中记录的一致了,下面启动数据库 SYS@oraLHR1> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options [ZFLHRDB1:oracle]:/oracle>srvctl stop db -d oralhr -o abort [ZFLHRDB1:oracle]:/oracle>srvctl start db -d oralhr [ZFLHRDB1:oracle]:/oracle>crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA1.dg ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.LISTENER.lsnr ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.asm ONLINE ONLINE zflhrdb1 Started ONLINE ONLINE zflhrdb2 Started ora.gsd OFFLINE OFFLINE zflhrdb1 OFFLINE OFFLINE zflhrdb2 ora.net1.network ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.ons ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 ora.registry.acfs ONLINE ONLINE zflhrdb1 ONLINE ONLINE zflhrdb2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE zflhrdb1 ora.cvu 1 ONLINE ONLINE zflhrdb1 ora.oc4j 1 ONLINE ONLINE zflhrdb1 ora.oralhr.db 1 ONLINE ONLINE zflhrdb1 Open 2 ONLINE ONLINE zflhrdb2 Open ora.scan1.vip 1 ONLINE ONLINE zflhrdb1 ora.zflhrdb1.vip 1 ONLINE ONLINE zflhrdb1 ora.zflhrdb2.vip 1 ONLINE ONLINE zflhrdb2 [ZFLHRDB1:oracle]:/oracle>srvctl status db -d oralhr Instance oraLHR1 is running on node zflhrdb1 Instance oraLHR2 is running on node zflhrdb2 |
4 故障处理总结
ORA-30012基本是由于参数文件中的undo_tablespace的值和控制文件中记录的值不一致导致的。可以使用ALTER SYSTEM修改或者直接修改参数文件中有关undo_tablespace的部分和控制文件中的一致即可。
关于为何会出现参数文件和控制文件中undo_tablespace的值不一致的情况,这个可以从告警日志中去查询,这里就不深究了,毕竟是个测试库,也许很多年都没人使用了吧。
About Me
............................................................................................................................... ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新 ● 本文itpub地址:http://blog.itpub.net/26736162/viewspace-2127949/ ● 本文博客园地址:http://www.cnblogs.com/lhrbest/p/6040312.html ● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/ 微信群:私聊 ● 联系我请加QQ好友(642808185),注明添加缘由 -06 23:00 ~ 2016-11-07 12:00 在中行完成 ● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解 ● 版权所有,欢迎分享本文,转载请保留出处 ............................................................................................................................... 手机长按下图识别二维码或微信客户端扫描下边的二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,免费学习最实用的数据库技术。 |
【故障处理】ORA-30012的解决过程的更多相关文章
- 转载:oracle11G 已开启监听,但远程连接依旧无监听解决过程
1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...
- oracle11G 已开启监听,但远程连接依旧无监听解决过程
1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...
- .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...
- 启动Tomcat一闪而过——分析及解决过程
启动Tomcat一闪而过--分析及解决过程 嗯,昨天将有关JDK的知识稍微整理了一下,现在稍微整理一下有关Tomcat的! 1:Tomcat是什么? Tomcat是当今世界上使用最为广泛的.开源免费的 ...
- 这几天帮一个朋友解决了一点小问题(RF的有些小问题及解决过程)
最近涉猎自动化太少了,以至于都不经常更新了.最近一个朋友在做移动端自动化的时候遇到了一些小问题来找我解决.本人也不是很精通,只是接触的时间长了一点了.下面就是一些问题和解决过程: 1.她刚过来的时候, ...
- nginx负载下站点错误响应会导致其他节点重复响应问题的解决过程
目录 前言 问题来了 问题又来了 问题分析 困惑 转机 后续 前言: 这是我上周工作过程中的一次解决问题的过程.解决的是nginx负载下站点错误响应导致其他节点重复响应. 我在整理这个记叙文时,在给这 ...
- 再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)
在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记 ...
- 记录linux /bin被误删除的解决过程
1.事因: 执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf / 事发时及时ctrl+c中断,导致只有/bin /boot目录删除 2. ...
- 记VS2013并行编译导致出错的解决过程
接前一篇,电脑换了新的,系统是64bit的win8系统,先安装了SQLServer2012,再安装VS2010旗舰版,Stop!为什么还是2010?因为2010太经典了,以至于公司的项目还在用它写项目 ...
随机推荐
- Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)
1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...
- 轻量级.NET ORM、高性能.NET ORM 之 SqlSugar 开源ORM - ASP.NET
3.0最新API: http://www.cnblogs.com/sunkaixuan/p/5911334.html 1.前言/Preface SqlSugar从去年到现在已经一年了,版本从1.0升到 ...
- mysql创建每月执行一次的event
DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ EVENT `dev_sp2p6`.`e_test1` ON SCHEDULEE ...
- 【C#】线程之Task
Task开启线程 有两种启动方式: 1.构造创建线程,然后启动 var taskForAction = new Task(() => { //do something }); taskForAc ...
- WebApi传参总动员(二)
上篇,从最简单的string入手.本篇演示了从请求的输入流中获取实体.api: public class ValuesController : ApiController { [HttpPost] p ...
- 优化win2d实现的萤火虫粒子效果
前几天我发了个技术博客,告诉大家怎样用Win2D 画萤火虫动画 . 那种绘制萤火虫的方式虽然画质高,但是性能不好,萤火虫数量超过50就可以感受到帧数下降. 我今天想到了一种牺牲画质提升性能的绘制方式, ...
- Win7配置Go环境
最近想学习下Go语言,先从最基本的Hello Go开始,搭建Go开发环境 一.下载Go包 由于Go官网国内访问经常有问题,可以从国内的镜像下载: http://www.golangtc.com/ 二. ...
- OpenGL 圆角矩形
本来打算用四个圆角GL_TRIANGLE_FANS+两个矩形来填充, 后来经无情公子的提醒, 突然发现:"尼玛就是一压扁了的圆啊!" 于是全部用GL_TRIANGLE_FANS, ...
- 默认选中ComboBox的某一项
如: 让它选中“统计今天”(控件Name为cobListTime) 方法: 1.cobListTime.Text = cobListTime.Items[0].ToString();//默认选中第一个 ...
- RabbitMQ与AMQP协议详解
1. 消息队列的历史 了解一件事情的来龙去脉,将不会对它感到神秘.让我们来看看消息队列(Message Queue)这项技术的发展历史. Message Queue的需求由来已久,80年代最早在金融交 ...