Error desc:
ORA-00821: Specified value of sga_target 16M is too small, needs to be at least 4832M
Solution:
- Find spfile location and copy it to /tmp
[oracle@slce37vmf0003 ~/env]$ asmcmd
ASMCMD> ls
DATA/
ASMCMD> cd data
ASMCMD> ls
ASM/
DB_UNKNOWN/
OIDDB/
slce37v-cls/
ASMCMD> cd oiddb
ASMCMD> ls
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
TEMPFILE/
spfileOIDDB.ora_bk_edong
spfileoiddb.ora
ASMCMD> cp spfileoiddb.ora /tmp/spfileoiddbtest.ora
copying +data/oiddb/spfileoiddb.ora -> /tmp/spfileoiddbtest.ora
ASMCMD> exit
- What we need to do is creating a pfile from spfile then modify parameter back to valid value, then start db from pfile
1). With db not up, we can create pfile from spfile:
SQL> create pfile='/tmp/pfileoiddbtest.ora' from spfile=’/tmp/spfileoiddbtest.ora ';
2). modify the value in pfile (for example)
$ vi initorcl.ora
*.memory_max_target=1583349760
3). startup db with pfile= '/tmp/pfileoiddbtest.ora';
SQL>startup mount –now it will use the pfile
3. Create the new spfile to ASM storage from “good” pfile
SQL> create spfile=’+DATA/ORCL/spfileorcl.ora’from pfile= '/tmp/pfileoiddbtest.ora';
File created.
- Watch the file name in ASM storage has been changed, which means we just had a new spfile.
- Update spfile location in initorcl.ora (usually in $ORACLE_HOME/sdb/)
spfile=’+DATA/ORCL/spfileorcl.ora’ //(At the most times, spfile location has been atomically updated in initorcl.ora, however need to be check for caution)
- Alter spfileorcl file of the other db instance if database is RAC
- Restart databse