记一次故障处理总结;

操作系统:windows server 2008 R2

数据库版本:11.2.0.2

故障描述:

外部应用连接数据库,提示连接不正常;

排错过程:

1.首先 检查数据库监听服务状态是否正常

lsnrctl status

监听状态正常!!!


继续!!!

sqlplus / as sysdba;

连接数据库之后,查看数据库启动状态:

select name,open_mode from v$database;

select instance_name,status from v$instance;

上述两条命令都提示报错:

ORA-01034: ORACLE not available

进程 ID: 0

会话 ID: 0 序列号: 0

提示数据库不可用,初步确定原因,数据库启动状态确实不正常!!!可能是死机了,因为windows服务管理界面里边的实例服务状态是正常的。

接着尝试启动数据库:

startup;

ORA-27102: out of memory

startup force;

ORA-27102: out of memory

shutdown immediate;

ORA-27102: out of memory

命令行启动、关闭数据库都不行,报相同的错误:ORA-27102: out of memory

网上查阅资料:

小结:

这里发现一个有趣的地方,windows系统 和 Linux系统遇到这种问题 还有所区别;

当windows环境下的时候,除了sqlplus 命令行操作以外,还可以通过服务图形界面去启动关闭监听和数据库实例,

而当Linux环境下的时候,如果spfile文件有备份成pfile的话,可以根据该pfile去启动数据库,如果没有备份的话,只能从其他相同版本的服务器上去拷贝一份pfile文件,

然后手动修改配置信息,来启动数据库(注意是相同版本的数据库)。

 

其他:


windows环境下cmd无法运行:sqlplus / as sysdba; lsnrctl status

查看当前数据库是以pfile启动的还是spfile:

create pfile from spfile;

11g默认创建的pfile路径,在$ORACLE_BASE/admin/yourdbname/pfile下,

也可以指定pfile生成的路径:

create pfile='E:app\product\11.2\dbhome_1\dbs\initpfile.ora' from spfile;