oracle--ORA 838 Specified value of MEMORY_TARGET is too small, needs to be at le
    http://www.51testing.com/index.php?uid-132585-action-viewspace-itemid-213107
ORA-00844: Parameter not taking MEMORY_TARGET into account, see alert log for more information
MEMORY_TARGET?新参数?虽然在安装过程中瞟过一眼,但是也没太多注意,后来理解MEMORY_TARGET就是原来10g的
sga_target + pga_aggregate_target的总和,越来越智能了。
再看导致错误原因:
由于设置了Oracle的MEMORY_TARGET参数的值小于了SGA_TARGET和PGA_TARGET的总和,因此报错。
但是此时数据库已经启不来了,在数据库不能更改spfile的情况下,我们可以更改pfile,再用pfile启动
SQL> create pfile ='/home/oracle/initora11g.ora' from spfile;
SQL> !echo '*.memory_target=1024m' >>'/home/oracle/initora11g.ora';
将pfile里面的memory_target设置成1G
报错,再次验证memory_target>= sga_target + pga_aggregate_target
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1224M
ORA-01078: failure in processing system parameters
再改
SQL> !echo '*.memory_target=1224m' >>'/home/oracle/initora11g.ora';
SQL> !echo '*.sga_target=0' >>'/home/oracle/initora11g.ora';
报新错误了又
ORA-00845: MEMORY_TARGET not supported on this system
这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小
解决办法:http://yangtingkun.itpub.net/post/468/408235
最终启动成功
启动后再改回从spfile启动
SQL>create spfile from pfile = '/home/oracle/initora11g.ora';
然后再启动一次
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size                  2151248 bytes
Variable Size             511708336 bytes
Database Buffers          549453824 bytes
Redo Buffers                5623808 bytes
Database mounted.
Database opened.
最后
SQL> show parameter target;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
db_flashback_retention_target        integer     1440
fast_start_io_target                 integer     0
fast_start_mttr_target               integer     0
memory_max_target                    big integer 1300M
memory_target                        big integer 1224M
pga_aggregate_target                 big integer 0
sga_target                           big integer 0
简单概括:
create pfile='e:\init.ora' from spfile;
之后在e:\init.ora直接将sga_target=1.6g,1.6g或者转化为1.6*1024*1024*1024
startup pfile=e:\init.ora
create spfile from pfile
startup