设为首页
加入收藏夹

UNIX 和 WINDOWS2000 上的 ORACLE 的差
浏览选项:

-----------------------------------------------------

         1 18451     oracle8              oracle@saic02 (PMON)

         2 18453     oracle8              oracle@saic02 (DBW0)

         3 18455     oracle8              oracle@saic02 (LGWR)

         4 18457     oracle8              oracle@saic02 (CKPT)

         5 18459     oracle8              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[首页]    [上一页]    [下一页]    [末页]    

Copyright © 2004 wanxu.com All Rights Reserved