Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”相关的知识,希望对你有一定的参考价值。

错误内容

SQL> startup
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.
ORA-01078: 处理系统参数失败

问题原因

sga_max_size 必须比 memory_target参数小,错误内容中可以看出 SGA_MAX_SIZE 超过了 MEMORY_TARGET

解决步骤

1、请注意以下内容命令最前面的 $ 或者 SQL>,区分对应的命令是在命令行执行的,还是在连接 sqlplus 后执行的。
2、以下命令中路径中的 /orcl/ 请使用你自己的 SID 值。

1、修改memory_target的值

修改 /u01/app/oracle/admin/orcl/pfile/init.ora.10272020145730 文件中的 memory_target 的值,大于错误中的 SGA_MAX_SIZE 的值(SGA_MAX_SIZE/1024/1024 计算后再增加一些,不要完全等于),如下示例:

memory_target=7680m
#memory_target=1516m

2、使用startup指定pfile启动服务

[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on 星期二 816 18:22:08 2022

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

SQL> conn / as sysdba;
已连接到空闲例程。
SQL> startup pfile=/u01/app/oracle/admin/orcl/pfile/init.ora.10272020145730
ORACLE 例程已经启动。

Total System Global Area 1593835520 bytes
Fixed Size		    8621184 bytes
Variable Size		 1275069312 bytes
Database Buffers	  301989888 bytes
Redo Buffers		    8155136 bytes
数据库装载完毕。
数据库已经打开。
SQL> 

3、生成pfile文件

SQL> create pfile from spfile;

生成的文件位置 /u01/app/oracle/product/12.2.0/dbhome_1/dbs/initorcl.ora

4、编辑initorcl.ora文件

使用 vi 命令编辑 initorcl.ora 文件,修改其中的 *.memory_target=7680m 的值,当然你也可以修改 *.sga_max_size,注意同步修改 *.sga_target*.sga_max_size 一致,如下是本例示例:

*.memory_target=7680m
*.sga_max_size=5368709120
*.sga_target=5368709120

5、备份spfileorcl.ora文件

[root@localhost /]# cd /u01/app/oracle/product/12.2.0/dbhome_1/dbs
[root@localhost dbs]# mv spfileorcl.ora spfileorcl.ora.bak

6、创建生成新的spfile文件

SQL> create spfile from pfile;

pfile默认读取dbs目录中的initorcl.ora文件,或者如下指定绝对路径的方式

SQL> create spfile from pfile='/u01/app/oracle/product/12.2.0/dbhome_1/dbs/initorcl.ora';

命令执行成功后,会生成一个新的 spfileorcl.ora 文件,虽然这个文件是二进制文件不能直接修改,但是我们还是可以通过 cat spfileorcl.ora 检查文件内容是否修改生效。

pfile(initorcl.ora)和spfile(spfileorcl.ora)都是数据库的重要文件,数据库优先使用spfile。
spfile是二进制文件,无法直接进行修改。
pfile是文本文件,可以进行修改,所以这两种文件可根据对方来进行生成。

7、关闭服务重启服务并启动监听

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 5368709120 bytes
Fixed Size		    8632016 bytes
Variable Size		 1845496112 bytes
Database Buffers	 3506438144 bytes
Redo Buffers		    8142848 bytes
数据库装载完毕。
数据库已经打开。
SQL> exit
从 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 断开
[oracle@localhost ~]$ lsnrctl start

(END)

以上是关于Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”的主要内容,如果未能解决你的问题,请参考以下文章

Linux下安装oracle遇到启动监听服务器启动失败

linux下oracle数据库由于参数文件丢失导致的数据库服务启动失败,报“failure in processing system parameters“错误问题解决

oracle创建不了数据库,提示:ORA-01078 处理系统参数失败

在装oracle 11g的时候出现 由于以下错误,Enterprise Manager 配置失败:

Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”

Oracle 启动失败,错误 “SGA_MAX_SIZE 5368709120 cannot be set to more than MEMORY_TARGET 1593835520.”