|
sp; oracle@saic02 (SMON)
6 18461 oracle8 oracle@saic02 (RECO)
7 19168 oracle8 sqlplus@saic02(TNS V1-V3)
7 rows selected.
每一个后台进程都有一行,还有一行信息是与SQL*Plus会话相关的,SPID对应相应的UNIX进程号。
在WINDOWS2000上的ORACLE后台进程
回到WINDOWS上,从操作系统中察看后台进程有些困难。从任务管理器中可能会看到运行着的应用(任务管理器的察看方法:在任务栏点击右键选择"任务管理器")。在服务器上ORAC
LE可以是可用的,运行着的应用却是不可见的。进程表的确显示一个进程叫做ORACLE.EXE,
察看alert log 显示ORACLE的所有后台进程都是启动的:
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
要看实际的后台进程,需要运行额外的软件,例如,进程察看器。该软件可以从Windows
2000 CD 中得到(Windows NT 的话可以从资源包中得到)。
在Windows 2000上,ORACLE实例是作为一个单一的Windows 2000进程(ORACLE.EXE)实现的。这个进程包括实例所需要实现的每个任务的线程。
因此一个线程对应每个ORACLE 后台进程。ORACLE.EXE进程作为一个服务运行,可以从控制面板的服务中察看到 ORACLEServiceSID。其他的服务也可以这样控制。
这允许ORACLE在没有用户登录服务器的时候也持续的运行。对于共享主处理器资源的所有的进程来说,ORACLE能够达到高速、低负荷的上下文切换。
在Unix下显示ORACLE中的进程,我们也可以通过输入简单的SQL语句来达到。为了显示PID列,SQL语句做了些轻微的改动。要注意PID匹配警告日志中报告的值。
SELECT s.sid, p.pid, p.spid signaled, s.osuser, s.program
FROM v$process p, v$session s
WHERE p.addr=s.paddr;
SID PID THREADID OSUSER PROGRAM
---- ------- --------- --------------- --------------------
1 2 1088 SYSTEM ORACLE.EXE
2 3 1172 SYSTEM ORACLE.EXE
3 4 1180 SYSTEM ORACLE.EXE
4 5 1192 SYSTEM ORACLE.EXE
5 6 1212 SYSTEM ORACLE.EXE
6 7 1220 SYSTEM ORACLE.EXE
7 8 1200 Administrator SQLPLUSW.EXE
7 rows selected.
每一个后台进程都有一行,还有一行信息是与SQL*Plus会话相关。程序名字并没有指明后台进程的名字,和在Unix 中一样,这些名字可以通过和v$bgprocess 连接得到。
SELECT s.sid SID, p.spid THREADID, p.program PROCESSNAME, bg.name NAME
FROM v$process p, v$session s, v$bgprocess bg
WHERE p.addr = s.paddr
AND p.addr = bg.paddr
AND bg.paddr <> '00' ;
SID THREADID PROCESSNAME NAME
---------- --------- --------------- -------------
1 1088 ORACLE.EXE PMON
2 1172 ORACLE.EXE DBW0
3 1180 ORACLE.EXE LGWR
4 1192 ORACLE.EXE CKPT
5 1212 ORACLE.EXE SMON
6 1220 ORACLE.EXE RECO
6 rows selected.
断开会话
提交SQL命令 ALTER SYSTEM DISCONNECT SESSION可以断开会话。有的时候需要在操作系统级别断开会话,在UNIX上,通过kill命令实现,前面例子中的SQL会话可以通过输入UNIX命令断开:
kill -9 19168
在Windows 2000上可以用orakill断开一个会话。orakill是Windows平台上的ORACLE的一个特定命令,默认安装在$ORACLE_HOME\bin下。在命令行下输入orakill可以察看它的用法。前面例子中的SQL*Plus会话可以通过输入如下的命令断开:
orakill atei 1200
Kill of thread id 1200 in instance atei successfully signaled.
在Windows 2000中,如果一个断开的会话标记为 "marked for kill"但是没被删除,orakill会终止它。要记住杀掉一个后台进程总不是个好主意,尤其是Windows上,会导致进程崩溃 上一页 [1] [2] [3] 下一页 [系统软件]windows下Apache+php+mysql的安装与配置图解 [操作系统]在Windows中玩转Linux操作系统 [操作系统]死马还当活马医:6种方法挽救Windows系统 [聊天工具]四大更新 Windows Live Msn 8.1评测 [聊天工具]Windows Live Messenger最新0683版亮相_联络工具_… [聊天工具]Windows Live Mail招人爱的N个理由_联络工具_Wind… [聊天工具]Windows Live Mail Desktop多图欣赏_联络工具_Win… [聊天工具]OE老了 微软开发新邮件客户端取而代之_联络工具 [聊天工具]Windows Live Messenger中文版试用报告(一)__天极… [聊天工具]Windows Live Messenger 8 Beta1高清图赏__天极Ye…
|