ORA-00839: SGA_TARGET cannot be modified to the specified value ORACLE添加最大线程数

一.报错信息

linux 启动ORACLE数据库的时候报错

ORA-00839: SGA_TARGET cannot be modified to the specified value

大概意思是SGA_TARGET 里面内容配置的有问题。

二.情境再现(本章可以忽略)

这个问题不会单单出现,平常都会由另一个问题,导致这个问题出现。

由于我JAVA使用的是多线程,访问oracle数据库,而oracle数据库是有线称上限的,超过线称后,所有用户都会被锁死,禁止登陆,甚至DBA用户也无法登陆

2.1. 线称锁死

1.9.2 ORA-00020: maximum number of processes (150) exceeded

2.2线称数量增加

那么,我们看到了,oracle默认的线称数量是150 最大值,那么我就要登陆oracle进行修改了。

1.登陆oracle数据库

注意,此时dba 直接登陆是无法登陆的,所以必须这样登陆

[oracle@jian-3226 ~]$ sqlplus -prelim / as sysdba
2.然后增加线称数量 800

注意这句话99%会报错,因为你没有spfile文件

alter system set processes=800 scope=spfile;  
3.增加个spfile文件
SQL> create spfile from pfile;
4.然后再次执行
alter system set processes=800 scope=spfile;  
5.重启数据库

三.异常报错(本章可忽略)

我添加了个spfile配置文件,结果数据库再启动的时候,提示

ORA-00839: SGA_TARGET cannot be modified to the specified value

数据库此时无法启动,我刚刚添加了个spfile配置文件,那么我们推断出,应该刚刚默认配置文件的有问题,SGA_TARGET参数过大,那么我们就要修正。
结果发现,由于oracle 数据库已经被关闭,会提示数据库没有启动,要修改参数,就必须要启动数据库才行,所以失败。

无法设置,因为数据库并没有启动
ORA-01034: ORACLE not available

四.最终方案(解决ORA-00839: SGA_TARGET)

那么我们只能去修改创建的pfile源文件才行!!

  1. 进入oracle主目录
    如果不知道,可以用查看主目录路径
echo $ORACLE_HOME
  1. 在oracle/product/12.1.0/db_1/dbs/目录下找到 pfile 开头的文件
    我的是叫这个
    在这里插入图片描述
  2. 下载到本地,修改文件里面的内容,之所以报错,就是因为你SGA_TARGET项配置有问题,请注意:【必须按照我这个配置文件的内容进行修改!同时将文件上方所有包含SGA_TARGET的配置必须全部删除】里面乱码没关系,只改你需要的就行。
  3. 在这里插入图片描述
  4. 修改完成后,替换,oracle数据库重新启动,成功。
    在这里插入图片描述
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页