问题描述: 在项目实施过程中,数据库服务器重新启动后,监听都没有起来,显示ora12514的错误。
试用方法: 一、 修改%Oracle_Home%/network/admin/listener.ora的文件
二、 修改 tnsnames.ora文件
三、 .......其他网上的方法
以上方法都未能起作用,在机器重新启动后还是找不到监听。
问题解决: 后来想到了“冷备份”,重新安装oracle,在本机实验成功,可以解决问题,但这类大动作可是最后的
杀手锏,轻易不要使用,
想想还有无其他简单的办法。
最后通过查看oracle的日志文件 db-1/admin/orcl/bdump/alert_orcl ,发现导致ora-12514的
罪魁祸首是 ora-04031,还有00604、00704,找到可能引起ora-04031的问题可能是系统分配
的共享内存不够所导致。
cmd命令行下执行:
sqlplus/nolog
conn/as sysdba
startup mount
alter system set sga_max_size=1G scope=spfile; (大小可为物理内存的一半)
alter system set shared_pool_size=256M;
shutdown immediate;
startup mount;
alter database open;
问题得以解决。
结论: 1. "冷备份"后重新安装Oracle可以解决很多问题,但其应是最后的选择,慎用;
2. 发现ora-?? 类似的问题,该问题号未必是引起问题的根源,可以通过查看日志进行更精确的定位,
才能对症下药,手到病除。