Oracle调整内存参后报ORA-00844和ORA-00851

Posted 王.小辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle调整内存参后报ORA-00844和ORA-00851相关的知识,希望对你有一定的参考价值。

数据库服务器内存由16G增加为64G,为充分利用内存资源,对Oracle内存参数做了如下调整:

SQL>alter system set sga_max_size=40960M scope=spfile;
SQL>alter system set sga_target=40960M scope=spfile;
SQL>alter system set pga_aggregate_target=10240M scope=spfile;

在重启数据库时出现如下报错:

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

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

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

C:UsersAdministrator>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:appadminorclpfileinit.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:appadminorclpfileinit.ora.7312017152243;

文件已创建。

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

之后重新修改内存参数值,并重启数据库即可

SQL>alter system set memory_target = 52430m scope = spfile;
SQL>alter system set sga_max_size=40960M scope=spfile;
SQL>alter system set sga_target=40960M scope=spfile;
SQL>alter system set pga_aggregate_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

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 40G
sga_target big integer 40G
SQL> show parameter pga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 10G

OK






















以上是关于Oracle调整内存参后报ORA-00844和ORA-00851的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别