`

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
分享到:
评论
1 楼 shiyongxin2010 2014-07-05  
我服务器上有两个实例,FMPDB,FMPDB1,由于设置memory_max_target 以及memory_target忽略了后面的数值大小
我当时这么写的
alter system set memory_max_target=8000 scope=spfile;
alter system set memory_target=8000 scope=spfile;
没有加m 导致设置了8000字节,然后重启服务,再使用PL/SQL无法连接数据库了。

然后使用sqlplus提示说memory_max_target is too small.在网上翻到你这篇文章,我按照你的步骤,SQL> create pfile ='/home/oracle/initora11g.ora' from spfile;

执行这一句时,都提示SP2-064:未连接。我想让FMPDB这个实例可以恢复使用怎么做?

FMPDB1是我从FMPDB之前备份的文件中恢复过来的。

相关推荐

Global site tag (gtag.js) - Google Analytics