ORA-00821_ Specified value of sga_target 1280M is too small, needs to be at least 1744M

1.问题描述:oracle数据库启动出现错误:

idle 25-JUL-23> startup
ORA-00821: Specified value of sga_target 1280M is too small, needs to be at least 1744M

2.问题分析

sga_max_size 就是指定Oracle最大能够使用的内存,是个静态参数。
Oracle启动时,如果SGA各个组件的内存大小之和大于sga_max_size,则sga_max_size会设置为SGA各组件的大小之和。
错误提示中显示设置的之不能小于 1744M,这个需要修改pfile文件

3.解决方案1,推荐

1、首先登录sqlplus客户端,生成pfile文件

$ sqlplus / as sysdba
SQL> create pfile from spfile;

会在当前目录下生成一个pfile文件。
2、修改生成的pfie文件
我修改为1755MB大小,找一个在线字节转换器转换为1840250880

cd "/u01/app/oracle/product/11.2.0/db/dbs"
[root@hrbqcdatanew:/u01/app/oracle/product/11.2.0/db/dbs]$ ls -l
total 32
...
-rw-r--r--  1 oracle oinstall 2071 Jul 25 17:48 inittopicisnew.ora
...
[root@hrbqcdatanew:/u01/app/oracle/product/11.2.0/db/dbs]$ vi inittopicisnew.ora
...
*.sga_target=1840250880
...

3、然后启动

$ sqlplus / as sysdba
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db/dbs/inittopicisnew.ora'; 
SQL> create spfile from pfile;
File created.

4.解决方案2

直接修改默认的pfile文件,我的数据库实例名为topicisnew所以配置文件为inittopicisnew.ora

vim $ORACLE_HOME/dbs/initorcl.ora
*.open_cursors=1000
*.parallel_max_servers=64
*.pga_aggregate_target=331350016
*.processes=3000
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_limit=TRUE
*.resource_manager_plan='force:'
*.sec_case_sensitive_logon=FALSE
*.session_cached_cursors=300
*.sga_max_size=1328545792
*.sga_target=1328545792
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'

然后重启

$ sqlplus / as sysdba
SQL> startup

你可能感兴趣的:(oracle,ORA-00821)