hugepage oracle 12c,Hugepages,hugetlb_shm_group与ORA-27125

Hugepages,hugetlb_shm_group与ORA-27125

6ee5639a40442445944d63b514b2dd02.png

问题,解决方法相同:

帮客户解决一个Linux上数据库无法启动的问题。

客户的Linux 5.6 x86-64环境,安装数据库后,启动数据库报错:ORA-27125。

Oracle文档上关于ORA-27125错误的描述为:

ORA-27125: unable to create shared memory segment

Cause: shmget() call failed

Action: contact Oracle support查询了一下,发现问题和linux上的hugetbl有关。

解决方法也很简单,首先检查oracle用户的组信息:

[oracle@yans1 ~]$ id oracle

uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)

[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group

0

下面用root执行下面的命令,将dba组添加到系统内核中:

# echo 501 > /proc/sys/vm/hugetlb_shm_group然后启动数据库,问题消失。

那么hugetlb_shm_group组是什么呢?以下是解释:

hugetlb_shm_group contains group id that is allowed to create SysV shared memory segment using hugetlb page

这里反复提到了HugePage,以下是关于HugePage的说明和解释:

When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4K bytes (it's the default value on many platforms). Those chunks are named pages. Those pages can be swapped to disk, etc.

Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored. Obviously, the more pages you have, the more time it takes to find where the memory is mapped. When a process uses 1GB of memory, that's 262144 entries to look up (1GB / 4K). If one Page Table Entry consume 8bytes, that's 2MB (262144 * 8) to look-up.

Most current CPU architectures support bigger pages (so the CPU/OS have less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.另在安装过程中遇到的操作系统验证错误,可以通过如下方式解决:

在Linux系统中安装oralce的过程中,如果Linux发行版本不是oracle的推荐版本,可能会报如下错误,导致runInstaller无法完成:

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2

Failed <<<<

遇到这个问题,可以通过如下三种方式解决

1、修改Linux的发行标记

如在redhat-5上安装oracle的时候,需要将文件 '/etc/redhat-release'的内容由

Red Hat Enterprise Linux Server release 5 (Tikanga)

修改为Oracle支持的版本

Red Hat Enterprise Linux Server release 4 (Tikanga)

2、runInstaller的时候加上-ignoreSysPreReqs参数,如:

./runInstaller -ignoreSysPreReqs

3.修改oraparam.ini的参数

增加你的系统版本号

参考文献:

http://wiki.debian.org/Hugepages

By eygle on 2011-12-02 14:30 |

Comments (0) |

FAQ | 2921 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值