#!/bin/bash # 设置 Oracle 环境变量 export ORACLE_SID="ORACLE_SID" export ORACLE_HOME="ORACLE_HOME" export PATH=$ORACLE_HOME/bin:$PATH # 获取脚本所在目录的绝对路径 script_dir=$(dirname "$(realpath "$0")") # 定义临时 SQL 文件路径 temp_sql_file="${script_dir}/kill_sessions.sql" # 定义日志文件路径 log_file="${script_dir}/kill_sessions.log" # 记录开始时间 start_time=$(date +"%Y-%m-%d %H:%M:%S") echo "START TIME: $start_time" >> $log_file # 查询阻塞会话并将结果保存到临时 SQL 文件 sqlplus -s / as sysdba <<EOF > "$temp_sql_file" SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF SELECT 'ALTER SYSTEM KILL SESSION ''' || sid || ',' || serial# || ',@' || inst_id || ''' IMMEDIATE;' AS kill_command FROM gv\$session WHERE (sid, inst_id) IN (SELECT blocking_session, blocking_instance FROM gv\$session WHERE blocking_session IS NOT NULL) AND type = 'USER' AND status = 'INACTIVE'; EXIT; EOF # 查询锁源会话信息并保存到日志文件 sqlplus -s / as sysdba <<EOF >> $log_file 2>&1 SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF SET LINE 300 COL program FOR A16 COL machine FOR A30 COL username FOR A15 COL event FOR A30 SELECT inst_id, sid, serial#, program, machine, username, event, blocking_instance, blocking_session, sql_id, prev_sql_id, wait_class FROM gv\$session WHERE blocking_session IS NOT NULL; EXIT; EOF # 检查临时文件是否有内容 if [ -s "$temp_sql_file" ]; then # 使用sqlplus执行临时 SQL 文件 echo "Executing commands from $temp_sql_file..." sqlplus -s / as sysdba <<EOF @"$temp_sql_file" exit; EOF # 检查命令是否执行成功 if [ $? -eq 0 ]; then echo "Sessions killed successfully." else echo "Failed to kill sessions." fi else echo "No blocking sessions found." fi # 删除临时文件 rm "$temp_sql_file" # 记录结束时间 end_time=$(date +"%Y-%m-%d %H:%M:%S") echo "END TIME: $end_time" >> $log_file echo "Script execution completed at $end_time."
数据库杀锁shell脚本分享
来源:这里教程网
时间:2026-03-03 21:13:57
作者:
编辑推荐:
- 数据库杀锁shell脚本分享03-03
- 有时候处理故障也是玄学03-03
- 19c sysaux表空间爆满03-03
- 基于oracle linux的 DBI/DBD 标准化安装文档03-03
- 康纳利沙发,家居圈的新宠儿03-03
- 记一次业务表数据损坏场景下的灾难挽救案例分析03-03
- 目前国内可用的虚拟币交易所有哪些国内可用的虚拟币交易所盘点03-03
- Oracle GoldenGate Veridata 23c安装(一)03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 基于oracle linux的 DBI/DBD 标准化安装文档
基于oracle linux的 DBI/DBD 标准化安装文档
26-03-03 - 记一次业务表数据损坏场景下的灾难挽救案例分析
记一次业务表数据损坏场景下的灾难挽救案例分析
26-03-03 - 目前国内可用的虚拟币交易所有哪些国内可用的虚拟币交易所盘点
目前国内可用的虚拟币交易所有哪些国内可用的虚拟币交易所盘点
26-03-03 - 【年终总结】-38岁DBA老兵,自知自心其路自明
【年终总结】-38岁DBA老兵,自知自心其路自明
26-03-03 - Windows断电后导致数据库启动异常案例分析
Windows断电后导致数据库启动异常案例分析
26-03-03 - rac中一起ora-27300 301 302问题处理
rac中一起ora-27300 301 302问题处理
26-03-03 - 记一次DG备库TEMP表空间无法添加临时文件案例分析
记一次DG备库TEMP表空间无法添加临时文件案例分析
26-03-03 - 数据库管理-第279期 相同SQL在不同实例结果竟然不同(20250107)
- javavm invalid处理
javavm invalid处理
26-03-03 - 客户吐槽数仓太大,直接30T瘦身到10T,这下舒服了...
客户吐槽数仓太大,直接30T瘦身到10T,这下舒服了...
26-03-03
