最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

ORA-27126 lock_sga

来源:动视网 责编:小OO 时间:2025-09-30 08:48:50
文档

ORA-27126 lock_sga

Oracle10.2.0.4在AIX平台分配共享内存的机制有了一点变化。原来9i使用lock_sga=true是正常的,但是10.2.0.4则无法启动instance,报错:SQL>startupORA-27126:unabletolocksharedmemorysegmentincoreIBMAIXRISCSystem/6000Error:1:Notowner看起来像是权限问题,但是即使给Oracle用户加system组也没有用。后来Oracle解释说需要给Oracle用户赋予两个capab
推荐度:
导读Oracle10.2.0.4在AIX平台分配共享内存的机制有了一点变化。原来9i使用lock_sga=true是正常的,但是10.2.0.4则无法启动instance,报错:SQL>startupORA-27126:unabletolocksharedmemorysegmentincoreIBMAIXRISCSystem/6000Error:1:Notowner看起来像是权限问题,但是即使给Oracle用户加system组也没有用。后来Oracle解释说需要给Oracle用户赋予两个capab
Oracle10.2.0.4在AIX平台分配共享内存的机制有了一点变化。原来9i使用lock_sga=true是正常的,但是10.2.0.4则无法启动instance,报错:

SQL> startup

ORA-27126: unable to lock shared memory segment in core

IBM AIX RISC System/6000 Error: 1: Not owner

看起来像是权限问题,但是即使给Oracle用户加system组也没有用。后来Oracle解释说需要给Oracle用户赋予两个capability:CAP_BYPASS_RAC_VMM和CAP_PROPAGATE,但这两个capabilities是采用大页内存时才需要设置的,这样说10.2.0.4如果lock_sga的话,默认是要采用大页内存的。当然,大页内存的使用还需要os上设置相关参数的,如果os没有设置,oracle还是要采用4k的内存页。

#chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

#lsuser -a capabilities oracle

oracle capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE

今天在给用户做一个imp导入性能调整的时候遇到以下问题,记录如下aix 5300-07oracle 10204当lock_sga=true时SQL> conn /as sysdbaConnected to an idle instance.SQL> STARTUP UPGRADEORA-27126: unable to lock shared memory segment in coreIBM AIX RISC System/6000 Error:

1: Not owner产生问题的原因是oracle 10204在lock_sga=true时采用大页内存的管理方式需要修改操作系统参数

1、#chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

2、计算页数num_of_large_pages = INT((total_SGA_size-1)/16MB)+13、

vmo -p -o lgpg_regions=num_of_large_pages -o lgpg_size=16777216

如果操作系统不修改大页内存的参数设置,那么oracle也将会按照以前4k来进行处理,那么lock_sga=true也不会启动成功,修改后重启数据库就不会有问题

----------------------------------------------------------------------

AIX上设置LOCK_SGA=TRUE

在aix平台上该参数要结合os的v_pinshm参数一同使用。

v_pinshm参数的设置可以通过vmo 命令来实现。

查看vmo 参数的设置

# vmo -a |grep pinshm

v_pinshm = 0

Metalink上给出修改参考三步骤:

1.$ /usr/sbin/vmo -r -o v_pinshm=1

2.$ /usr/sbin/vmo -r -o maxpin%=percent_of_real_memory

percent_of_real_memory = ((size of SGA / size of physical memory) *100) + 3

3.Set LOCK_SGA parameter to TRUE in the init.ora .

----------------------------------------------------------------------

version:10.2.0.4.0

1.#/usr/sbin/vmo -p -o v_pinshm=1

2.#/usr/sbin/vmo -p -o maxpin%=80

3.#chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE,CAP_NUMA_ATTACH oracle

4.#lsuser -a capabilities oracle

5.SQL> alter system set pre_page_sga=true scope=spfile;

SQL> alter system set lock_sga=true scope=spfile;

6.重启服务器。

7.启动数据库实例。

---------------------------------------------------------------------------------

数lock_sga导致数据无法正常启动

修改数据库的初始化参数lock_sga为true之后,发现启动数据的时候提示错误

ORA-27125: unable to create shared memory segment

HPUX-ia Error: 1: Not owner

操作系统HP-UX B.11.31 U ia

数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - bi

检查OS的shmmax等核心参数,设置都满足oracle安装手册要求的。

恢复该参数为false后数据库能正常启动。

参考后发现该参数需要对OS有适当设置才能使用,如【以下参考csdn上资料】:

lock_sga = true 的问题

由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA 换到虚拟内存(SWAP)。所以我们可以尝试使得SGA 锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows 是无法避免这种情况的。下面我们来参考在不同的几个系统下怎么实现lock_sga

AIX 5L(AIX 4.3.3 以上)

logon aix as root

cd /usr/samples/kernel

./vmtune (信息如下) v_pingshm已经是1

./vmtune -S 1

然后oracle用户修改initSID.ora 中 lock_sga = true

重新启动数据库

HP UNIX

Root身份登陆

Create the file "/etc/privgroup": vi /etc/privgroup

Add line "dba MLOCK" to file

As root, run the command "/etc/setprivgrp -f /etc/privgroup":

$/etc/setprivgrp -f /etc/privgroup

oracle用户修改initSID.ora中lock_sga=true

重新启动数据库

SOLARIS (solaris2.6以上)

8i版本以上数据库默认使用隐藏参数 use_ism = true ,自动锁定SGA于内存中,不用设置lock_sga, 如果设置 lock_sga =true 使用非 root 用户启动数据库将返回错误。

WINDOWS

不能设置lock_sga=true,可以通过设置pre_page_sga=true,使得数据库启动的时候就把所有内存页装载,这样可能起到一定的作用。

文档

ORA-27126 lock_sga

Oracle10.2.0.4在AIX平台分配共享内存的机制有了一点变化。原来9i使用lock_sga=true是正常的,但是10.2.0.4则无法启动instance,报错:SQL>startupORA-27126:unabletolocksharedmemorysegmentincoreIBMAIXRISCSystem/6000Error:1:Notowner看起来像是权限问题,但是即使给Oracle用户加system组也没有用。后来Oracle解释说需要给Oracle用户赋予两个capab
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top