• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle 会话 死锁 执行sql 执行job的方法
    //根据用户分组会话
    select t.USERNAME,count(*) from v$session t group by t.USERNAME
    //查找某一用户正在执行的sql_id值
    select * from v$session t where t.USERNAME = 'BUDGET' and t.SQL_ID is not null
    //查找对应sql_id的对应sql语句
    select m.SQL_TEXT from v$session t , v$sqlarea m where t.USERNAME ='BUDGET' and t.sql_id = m.SQL_ID
    //
    select * from v$sqlarea t where t.SQL_ID = 'g92sy7kwt6mrq'
    //查询死锁对象
    select * from v$locked_object

    1、修改Oracle最大连接数的方法

    a、以sysdba身份登陆PL/SQL 或者 Worksheet
    b、查询目前连接数
    show parameter processes;
    c、更改系统连接数
    alter system set processes=1000 scope=spfile;
    d、创建pfile
    create pfile from spfile;
    e、重启Oracle服务或重启Oracle服务器
    2、查询Oracle游标使用情况的方法
    select * from v$open_cursor where user_name = 'TRAFFIC';
    3、查询Oracle会话的方法
    select * from v$session

    杀掉会话:

    方法一:SQL> SELECT pid,spid FROM V$PROCESS WHERE ADDR IN (SELECT PADDR FROM V$SESSION where username ='SYS');
    PID SPID
    ---------- ------------
    17 13657

    ps -ef |grep 13657
    kill -9 13657

    方法二
    SQL> SELECT sid,serial# FROM V$SESSION WHERE sid in (SELECT distinct sid FROM V$MYSTAT);
    SID SERIAL#

    ---------- ----------
    1637 13894

    alter system disconnect session '1637,13894' immediate;
    执行这句会提示:ora-00031:标记要终止的会话。。。但是其实执行成功了。
    如果用pl/sql登陆客户端那边会提示:ora-00028:您的会话已经被终止。

    查看正在执行sql进度:
    SELECT SE.SID,OPNAME,TRUNC(SOFAR / TOTALWORK * 100, 2) || '%' AS PCT_WORK,ELAPSED_SECONDS ELAPSED,ROUND(ELAPSED_SECONDS * (TOTALWORK - SOFAR) / SOFAR) REMAIN_TIME,SQL_TEXT
    FROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SE
    WHERE SL.SQL_HASH_VALUE = SA.HASH_VALUE AND SL.SID = SE.SID AND SOFAR != TOTALWORK
    ORDER BY START_TIME

    SELECT a.tablespace_name "表空间名",round(total/1024/1024/1024,4) 表空间大小Gb,round(free/1024/1024/1024,4) 表空间剩余大小Gb,
    round((total-free)/1024/1024/1024,4) 表空间使用大小Gb,ROUND((total-free)/total,4)*100 "使用率 %"
    FROM (SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE
    GROUP BY tablespace_name ) a,
    (SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) b
    WHERE a.tablespace_name=b.tablespace_name order by 5 desc
     
    强制停止oracle正在执行的job:
     
    1、查看所有job;
    select * from dba_jobs;
    2、查看正在运行的job;
    select * from dba_jobs_running;
    3、根据sid查出对应的session;
    select SID,SERIAL# from V$Session where SID='SID';
    4、kill对应的session;
    alter system kill session 'SID,SERIAL';
    5、将job置为broken;
    exec dbms_job.broken('JOB',true);
    6、sysdba用户权限删除job;
    delete from dba_jobs where JOB='JOB';
    ---实在无奈时启动数据库

    您可能感兴趣的文章:
    • Oracle 查询死锁并解锁的终极处理方法
    • 讲解Oracle数据库中结束死锁进程的一般方法
    • Oracle数据表中的死锁情况解决方法
    • 简单说明Oracle数据库中对死锁的查询及解决方法
    • Oracle删除死锁进程的方法
    • Oracle对于死锁的处理方法
    • Oracle外键不加索引引起死锁示例
    • Oracle 死锁的检测查询及处理
    上一篇:ORACLE 查询被锁住的对象,并结束其会话的方法
    下一篇:删除EM,强制结束EM进程后,启动数据库ORA-00119,ORA-00132报错的解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle 会话 死锁 执行sql 执行job的方法 oracle,会话,死锁,执行,sql,