ipcs 與 svmon 的對應

wmlm發表於2013-01-08

ipcs 與 svmon 的對應

[ora:root:/] ipcs -aS
IPC status from /dev/mem as of Sun Jan 6 16:45:21 BEIST 2013
T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME
Shared Memory:
m 0 0x58002275 --rw-rw-rw- root system root system 1 134217728 82278 82278 9:03:16 no-entry 9:03:16
SID :
0x1001a2
m 1048577 0x0d000b4a --rw-rw---- root system root system 1 1440 111022 794846 8:35:39 8:35:39 9:13:00
SID :
0x3d0878
m 1048578 0x7800000f --rw-rw-rw- root system root system 1 268435456 242144 414070 9:04:04 16:30:32 9:04:04
SID :
0x1a86b7
m 1048579 0x7800000e --rw-rw-rw- root system root system 1 16777216 242144 414070 9:04:04 16:30:32 9:04:04
SID :
0x2586c9
m 27262980 0x60062f84 --rw-r----- oracle dba oracle dba 8 336871424 847930 303614 11:43:50 11:43:51 18:15:20
SID :
0x133924 0x1539a8
m 3145733 0xfa90beec --rw-r----- oracle dba oracle dba 21 353648640 430508 766140 16:44:23 16:44:23 8:35:15
SID :
0x12ae27 0x192930
[ora:root:/] svmon -P |grep 192930 |wc

21

[@more@]

在處理故障時使用ipcs的例子


例子一: 因重建oracle使用者和組引起的ORA-27121錯誤

# su - oracle
hostname:/home/oracle$sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Jun 3 09:29:35 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORA-27121: unable to determine size of shared memory segment
IBM AIX RISC System/6000 Error: 13: Permission denied

初步判斷是共享記憶體段出現了問題
hostname:/orclvg/app/oracle/admin/orcl/dpdump$ipcs -pmb
IPC status from /dev/mem as of Fri Jun 3 09:38:32 BEIDT 2011
T ID KEY MODE OWNER GROUP SEGSZ CPID LPID
Shared Memory:
m 0 0x58002118 --rw-rw-rw- root system 134217728 2490476 2490476
m 1 0x78000016 --rw-rw-rw- root system 16777216 3276970 15532212
m 2 0x78000018 --rw-rw-rw- root system 268435456 3276970 15532212
m 3 0x21002004 --rw------- pconsole system 10485760 3604658 3604658
m 4 0x0d000985 --rw-rw---- root system 1440 5832704 11731184
m 6291461 0xed7881a4 --rw-rw---- 202 201 3338678272 6488174 15401140
在做測試的時候,由於測試機的oracle使用者和dba組的id和生產庫不一致,所以刪除後重建了。

解決步驟
1 --殺掉oracle相關的程式
ps -ef|grep $ORACLE_SID|
> grep -v grep|awk '{print $2}'|xargs -i kill -9 {}
2 然後繼續檢視:
# ipcs -pmb
IPC status from /dev/mem as of Fri Jun 3 09:46:47 BEIDT 2011
T ID KEY MODE OWNER GROUP SEGSZ CPID LPID
Shared Memory:
m 0 0x58002118 --rw-rw-rw- root system 134217728 2490476 2490476
m 1 0x78000016 --rw-rw-rw- root system 16777216 3276970 12910804
m 2 0x78000018 --rw-rw-rw- root system 268435456 3276970 12910804
m 3 0x21002004 --rw------- pconsole system 10485760 3604658 3604658
m 4 0x0d000985 --rw-rw---- root system 1440 5832704 11731184
m 6291461 0xed7881a4 --rw-rw---- 202 201 3338678272 6488174 15335556
3 ipcrm -m 6291461
4 重新啟動資料庫
SQL> startup
ORACLE instance started.
Total System Global Area 3323752448 bytes
Fixed Size 2142760 bytes
Variable Size 1778388440 bytes
Database Buffers 1526726656 bytes
Redo Buffers 16494592 bytes
Database mounted.
Database opened.
問題解決
hostname:/home/oracle$ipcs -pmb
IPC status from /dev/mem as of Fri Jun 3 09:58:20 BEIDT 2011
T ID KEY MODE OWNER GROUP SEGSZ CPID LPID
Shared Memory:
m 0 0x58002118 --rw-rw-rw- root system 134217728 2490476 2490476
m 1 0x78000016 --rw-rw-rw- root system 16777216 3276970 12976186
m 2 0x78000018 --rw-rw-rw- root system 268435456 3276970 12976186
m 3 0x21002004 --rw------- pconsole system 10485760 3604658 3604658
m 4 0x0d000985 --rw-rw---- root system 1440 5832704 11731184
m 6291662 0xed7881a4 --rw-rw---- oracle dba 3338678272 15859766 13697088


例子二: SGA分配的記憶體與ipcs中檢視的記憶體
[node1:root] ipcs -ma
IPC status from /dev/mem as of Mon Jan 7 10:45:34 BEIST 2013
T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME
Shared Memory:
m 1048576 0x0d00097f --rw-rw---- root system root system 1 1440 2555904 5767420 7:42:38 9:53:21 16:30:36
m 1048577 0x7800000e --rw-rw-rw- root system root system 1 268435456 4784280 11468890 15:16:56 10:39:05 15:16:56
m 1048578 0x78000009 --rw-rw-rw- root system root system 1 16777216 4784280 11468890 15:16:56 10:39:05 15:16:56
m 2097155 0xa8c203cc --rw-rw---- grid dba grid dba 25 285220864 8192008 11468908 10:42:36 10:42:36 11:46:20
m 749731844 0x3e246520 --rw-rw---- oracle dba oracle dba 46 859844608(此處為820M) 12255430 18284572 10:44:52 10:45:22 14:59:43
[node1:root] su - oracle
[node1:oracle] sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 7 10:45:52 2013

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show sga

Total System Global Area 855982080 bytes (此處為816M ipcs中看到的是 859844608 中間差了4M 可以認為都是820M )
Fixed Size 2211584 bytes
Variable Size 671088896 bytes
Database Buffers 176160768 bytes
Redo Buffers 6520832 bytes
SQL>

另外一個例子:
2.4、服務不能正常啟動的問題在實際的維護工作中,經常會出現服務不能正常啟動的現象。
明明所有的服務都已經關閉了,tmboot就是起不來。
這種原因一般是因為系統的IPC資源沒有釋放。
IPC資源是作業系統用來進行程式間通訊的系統資源,主要包括訊號燈、共享記憶體、訊息佇列。
在UNIX作業系統下透過IPCS命令可以清楚的看到IPC資源的使用情況。
當服務無法啟動的時觀察IPCS就會發現tuxedo執行環境的使用者下的ipc資源沒有被釋放,
這時使用ipcrm命令清除相應的IPC資源,再啟動服務就可以了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-1060051/,如需轉載,請註明出處,否則將追究法律責任。

相關文章