最近Oracle服务经常性的无法连接,当时也没看日志,就凭经验处理查看来数据文件,发件文件空间满了,就新增了一个数据文件。但是没用,没用,没用,一段时间后又登录不上了。然后就去查日志,结果发现英文错误提示:
ORA-12519:TNS:no appropriate service handler found
ORA-12520:TNS:listener could not find available handler for requested type of server
中文错误提示:
ORA-12519: TNS: 没有找到适用的服务处理
ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序
ORA-12518:TNS:监听程序无法为客户机分配可用连接
这种错误有两种可能性:
1:数据库是专用服务器,但是在tnsname.ora配置文件中设置的连接方式是shared,这种情况需要修改tnsname.ora配置文件,这种错误情况一般发生在第一次连接数据库服务器。

2:运行正常的数据库服务器,突然报ORA-12519、ORA-12520、ORA-12518这种错误,一般是因为process不够引起的。需要增大processes参数的值。
检查后发现是第二种情况,那么处理步骤来了。。。

1、登录系统

使用sys,以sysdba权限登录:
在命令窗口输入sqlplus / as sysdba登陆服务,如果报错ORA-12519、或者ORA-12520,请重启任务管理器中的OracleService[SID]服务。

SQL>select count(*) from v$process --当前的数据库连接数

2、登陆成功后查询最大进程数

SQL>select value from v$parameter where name = 'processes';
150

或者使用show parameter processes命令

SQL> show parameter processes;NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer    1
db_writer_processes                  integer    1
job_queue_processes                  integer    10
log_archive_max_processes            integer    1
processes                            integer    150
SQL>

结果是150,逗呢,这么少!赶紧的增加。

3、更改最大进程数,给个1000(不能太大,详情看备注,需要重启数据库)。

SQL>alter system set processes = 1000 scope = spfile;--也可以写成scope=both
alter system set job_queue_processes=10 scope=spfile
ORA-32001: write to SPFILE requested but no SPFILE specified atstartup

好家伙,报错了,翻译过来就是
ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE。
简单来说就是:数据库不是根据spfile文的内容来启动的,改了也白搭。
那么问题来了,该怎么办尼,方法如下!

4、确定数据库是以spfile启动的还是pfile启动

SQL> show parameter spfile;
NAME                                TYPE       VALUE
------------------------------------ -----------------------------------------
spfile                              string

执行结果中的value是空的,意味着oracle数据库是使用pfile启动的,否则就是spfile了。
那么这时候就要将数据库的启动方式切换成spfile了。方法继续如下:

5、修改数据库的启动方式(pfile还是spfile)

  1. 进入数据库的安装文件夹下,我的是D:\app\oracle\product\10.2.0\db_1\dbs有没有存在spfile之类的文件,备份一下(这是好习惯)。

  2. 执行create spfile from pfile

    SQL>create spfile from pfile;
    文件已创建。
    
  3. 执行 shutdown immediate;

    SQL>shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL>
    
  4. 执行startup命令

    SQL> startup
    ORACLE 例程已经启动。Total System Global Area 5.1310E+10 bytes
    Fixed Size                  2187728 bytes
    Variable Size            2.4562E+10 bytes
    Database Buffers         2.6709E+10 bytes
    Redo Buffers               36147200 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
    
  5. 执行show parameters spfile

    SQL> show parameters spfile;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    spfile                               string      D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SPFILECW.ORA
    

value有值了,这时候就可以执行更改最大进程连接数了。

6、更改oracle数据库允许的最大连接数

alter system set processes = 1000 scope = spfile;--也可以写成scop=both
已更改

开始的时候最大连接数只有150,修改为1000,重启数据库。

7、重启数据库方式

第一种:进入操作系统的服务任务管理器中,手动重启oracle…server
第一种:使用命令

SQL>shutdown immediate;
......

完成后再启动数据库。

SQL> startupORACLE 例程已经启动。Total System Global Area  612368384 bytesFixed Size                  1332348 bytesVariable Size             229288836 bytesDatabase Buffers          377487360 bytesRedo Buffers                4259840 bytes数据库装载完毕。数据库已经打开。

好了,到此完成,还显的高大上!

备注

processes这个数值也不能改的很大,大了会导致内存不足。
Oracle 里面有个叫做spfile的动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围
++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改
++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了
++ scope=both 内存和spfile都更改
++ 不指定scope参数,等同于scope=both.

