代码改变世界

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

  潇湘隐者  阅读(2882)  评论(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

编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示