问题描述
oracle数据库启动出现错误:
SQL> startup mount
ORA-00821: Specified value of sga_target 2352M is too small, needs to be at least 4352M
问题分析
sga_max_size 就是指定Oracle最大能够使用的内存,是个静态参数。
Oracle启动时,如果SGA各个组件的内存大小之和大于sga_max_size,则sga_max_size会设置为SGA各组件的大小之和。
错误提示中显示设置的之不能小于 4352M,这个需要修改pfile文件
解决方案1
1、首先登录sqlplus客户端,生成pfile文件
$ sqlplus / as sysdba
SQL> create pfile from spfile;
会在当前目录下生成一个pfile文件。
2、修改生成的pfie文件
我修改为5G大小,找一个字节转换器转换为5368709120
...
*.sga_target=5368709120
...
3、然后启动
$ sqlplus / as sysdba
SQL> startup pfile='/home/oracle/initOrac.ora';
解决方案2
直接修改默认的pfile文件,我的数据库实例名为orcl所以配置文件为initorcl.ora
vim $ORACLE_HOME/dbs/initorcl.ora
然后重启
$ sqlplus / as sysdba
SQL> startup
启动成功。