Oracle调整sga_max_size内存参后报ORA00844和ORA00851 SGA_MAX_SIZE 42949672960 cannot be set to more than MEMORY_TARGET 6979321856. 导致数据库连接不上去,提示ORA01034:ORACLE notavailable

问题:118服务器上的内存显示99.55%

 解决:发现oracle中的中的一个服务占内存很多

 百度说oracle虚拟内存占很大内存

重点操作:cmd命令中 输入 sqlplus / as sysdba 登录oracle

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期日 11月 11 17:22:34 2018

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

已连接到空闲例程。

SQL>alter system set sga_max_size=4096M scope=spfile;
SQL>alter system set sga_target=4096M scope=spfile;
SQL>alter system set pga_aggregate_target=1024M scope=spfile;
SQL>alter system set memory_target = 10240m scope = spfile;

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

Total System Global Area 4.2758E+10 bytes
Fixed Size 2290648 bytes
Variable Size 3221228584 bytes
Database Buffers 3.9460E+10 bytes
Redo Buffers 74391552 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> show parameter sga

其他问题:根据其他博客误操作设置512M内存后出现调整sga_max_size内存参后报ORA-00844和ORA-00851 SGA_MAX_SIZE 42949672960 cannot be set to more than MEMORY_TARGET 6979321856. 导致数据库连接不上去,提示ORA-01034:ORACLE notavailable

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-01034:ORACLE notavailable
ORA-00851: SGA_MAX_SIZE 42949672960 cannot be set to more than MEMORY_TARGET 6979321856.

还有这个错

ORA-27101: shared memory realm does not exist

解决:

该问题是由于memory_target小于sga_max_size导致的,通常memory_target值需为sga+pga内存的和,因此需将memory_target值调大。

先备用的pfile启动Oracle,重新创建spfile,并重启数据库。

复制代码
C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期日 11月 11 17:22:34 2018

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

已连接到空闲例程。

SQL> startup pfile='E:\app\admin\orcl\pfile\init.ora.7312017152243'
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2294256 bytes
Variable Size            3657436688 bytes
Database Buffers         3170893824 bytes
Redo Buffers               17313792 bytes
数据库装载完毕。
数据库已经打开。
SQL> create spfile from pfile='E:\app\admin\orcl\pfile\init.ora.7312017152243';

文件已创建。

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

 设置之后数据库总算是能够连接上了,然后再根据上一阶段的步骤继续修改内存的大小

参考链接:https://www.cnblogs.com/wang-xiaohui/p/9943354.html

原文地址:https://www.cnblogs.com/yr1126/p/15687386.html