oracle 共享内存段探究

本文介绍如何使用ipcs检查Oracle的共享内存段,并通过ipcrm释放内存资源,同时展示了sysresv工具的应用。此外,还提供了实例操作步骤及可能出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文欲介绍之技术点如下:
① ipcs的使用
② ipcrm释放oracle内存段
③ sysresv的使用

1 一般情况下,我们是不允许oracle的共享内存段跨区的,即是我们的共享内存段要永远放在一个内存段中。一般输入三部分内容。

[oracle@uplooking ~]$ ipcs -a
`
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 720901     oracle     600        393216     2          dest         
0x00000000 753677     oracle     600        393216     2          dest         
0x00000000 786449     oracle     600        393216     2          dest         

0x00000000 1081370    oracle     600        393216     2          dest         
0x00000000 1114139    oracle     600        393216     2          dest         
0x00000000 1146908    oracle     600        393216     2          dest         
0x00000000 1212446    oracle     600        393216     2          dest         
0x00000000 107774007  oracle     600        393216     2          dest         
0x00000000 117440568  oracle     600        393216     2          dest         
0x00000000 118194233  oracle     600        393216     2          dest         
0x00000000 183369786  oracle     600        393216     2          dest         
0x00000000 183402555  oracle     600        393216     2          dest         

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x25e3d294 12386307   oracle     640        152       
0x25e3d295 12419076   oracle     640        152       
0x25e3d296 12451845   oracle     640        152       
0x0674cb84 16121862   boco       640        187       
0x0674cb85 16154631   boco       640        187       
0x0674cb90 16515090   boco       640        187       
0x0674cb91 16547859   boco       640        187       
0x0674cb92 16580628   boco       640        187       
0x0674cb93 16613397   boco       640        187       
0x0674cb94 16646166   boco       640        187       

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

2 sysresv的使用,可以查看对应实例的共享内存段!

[oracle@uplooking ~]$ which sysresv
/opt/oracle/product/11.2.0/db/bin/sysresv
[oracle@uplooking ~]$ sysresv

IPC Resources for ORACLE_SID "hdp" :
Shared Memory:
ID      KEY
172195872   0x00000000
172228641   0x00000000
172261410   0x742d11d4
Semaphores:
ID      KEY
12386307    0x25e3d294
12419076    0x25e3d295
12451845    0x25e3d296
Oracle Instance alive for sid "hdp"

3 ipcrm释放这些占用的内存区

 [oracle@uplooking ~]$ ipcrm -m 172195872
 [oracle@uplooking ~]$ ipcrm -m 172195872
ipcrm: invalid id (172195872)
 [oracle@uplooking ~]$ ipcrm -m 172228641
[oracle@uplooking ~]$ ipcrm -m 172261410

4 此时再去查看

[oracle@uplooking ~]$ sysresv

IPC Resources for ORACLE_SID "hdp" :
Shared Memory
ID      KEY
No shared memory segments used
Semaphores:
ID      KEY
12386307    0x25e3d294
12419076    0x25e3d295
12451845    0x25e3d296
Oracle Instance not alive for sid "hdp"

5 登录实例

[oracle@uplooking ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 24 10:17:56 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

6 重新启动
如果此时直接,启动的话,看看alert.log中的信息

ALTER DATABASE   MOUNT
sculkget: failed to lock /opt/oracle/product/11.2.0/db/dbs/lkHDPDG exclusive
sculkget: lock held by PID: 30838
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 30838
ORA-1102 signalled during: ALTER DATABASE   MOUNT...
Instance terminated by PSP0, pid = 30838
Errors in file /opt/oracle/diag/rdbms/hdpdg/hdp/trace/hdp_psp0_30838.trc:
ORA-27300: OS system dependent operation:semctl failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwrm1
ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1
Fri Jun 24 10:21:20 2016
Instance termination got error 27120 from SGA destruction.
  Error cleared. Process exiting.

实例非正常关闭,文件还在锁定中!还会重新正常关闭,再启动实例吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值