ORACLE SHUTDOWN不了,用START FORCE 和 SHUTDOWN ABORT都可以
不管做哪个,STARTUP后,SHUTDOWN IMMEDIATE,SHUTDOWN都不行 
但数据库启动正常。用SQL/PLUS可以查询,但用DBA Studio连进去什么也做不了
目录都展不开;用开发的程序连接,没有反应,查看ORACLE会话,该连接都进入锁等待状态。哪位同仁能帮帮忙?

解决方案 »

  1.   

    找到产生锁会话id.
    select *  from v$lock_objects;select sid ,serial# from v$session ;alter system kill session 'sid,serial#' --sid,serial#是上面查询得出得结果。
      

  2.   

    找到产生锁会话id.
    select session_id  from v$lock_objects;
      

  3.   

    TO:平平淡淡
    select *  from v$lock_objects; 为空
    alter system kill session 'sid,serial#' --sid,serial#是上面查询得出得结果。
    可以杀掉会话,但重新连接后又出现不知是什么原因
      

  4.   

    select *  from v$lock_objects;
    说明没有对象被锁定。
      

  5.   

    但是在v$SESSION中LOCKWAIT字段中,该会该有值
      

  6.   

    最奇怪的是DBA Studio连接事,目录展不开,数据SHUTDOWN 十个小时也DOWN不下来.
      

  7.   

    lockwait字段 表示Address of lock waiting for, NULL if none 
    没有锁就不会有值
      

  8.   

    应该不会,我都用SHUTDOWN ABORT关闭后在STARTUP
    然后立即SHUTDOWN IMMEDIATE都不行,该会话lockwait字段有值,但没有被锁的对象.
      

  9.   

    v$lock这张VIEW是记录什么信息呢?这张表中有40条记录,我查了另一个正常的数据出有一些记录。 我们这是地市的人口系统,搞不定他们没法正常办公。麻烦帮忙想想办法!先谢了
      

  10.   

    v$lock
    This view lists the locks currently held by the Oracle server and outstanding requests for a lock or latch. 
      

  11.   

    由于Oracle有内部锁定(的机制),因此有些时候它对于找到并终止Oracle里锁定数据库资源的会话很有用。首先,你需要找到所有的Oracle会话。下面是一段脚本,用来显示Oracle内所有会话的细节。   remsession.sql - displays all connected sessions
    set echo off;
    set termout on;
    set linesize 80;
    set pagesize 60;
    set newpage 0;select
       rpad(c.name||':',11)||rpad(' current logons='||
       (to_number(b.sessions_current)),20)||'cumulative logons='||
       rpad(substr(a.value,1,10),10)||'highwater ='||
       b.sessions_highwater Information
    from
       v$sysstat a,
       v$license b,
       v$database c
    where
       a.name = 'logons cumulative'
    ;ttitle "dbnameDatabase|UNIX/Oracle Sessions";set heading off;
    select 'Sessions on database '||substr(name,1,8) from v$database;
    set heading on;
    select
       substr(a.spid,1,9) pid,
       substr(b.sid,1,5) sid,
       substr(b.serial#,1,5) ser#,
       substr(b.machine,1,6) box,
       substr(b.username,1,10) username,
       substr(b.osuser,1,8) os_user,
       substr(b.program,1,30) program
    from
       v$session b,
       v$process a
    where
       b.paddr = a.addr
    and
       type='USER'
    order by
       spid;
    ttitle off;
    set heading off;
    select 'To kill, enter SQLPLUS>  ALTER SYSTEM KILL SESSION',
    ''''||'SID, SER#'||''''||';' from dual;
    spool off;
      

  12.   

    平淡兄,还是不行,我杀一了些会话,也重启了数据库服务,
    只要程序一连接到数据,就进入锁等待状v$session 中的该会话Lockwait 就有值,其中一个是
    1D0687C0.SQL/PLUS可以连进去也可以操作.
    用你给我的脚本,显示的信息在V$SESSION这张VIEW中也有.这样程序无法连接成功.会是哪里问题呢?