ORA-00821错误:sga_target参数值过小,数据库启动失败,如何快速修复与远程处理

文章导读
快速修复步骤:1. 通过sqlplus / as sysdba连接到数据库(idle状态);2. 执行startup mount; 3. alter system set sga_target=2G scope=spfile; (根据服务器内存调整,如4G、8G);4. shutdown immediate; 5. startup; 远程处理:使用ssh登录服务器,编辑pfile/spfile或通
📋 目录
  1. A 来源1
  2. B 来源2
  3. C 来源3
  4. D 来源4
  5. E 来源5
  6. F 来源6
  7. G 来源7
A A

快速修复步骤:1. 通过sqlplus / as sysdba连接到数据库(idle状态);2. 执行startup mount; 3. alter system set sga_target=2G scope=spfile; (根据服务器内存调整,如4G、8G);4. shutdown immediate; 5. startup; 远程处理:使用ssh登录服务器,编辑pfile/spfile或通过alert log查看内存需求,直接sqlplus连接调整参数,避免物理访问服务器。

来源1

ORA-00821: Specified value of sga_target is too small, needs to be at least ... 错误原因是因为sga_target设置的值小于系统计算的最小值。解决方法:将sga_target参数设置一个足够大的值。sql> startup mount; sql> alter system set sga_target=2G scope=spfile sid='*'; sql> alter system set sga_max_size=2G scope=spfile sid='*'; sql> shutdown immediate; sql> startup;

来源2

现象:使用spfile启动时报ORA-00821错误。解决:1)启动到mount状态:startup mount; 2)修改sga_target参数:alter system set sga_target=4G scope=both sid='*'; 3)重启数据库:shutdown immediate; startup;

来源3

远程修复:ssh root@服务器IP, su - oracle, sqlplus / as sysdba, startup nomount, create pfile from spfile; vi init.ora, 修改sga_target=4096M, mv init.ora spfile+1.ora, startup;

来源4

错误ORA-00821: Specified value of sga_target string is too small, needs to be at least string。最小值由alert.log给出,根据物理内存的40%设置sga_target。快速修复:sqlplus /nolog, conn /as sysdba, startup mount, show parameter sga_target, alter system set sga_target=6G scope=spfile, shutdown abort, startup。

ORA-00821错误:sga_target参数值过小,数据库启动失败,如何快速修复与远程处理

来源5

在远程服务器上,通过drmi或sqlplus调整:先mount,然后set sga_target为内存的1/2,如总内存16G设8G,重启即可。注意检查/usr/sbin/lsmemory或free -g查看可用内存。

来源6

ORA-00821错误快速处理流程:1. srvctl stop database -d dbname; 2. sqlplus / as sysdba; 3. startup mount restrict; 4. alter system reset sga_target scope=spfile sid='*'; 5. alter system set sga_target=0 scope=spfile sid='*'; 6. shutdown immediate; 7. srvctl start database -d dbname;

来源7

FAQ:
Q: sga_target设多少合适?
A: 一般设为物理内存的40-50%,如16G内存设6-8G。
Q: 远程怎么查看alert log?
A: tail -f $ORACLE_BASE/diag/rdbms/dbname/alert.log。
Q: 如果spfile损坏?
A: startup nomount, create spfile from pfile;。
Q: 11g和12c区别?
A: 12c多租户需指定cdb$root或pdb。