由ORA-12519、ORA-12520错误进而修改oracle的最大连接数相关推荐

  1. 修改oracle数据连接数据库,修改Oracle数据库的连接数

    修改Oracle数据库的连接数 摘(一) 使用sys,以sysdba权限登录: SQL>conn / as sysdba 1. 查看processes和sessions参数 SQL> sh ...

  2. 修改oracle数据连接数据库,如何修改oracle数据库的连接数

    如何修改oracle数据库的连接数 查询数据库当前进程的连接数: select count(*) from v$process; 查看数据库当前会话的连接数: elect count(*) from  ...

  3. 修改Oracle数据库的连接数

    测试了这个,不错. 摘(一) 1. 查看processes和sessions参数 SQL> show parameter processes NAME TYPE VALUE db_writer_ ...

  4. Git clone密码输入错误如何修改

    一步教你解决git clone密码错误需要修改的问题 当git clone时候,第一次会让你输入用户名和密码,如果密码输错的话,之后执行git clone则会直接报错. 报错提示为:fatal: Au ...

  5. c语言调试出错误怎么改,C语言调试常见错误及修改方法(附习题)

    <C语言调试常见错误及修改方法(附习题)>由会员分享,可在线阅读,更多相关<C语言调试常见错误及修改方法(附习题)(12页珍藏版)>请在人人文库网上搜索. 1.1.调试C程序时 ...

  6. 在线html差错,易查分在线编辑功能:发现错误随时修改,不用再重新上传表格!

    原标题:易查分在线编辑功能:发现错误随时修改,不用再重新上传表格!

  7. matlab输入错误怎么修改,matlab 一个错误 怎么修改

    问题描述: matlab 一个错误 怎么修改 clc,clear a=[3 2 1 5 5 4 4 7 0 8 3 11 7 9 9 6 10 2 14 0 17 3 14 6 12 9 10 12 ...

  8. ARCGIS常见拓扑错误的修改方法

    一.先看看在ArcInfo里面的拓扑的实现: 其中在ArcGIS 8以后,Geodatabase成为一种全新的空间数据模型.它采用一种开放的结构将空间数据(包括:矢量.栅格.影像.三维地形等)及其相关 ...

  9. 销售开票税价错误,修改方式!

    销售开票税价错误,修改方式! 销售开票发现价格未含税解决方式: 业务场景: 销售订单–>交货单过账完成 问题原因: 开票时发现应开含税价发票,但是物料主数据中由于维护的是"未税&quo ...

最新文章

  1. 低学历学什么技术有前途可以月入过万?
  2. 目标检测--A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
  3. 在vmware workstation上安装系统
  4. 你会么?图形不正,角度是随机的
  5. Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
  6. 用html制作简单日历,用javascript实现一个简单的日历
  7. Linux系统下MySQL数据库的超级管理员root的密码忘记/忘记密码怎么办?
  8. Java面试题,java工程师求职简历
  9. Android 原生ExoPlayer 解析
  10. Vue简介及HelloWord编写
  11. ARMV8体系结构简介
  12. 鲜花海报,文字与花儿碰上的时候,美妙
  13. Memcached介绍及相关知识
  14. Linux部署安装JDK和Tomcat
  15. txtv28pw河南某中学_有一种寒冷叫不穿秋裤!河南一中学班主任让学生列队挨个检查秋裤...
  16. 迅雷mac版精简安装教程
  17. SN号获取及显示不全的问题
  18. Linux安装DBLE
  19. 初学python:输入某年某月某日,判断这一天是这一年的第几天
  20. x86架构和arm架构处理器分析

热门文章

  1. 仿抖音加载动画(两个小球转动)效果
  2. Jlink的安装、配置与常见错误(附百度网盘windows64位Jlink下载链接)
  3. oracle 10046事件查看,使用oracle的10046事件跟踪SQL语句
  4. Linux 开启端口命令
  5. Mac学习第一步——Mac OS X系统常用多点触摸板操作手势
  6. windows xp进入访客_我的WINDOWS XP1启动到“欢迎使用”时要很长时间才进入卓面...
  7. 关于深度学习中的分类器
  8. qt的重要文件简介pro、moc、pri、prf
  9. 拼夕夕事件反思,底层逆袭,靠拼命加班行吗
  10. mysql格式是什么文件怎么打开_sql文件怎么打开,SQL格式是什么文件?