After shutdown of Oracle database , shared memory segments staying behind is known issues in Linux . Ideally Dba use Ipcs and Ipcrm to release shared memory segments .
Also there is less known Linux utility pmap
Eg : [oracle]$ pmap `pgrep -f lgwr`
There is Oracle utility sysresv that can be used to release shared memory segments and there is no need to use Ipcs and Ipcrm .
Eg : sysresv -l instance1
Usage:
------
sysresv:
usage : sysresv [-if] [-d <on/off>] [-l sid1 <sid2> ...]
-i : Prompt before removing ipc resources for each sid
-f : Remove ipc resources silently, oevrrides -i option
-d <on/off> : List ipc resources for each sid if on
-l sid1 <sid2> .. : apply sysresv to each sid
Default : sysresv -d on -l $ORACLE_SID
Note : ipc resources are attempted to be deleted for a
sid only if there is no currently running instance
with that sid.
Examples:
---------
o Instance is not running:
/u02/app/oracle/product/8.1.7> sysresv
IPC Resources for ORACLE_SID "R817" :
Shared Memory
ID KEY
No shared memory segments used
Semaphores:
ID KEY
No semaphore resources used
Oracle Instance not alive for sid "R817"
o Instance is running:
/u03/app/oracle/product/8.1.6> sysresv
IPC Resources for ORACLE_SID "ORCL" :
Shared Memory:
ID KEY
16437 0xe4efa8dc
Semaphores:
ID KEY
12320802 0x09d48346
Oracle Instance alive for sid "ORCL"
o Attempting to remove memory and semphores using sysresv when Oracle
detects an instance is running:
/u03/app/oracle/product/8.1.6> sysresv -f
IPC Resources for ORACLE_SID "ORCL" :
Shared Memory:
ID KEY
16437 0xe4efa8dc
Semaphores:
ID KEY
12320802 0x09d48346
Oracle Instance alive for sid "ORCL"
SYSRESV-005: Warning
Instance maybe alive - aborting remove for sid "ORCL"
o Removing IPC resources:
[Sysresv shows memory and semaphores exist but Oracle determines the
instance is not alive. Cleanup is needed.]
/u03/app/oracle/product/8.1.6> sysresv
IPC Resources for ORACLE_SID "ORCL" :
Shared Memory:
ID KEY
16837 0xe4efa8dc
Semaphores:
ID KEY
12714018 0x09d48346
Oracle Instance not alive for sid "ORCL"
o Removing IPC resources using sysresv:
/u03/app/oracle/product/8.1.6> sysresv -i
IPC Resources for ORACLE_SID "ORCL" :
Shared Memory
ID KEY
No shared memory segments used
Semaphores:
ID KEY
No semaphore resources used
Oracle Instance not alive for sid "ORCL"
Remove ipc resources for sid "ORCL" (y/n)?y
Done removing ipc resources for sid "ORCL"
/u03/app/oracle/product/8.1.6
Verify the resources were removed:
/u03/app/oracle/product/8.1.6> sysresv
IPC Resources for ORACLE_SID "ORCL" :
Shared Memory
ID KEY
No shared memory segments used
Semaphores:
ID KEY
No semaphore resources used
Oracle Instance not alive for sid "ORCL"
o If you need to remove memory segments, and Oracle detects the
instance is alive through sysresv:
% ipcrm -m <memid>
Where <memid> is the memory id shown in the sysresv output.
Example:
% ipcrm -m 16437
If you need to remove semaphores, and Oracle detects the
instance is alive through sysresv:
% ipcrm -s <semid>
where <semid> is the semaphore id shown in the sysresv output.
Example:
% ipcrm -s 12320802
Reference :
SYSRESV Utility (Doc ID 123322.1)
Startup fail with ORA-29701 & ORA-29702 after the DB crash. (Doc ID 2160481.1)
No comments:
Post a Comment