用pfile可以启动,但是用这个pfile生成的SPFILE却不法启动,求解
C:\Documents and Settings\gaoqi>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 24 16:22:49 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORA-03113: 通信通道的文件结束
SQL> startup pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.628200622196'
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> exit
已断开连接
C:\Documents and Settings\gaoqi>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 24 16:23:51 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.628200622196'
ORACLE 例程已经启动。
Total System Global Area 369098752 bytes
Fixed Size 1249056 bytes
Variable Size 113246432 bytes
Database Buffers 251658240 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> create spfile from pfile;
文件已创建。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORA-03113: 通信通道的文件结束
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORA-03113: 通信通道的文件结束
出现这样的问题,让俺百思不得其解,明明创建路径是正确的啊,为什么会这样了,检查生成的spfile文件内容,发现没有什么东西存在,检查文件大小,是pfile文件的0.5倍大小,spfile 里面怎么没有参数存在呢?正常的spfile文件里面是有参数存在的啊,可能问题就出在这里了,用极端的方式再次创建:
SQL>create spfile='D:\oracle\product\10.2.0\db_1/dbs/spfilehuiches.ora' from pfile='D:\oracl
e\product\10.2.0\db_1\dbs\INIThuiches.ORA';
文件已创建。
SQL>start force
ORACLE 例程已经启动。
Total System Global Area 369098752 bytes
Fixed Size 1249032 bytes
Variable Size 109052152 bytes
Database Buffers 251658240 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_1\
DBS\SPFILEHUICHES.ORA
SQL>
终于成功了,看来是默认路径出的问题啊,create spfile from pfile 命令中,默认pfile的路径在ORACLE_HOME\database下,所以用create spfile from pfile的时候应该注意了,假如你的pfile不在默认路径下(或者在默认路径下有一个空的pfile),那你就有可能创建一个空的spfile,而导致数据库利用spfile无法启动而没有报有效错误的情况发生.