Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONEOracle实例启动不成功。
报错信息如下:
SQL>
startup mount
ORA-01506:
missing or illegal database name
从信息看是缺少了数据库名称,或者数据库名称无效。
查看ORACLE_SID是否和参数文件的db_name一致。
[oracle@centos
dbs]$ more initORCL.ora | grep db_name
*.db_name='ORCL'
[oracle@centos
dbs]$ echo $ORACLE_SID
ORCL
从以上信息可以看出是一致的,但是从9i开始实例启动并不是优先读取pfile这个参数文件,而是spfile.ora这个参数文件,所以pfile的db_name=’ORCL’跟这个问题无关,当然你可以把spfile.ora删除了,那么实例肯定成功的。但是Oracel强烈推荐我们用spfile.ora参数启动实例,所以,接下来看一下spfile.ora里面的内容有没有db_name。而spfile.ora是二进制文件,可以用strings命令查看该文件的内容。
[oracle@centos
dbs]$ strings spfileORCL.ora
C"
C"
ORCL.__java_pool_size=4194304
ORCL.__large_pool_size=4194304
ORCL.__oracle_base='/u01/app/oracle'#ORACLE_BASE
set from environment
ORCL.__pga_aggregate_target=155189248
ORCL.__sga_target=268435456
ORCL.__shared_io_pool_size=0
ORCL.__shared_pool_size=159383552
ORCL.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/ORCL/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/Cacle/flash_recovery_area/ORCL/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP)
(SERVICE=ORCLXDB)'
*.memory_target=422576128
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
以上内容并没有db_name的信息。所以这里只能根据pfile即所谓的init.ora生成spfile了。
SQL>
create spfile from pfile;
File
created.
再试图启动实例
SQL>
startup
ORACLE
instance started.
Total
System Global Area422670336 bytes
Fixed
Size1336960 bytes
Variable
Size322963840 bytes
Database
Buffers92274688 bytes
Redo
Buffers6094848 bytes
Database
mounted.
Database
opened.
启动成功,问题解决。