ORA-12514 解决方法

场景:修改oracle系统参数以后,数据库重启,客户端报 ORA-12514 错误,其实这只是表象,实际并不是Listener的问题。sql

SELECT * FROM V$RESOURCE_LIMIT数据库

根据服务器内存的实际状况,设置对应的参数

alter system set sga_max_size=8G scope=spfile;
alter system set sga_target=8G scope=spfile;
alter system set pga_aggregate_target=4G scope=spfile;
alter system set undo_retention=10080 scope=spfile;
alter system set db_files=1000 scope=spfile;
alter system set processes=2000 scope=spfile;
alter system set session_max_open_files=2000 scope=spfile;
alter system set open_cursors=2000 scope=spfile;
alter system set db_recovery_file_dest_size=100G scope=spfile;windows

若是修改了PGA或者SGA,则必定要有下面这两行,保证 memory_target = SGA + PGA
alter system set memory_max_target=12G scope=spfile;
alter system set memory_target=12G scope=spfile;服务器

 

由于若是漏了这两个参数的设置,数据库启动会失败,而且致使客户端在链接数据库的时候报 ORA-12514,从而误引导你去检查 TNSListener 的设置,本人就深受其害!!!!!session

另外一个要吐槽的地方是,windows环境下的oracle服务,在系统服务里面从新启动数据库,表面上服务重启成功了,是那种很快一闪而过的启动,并且oracle.exe进程也起来了,但就是死活访问不了数据库,也看不到任何错误信息,只看到让你越查越迷惑的ORA-12514错误。oracle

 


建议使用sqlplus进行数据库的重启,这样能够看到不少有价值的信息。this

 

解决方法其实很简单:spa

  • 根据当前系统已经设置生效的spfile创建pfile文件

  create pfile ='d:\initora11g.ora' from spfile;3d

 

  • 修改生成的pfile中 memory_target = pga_aggregate_target + sga_max_size,而后根据修改以后的pfile生成 spfile

    create spfile from pfile = 'd:\initora11g.ora';blog

      startup 到此问题就解决了


 

 

查看设置以后的参数

show parameter target;

另外若是报错: ORA-00845: MEMORY_TARGET not supported on this system则说明是内存超出服务器物理内存数量,修改以后再生成spfile便可 注:spfile 是二进制文件,不能编辑 pfile 是文本文件,能够手动编辑 所以先生成pfile,编辑修改以后再生成系统启动时默认的spfile

相关文章
相关标签/搜索