代码改变世界

RMAN还原遭遇ORA-32006&ORA-27102错误

2014-12-24 12:19  潇湘隐者  阅读(2871)  评论(0编辑  收藏  举报

案例环境:

 

  服务器A:

           操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 6)

          数据库版本: Oracle Database 10g Release 10.2.0.4.0 32bit Production

  服务器B:

           操作系统 : Oracle Linux Server release 5.7

          数据库版本: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production

 

案例介绍:

使用RMAN将服务器A的备份还原到服务器B过程中,从备份还原了spfile后,启动数据库时遭遇如下错误信息

SQL> startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initepps.ora';
ORA-32006: PARALLEL_AUTOMATIC_TUNING initialization parameter has been deprecated
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
SQL> 

 

clip_image001

出现这个错误是因为在服务器A的数据库实例中开启了这个参数,但是这个参数在ORACLE 10g中已经过时了,所以只需要在initepps.ora中将其删除即可。如下所示

clip_image002

 

那么另外出现ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory,这个是因为服务器A的数据库实例中设置了lock_sga为true值

clip_image003

 

Linux操作系统对每一个任务在物理内存中能够锁住的最大值做了限制。服务器A的max locked memeory值为2097152

clip_image004

 

服务器B的max locked memeory值为64kb,

clip_image005

 

一个任务可以锁住的物理内存最大值是64kbytes,这么小的值根本无法满足我们SGA的几G大小需求,所以解决上面问题有两种方法:

 

  1:如果是为了快速解决这个问题, 可以在initepps.ora中将lock_sga设置为false,然后使用start nomout 启动。

  2: 修改操作系统的max locked memory参数,将其修改为足够大到能容纳sga大小或为无限大

 

参考资料:

http://blog.itpub.net/519536/viewspace-623128

http://blog.itpub.net/26015009/viewspace-1176889