Case
2004-06-26
Oracle诊断案例-Spfile案例一则
情况说明:
系统:SUN Solaris8
数据库版本:9203
问题描述:工程人员报告,数据库在重新启动时无法正常启动.检查发现UNDO表空间丢失.
问题诊断及解决过程如下:
1. 登陆系统检查alert.log文件
检查alert.log文件是通常是我们诊断数据库问题的第一步
在警报日志末尾显示了数据库在Open状态因为错误而异常终止.
系统:SUN Solaris8
数据库版本:9203
问题描述:工程人员报告,数据库在重新启动时无法正常启动.检查发现UNDO表空间丢失.
问题诊断及解决过程如下:
1. 登陆系统检查alert.log文件
检查alert.log文件是通常是我们诊断数据库问题的第一步
SunOS 5.8 login: root "alert_gzhs.log" 7438 lines, 283262 characters ............. |
2. 尝试重新启动数据库
bash-2.03$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.3.0 - Production on 星期四 4月 1 11:43:52 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 已连接到空闲例程。 SQL> startup Total System Global Area 4364148184 bytes ............. |
工程人员报告的问题重现.
3. 检查数据文件
bash-2.03$ cd /u01/ oradata/gzhs |
发现存在文件UNDOTBS2.dbf
4. mount数据库,检查系统参数
bash-2.03$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.3.0 - Production on 星期四 4月 1 11:46:20 2004 SQL> SQL> show parameter spfile |
发现系统没有使用spfile,而初始化参数设置的undo表空间为UNDOTBS1
5. 检查参数文件
发现设置的UNDO表空间正是UNDOTBS1
undo_management=AUTO |
这个设置是极其可疑的.
怀疑参数文件和实际数据库设置不符.
6. 再次检查alert文件
查找对于UNDO表空间的操作
第一部分,创建数据库时的信息:
Sat Feb 7 20:30:12 2004 |
注意,这也是OCP教材上提到的两种创建UNDO表空间的方式之一
第二部分,发现创建UNDOTBS2的记录信息:
Wed Mar 24 20:20:58 2004 Successfully onlined Undo Tablespace 15. |
第三部分,新的UNDO表空间被应用
Wed Mar 24 20:24:25 2004
ALTER SYSTEM SET undo_tablespace='UNDOTBS2' SCOPE=MEMORY;
我们发现问题就在这里,创建了新的UNDO表空间以后,因为使用的是pfile文件,修改的只对当前实例生效,操作人员忘记了修改pfile文件.
如果使用spfile,缺省的修改范围是both,会同时修改spfile文件,就可以避免以上问题的出现.
第四部分,删除了UNDOTBS1的信息
Wed Mar 24 20:25:01 2004 |
这样再次重新启动数据库的时候,问题出现了,pfile中定义的UNDOTBS1找不到了,而且操作实在很久以前,没人能回忆起来,甚至无法得知是什么人的操作。
7. 更改pfile,启动数据库
修改undo表空间
########################################### .... bash-2.03$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.3.0 - Production on 星期四 4月 1 11:55:11 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> select * from v$version; BANNER SQL> exit |
在这里我们可以看到,使用spfile可以免去手工修改pfile文件的麻烦,减少了犯错的可能。
既然Oracle9i给我们提供了这个新特性,就值得我们学习使用它.
历史上的今天
- 2013-06-26 Oracle Database 12c 正式发布-多租户特性嵌入云计算
- 2011-06-26 分享,开拓,延展 - 20110625 ACOUG活动记事
- 2009-06-26 恩墨科技成功签约北京资和信集团
- 2009-06-26 IPC Send Timeout和ORA-29740 Instance Evicted
- 2009-06-26 IBM 的 clverify 与 Oracle 的 cluvfy
- 2008-06-26 使用Linux下script工具记录Oracle输出
- 2007-06-26 摄影习作-小小的太阳
- 2006-06-26 Oracle9iR2 NF:压缩表技术
- 2006-06-26 10g New Feature:MAXTRANS参数已经废弃
- 2006-06-26 送别柔柔 奥运福娃 蒙你没商量
- 2006-06-26 试用IBM DB2 Enterprise Server V9.0
- 2006-06-26 DB2新手上路:DB2命令行连接
- 2005-06-26 《Oracle数据库性能优化》一书热销
- 2005-06-26 Oracle数据库诊断案例-redo log日志组处于高激活状态
很粗心的问题。。
80%的故障都是粗心引起的。