Chinaunix首页 | 论坛 | 博客
  • 博客访问: 579913
  • 博文数量: 718
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4960
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 13:24
文章分类

全部博文(718)

文章存档

2011年(1)

2008年(717)

我的朋友

分类:

2008-10-17 13:26:57


  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
  
  在 2000上可以用orakill断开一个会话。orakill是平台上的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上,会导致进程崩溃,甚至导致数据库不可用。
  
  Windows 2000 注册表
  
  和其他的Windows 2000中的应用那样,ORACLE的大多数的设定都在注册表中。应该看看HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下面都有什么。这些参数中的一些在后面会详细讨论。和ORACLE服务相关的参数和其他的服务一样存贮在同样的位置:
  
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。
  
  环境变量
  
  在Unix中两个最重要的变量是ORACLE_HOME和ORACLE_SID。一旦这些变量设定的话,应用就可以运行并联接到本地数据库。 通常也把$ORACLE_HOME/bin 包含在$PATH 中以便在使用ORACLE 工具(如:sqlplus)的时候免去输入全路径的麻烦。
  
  Windows 2000 中可以打开命令行设定ORACLE_SID 变量再联接到本地数据库。其他的值可以从注册表中得到。
  
  MULTIPLE ORACLE HOMES
  
  Windows 2000全面支持多个ORACLE home。以前在Windows NT上这是个主要的问题,一直到ORACLE8.0.4以后才开始支持。最初得对这一点的支持很差劲。ORACLE Home Selector, ORACLE8i的一个新的应用工具, 改变环境路径,使选择的ORACLE home 路径作为主的home。只是简单的改变系统路径,把ORACLE选择的BIN目录放在启动路径中。
  
  每一个 BIN目录都有一个ORACLE.KEY文件,指明在注册表中ORACLE程序在哪里可以找ORACLE_HOME 和其他的环境变量。如果在上面只有一个数据库,通常在注册表中设定ORACLE_SID。不过,不要设定 ORACLE_HOME,对于ORACLE产品来说根本不需要,可能会导致问题。
  
  文件系统
  
  ORACLE home的支持允许在Windows上面实现 Unix 的OFA 标准。这极大的简化了从Unix的过渡。OFA目录树的顶层的名字有差异,不过主要的子目录和文件名字在两种操作系统中都是一致的。
  
  服务管理器
  
  从ORACLE 8i开始,服务管理器的名字在不同的平台上都一致了,都叫做svrmgrl。以前在
  
  Windows NT上ORACLE的执行文件名字随着版本变动而改变,对于那些在多平台上工作的人来说这很令人讨厌,尤其是在使用一些命令(imp、exp等)的时候。
  
  ------------------------------
  
  ORACLE 版本 Windows 服务器管理器可执行文件
  
  ------------------------------
  7.3 svrmgr23
  
  8.0 svrmgr30
  
  8.1 svrmgrl
  
  ------------------------------
  
  要注意server manager 正在逐步被淘汰(译者注:9i中彻底淘汰了svrmgrl),一些额外的功能被加到了SQL*Plus 中。
  
【责编:admin】

--------------------next---------------------

阅读(285) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~