- 论坛徽章:
- 0
|
以下介绍的是 “sysresv”工具,出现在oracle 8.1.5以上的数据库中。这个工具是给数据库管理员和系统管理员使用。
Sysresv工具包括包括oracle8.1.5以上版本特定oracle_sid的数据库例程的状态(包括系统资源的使用情况)。当存在多个例程的时候,这个工具是特别有用,。系统资源能够被清除,当特定的历程被检测出死亡后。
The sysresv utility included with Oracle 8.1.5 and above provides instance
status (and OS resources used) for specified ORACLE_SIDs. This utility is
especially useful when multiple instances are running. OS resources can be
removed using this utility if the specified instance is detected to be dead.
这个工具相当有用,当一个例程崩溃或者硬性中止(abort),而这个例程相关的资源包括memory和semaphores没有被自动清理释放时;同时,这个工具对被活动的例程,同样提供了帮助。使用该工具的例子将在以下提到:
这个工具,被存放在$ORACLE_HOME/bin目录下,要注意的是,在使用这个工具之前,请将你的环境变量设置指向你要了解的数据库例程。
使用说明:
------
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
注意:这个工具仅尝试清除没有活动的例程的SID的ipc资源。
例子:
---------
o 数据库例程没有运行的情况:
执行:
/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 数据库例程正在运行的情况:
执行:
/u03/app/oracle/product/8.1.6>; sysresv
显示:
IPC Resources for ORACLE_SID "X816" :
Shared Memory:
ID KEY
16437 0xe4efa8dc
Semaphores:
ID KEY
12320802 0x09d48346
Oracle Instance alive for sid "X816"
o 尝试用sysrev清理正在运行的例程的memory和semphores的情况
执行:
/u03/app/oracle/product/8.1.6>; sysresv -f
显示:
IPC Resources for ORACLE_SID "X816" :
Shared Memory:
ID KEY
16437 0xe4efa8dc
Semaphores:
ID KEY
12320802 0x09d48346
Oracle Instance alive for sid "X816"
SYSRESV-005: Warning
Instance maybe alive - aborting remove for sid "X816" (警告,数据库例程可能仍然活动—终止清除sid”X816”)
o 清除释放ipc资源的情况:
当sysresv判断到数据库例程已经不再活动,但是显示memory和semaphores并未释放时,就需要利用sysresv进行清理了
执行:
/u03/app/oracle/product/8.1.6>; sysresv
显示:
IPC Resources for ORACLE_SID "X816" :
Shared Memory:
ID KEY
16837 0xe4efa8dc
Semaphores:
ID KEY
12714018 0x09d48346
Oracle Instance not alive for sid "X816"
o 用sysresv清除释放 IPC 资源
执行:
/u03/app/oracle/product/8.1.6>; sysresv -i
显示:
IPC Resources for ORACLE_SID "X816" :
Shared Memory
ID KEY
No shared memory segments used
Semaphores:
ID KEY
No semaphore resources used
Oracle Instance not alive for sid "X816"
Remove ipc resources for sid "X816" (y/n)?y
Done removing ipc resources for sid "X816"
/u03/app/oracle/product/8.1.6
确认资源已经释放:
执行:
/u03/app/oracle/product/8.1.6>; sysresv
显示:
IPC Resources for ORACLE_SID "X816" :
Shared Memory
ID KEY
No shared memory segments used
Semaphores:
ID KEY
No semaphore resources used
Oracle Instance not alive for sid "X816"
(当然这里也可以用ipcrm清除,但是你必须清除你所涉及的例程的相关资源id)
o 如果你需要清理仍然存活的数据库例程占用的内存段,这是你就不能完全依靠sysresv工具了:
你需要执行:
% ipcrm -m <memid>;
其中<memid>;是运行sysresv工具后显示的memory_id
例子:
Example:
% ipcrm -m 16437
同样,如果你需要清除仍然存活的数据库例程使用的semaphores,也必须借助系统工具ipcrm。
你需要执行:
% ipcrm -s <semid>;
其中<semid>;是运行sysresv工具后显示的semaphore id
where <semid>; is the semaphore id shown in the sysresv output.
例子:
Example:
% ipcrm -s 12320802
e文水平有限,如有错漏,请不吝指教! |
|