在使用准备好的pfile文件创建spfile文件时,邂逅可爱的“600”内部错误。记录在此。
此问题与《【CREATE DATABASE】因缺失单引号导致手工建库命令执行报错的故障排查》(http://space.itpub.net/519536/viewspace-695060)中提到的问题原因及排查方法是一样的,请交叉参考。
1.问题现象
1)准备好的pfile文件如下
secdb@secdb /u01/app/oracle/product/10.2.0/db_2/dbs$ cat initsecdb.ora
db_name=secdb
db_files = 80 # SMALL
db_file_multiblock_read_count = 8 # SMALL
#db_block_buffers = 100 # SMALL
#shared_pool_size = 3500000 # SMALL
log_checkpoint_interval = 10000
processes = 300 # SMALL
parallel_max_servers = 5 # SMALL
log_buffer = 32768 # SMALL
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = TRUE
control_files = ('/u01/app/oracle/oradata/cfile/ora_control1.ctl','/u01/app/oracle/oradata/cfile/ora_control2.ctl',/u01/app/oracle/oradata/cfile/ora_control3.ctl')
sga_max_size=300M
sga_target=300M
2)使用该pfile创建spfile时抛出ORA-00600错误
secdb@secdb /u01/app/oracle/product/10.2.0/db_2/dbs$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 12 22:37:10 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
NotConnected@> create spfile from pfile;
create spfile from pfile
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kspsetpao1], [464], [444], [*], [sga_max_size], [4], [], []
注:此处的操作系统平台是32位Linux,在solaris操作系统上现象相同。
2.问题原因
这个600错误对应的参数是“kspsetpao1”,也算是一个比较典型的问题。是由于pfile中出现引号不匹配导致的。
使用“语法高亮显示”技巧对pfile文件进行查看,很容易发现其中控制文件对应的参数中的单引号没有匹配完整。
3.问题处理
1)调整pfile中引号不匹配内容
错误的内容:
control_files = ('/u01/app/oracle/oradata/cfile/ora_control1.ctl','/u01/app/oracle/oradata/cfile/ora_control2.ctl',/u01/app/oracle/oradata/cfile/ora_control3.ctl')
正确的内容应该是:
control_files = ('/u01/app/oracle/oradata/cfile/ora_control1.ctl','/u01/app/oracle/oradata/cfile/ora_control2.ctl','/u01/app/oracle/oradata/cfile/ora_control3.ctl')
2)重新生成spfile文件
secdb@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 12 23:29:54 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
NotConnected@> create spfile from pfile;
File created.
问题处理完毕。
4.小结
事实证明,无论操作多么熟练,只要有可能出错的地方,就一定会出现错误。这便是大名鼎鼎的“墨菲定律”使然!
Good luck.
secooler
11.05.12
-- The End --