ORA-30012错误的解决过程

1、故障现象:

data guard切换时,原来的standby节点无法启动,报ORA-30012错误,内容为:

undo tablespace '%s' does not exist or of wrong type

2、问题定位:

因为是standby节点无法启动,怀疑primary节点和standby节点的undo_tablespace名称不同:

a)、在primary节点上检查undo参数:

SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDTBS1

b)、因为备用节点无法启动,且spfile为裸设备,使用strings命令检查undo参数

$ strings '/dev/rlv_spfile'|grep -i undo
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'

c)、找到错误的原因了

在primary节点上,undo_tablespace是UNDTBS1,而standby节点上undo_tablespace是UNDOTBS1,undo表空间名称不同,但切换过来后,在standby节点上不存在UNDOTBS1表空间,只要standby节点上将undo_tablespace参数改为UNDTBS1就可以

3、解决过程

在standby节点上操作:

a)、关闭数据库,用spfile成生pfile

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> create pfile='/tmp/initorcl.ora' from spfile='/dev/rlv_spfile';

File created.

b)、修改生成的pfile文件,将*.undo_tablespace='UNDOTBS1'修改为*.undo_tablespace='UNDTBS1'

c)、用修改过的pfile生成spfile

[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Nov 28 10:24:00 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> create spfile='/dev/rlv_spfile' from pfile='/tmp/initorcl.ora';

File created.

d)、启动数据库

SQL> startup;
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218292 bytes
Variable Size 71305484 bytes
Database Buffers 88080384 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL>
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22049049/viewspace-1029146/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22049049/viewspace-1029146/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值