【故障处理】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的解决过程的更多相关文章

  1. 转载:oracle11G 已开启监听,但远程连接依旧无监听解决过程

    1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...

  2. oracle11G 已开启监听,但远程连接依旧无监听解决过程

    1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...

  3. .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...

  4. 启动Tomcat一闪而过——分析及解决过程

    启动Tomcat一闪而过--分析及解决过程 嗯,昨天将有关JDK的知识稍微整理了一下,现在稍微整理一下有关Tomcat的! 1:Tomcat是什么? Tomcat是当今世界上使用最为广泛的.开源免费的 ...

  5. 这几天帮一个朋友解决了一点小问题(RF的有些小问题及解决过程)

    最近涉猎自动化太少了,以至于都不经常更新了.最近一个朋友在做移动端自动化的时候遇到了一些小问题来找我解决.本人也不是很精通,只是接触的时间长了一点了.下面就是一些问题和解决过程: 1.她刚过来的时候, ...

  6. nginx负载下站点错误响应会导致其他节点重复响应问题的解决过程

    目录 前言 问题来了 问题又来了 问题分析 困惑 转机 后续 前言: 这是我上周工作过程中的一次解决问题的过程.解决的是nginx负载下站点错误响应导致其他节点重复响应. 我在整理这个记叙文时,在给这 ...

  7. 再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

    在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记 ...

  8. 记录linux /bin被误删除的解决过程

    1.事因: 执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf / 事发时及时ctrl+c中断,导致只有/bin /boot目录删除 2. ...

  9. 记VS2013并行编译导致出错的解决过程

    接前一篇,电脑换了新的,系统是64bit的win8系统,先安装了SQLServer2012,再安装VS2010旗舰版,Stop!为什么还是2010?因为2010太经典了,以至于公司的项目还在用它写项目 ...

随机推荐

  1. Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)

    1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...

  2. 轻量级.NET ORM、高性能.NET ORM 之 SqlSugar 开源ORM - ASP.NET

    3.0最新API: http://www.cnblogs.com/sunkaixuan/p/5911334.html 1.前言/Preface SqlSugar从去年到现在已经一年了,版本从1.0升到 ...

  3. mysql创建每月执行一次的event

    DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ EVENT `dev_sp2p6`.`e_test1` ON SCHEDULEE ...

  4. 【C#】线程之Task

    Task开启线程 有两种启动方式: 1.构造创建线程,然后启动 var taskForAction = new Task(() => { //do something }); taskForAc ...

  5. WebApi传参总动员(二)

    上篇,从最简单的string入手.本篇演示了从请求的输入流中获取实体.api: public class ValuesController : ApiController { [HttpPost] p ...

  6. 优化win2d实现的萤火虫粒子效果

    前几天我发了个技术博客,告诉大家怎样用Win2D 画萤火虫动画 . 那种绘制萤火虫的方式虽然画质高,但是性能不好,萤火虫数量超过50就可以感受到帧数下降. 我今天想到了一种牺牲画质提升性能的绘制方式, ...

  7. Win7配置Go环境

    最近想学习下Go语言,先从最基本的Hello Go开始,搭建Go开发环境 一.下载Go包 由于Go官网国内访问经常有问题,可以从国内的镜像下载: http://www.golangtc.com/ 二. ...

  8. OpenGL 圆角矩形

    本来打算用四个圆角GL_TRIANGLE_FANS+两个矩形来填充, 后来经无情公子的提醒, 突然发现:"尼玛就是一压扁了的圆啊!" 于是全部用GL_TRIANGLE_FANS, ...

  9. 默认选中ComboBox的某一项

    如: 让它选中“统计今天”(控件Name为cobListTime) 方法: 1.cobListTime.Text = cobListTime.Items[0].ToString();//默认选中第一个 ...

  10. RabbitMQ与AMQP协议详解

    1. 消息队列的历史 了解一件事情的来龙去脉,将不会对它感到神秘.让我们来看看消息队列(Message Queue)这项技术的发展历史. Message Queue的需求由来已久,80年代最早在金融交 ...