Oracle解锁表、包、用户、杀会话、停job
Oracle解锁表、包、用户、杀会话、停job
- 一、创建包tzq_server_pkg
- 二、授权给需要使用的用户log
- 三、解锁表:执行存过unlock_table(schema_name, table_name)
- 四、解锁包:执行存过unlock_package(schema_name, pkg_name)
- 五、解锁用户:执行存过unlock_user(username)
- 六、停止job任务:执行存过stop_job(job_id)
- 七、杀session会话:执行存过kill_session(se_sid, se_serail#)
- 7.1、查询需要kill的session的SID及serial#
- 7.2、执行存过kill_session(se_sid, se_serail#)
- 八、给新建的用户授权:执行存过 grant_pris(username)
一、创建包tzq_server_pkg
sys用户以sysdba身份登录Oracle数据库,创建包 tzq_server_pkg ,上代码:
CREATE OR REPLACE PACKAGE sys.tzq_server_pkg ISPROCEDURE unlock_table(table_owner IN VARCHAR2, table_name IN VARCHAR2);PROCEDURE unlock_package(package_owner IN VARCHAR2,package_name IN VARCHAR2);PROCEDURE unlock_user(username IN VARCHAR2);PROCEDURE stop_job(job_id IN NUMBER);PROCEDURE kill_session(se_sid IN NUMBER, se_serail# IN NUMBER);PROCEDURE grant_pris(username IN VARCHAR2);
END tzq_server_pkg;
/CREATE OR REPLACE PACKAGE body SYS.tzq_server_pkg ISPROCEDURE unlock_table(table_owner IN VARCHAR2, table_name IN VARCHAR2) ISCURSOR c1 ISSELECT DISTINCT '''' || s.sid || ',' || s.serial# || ',@' || s.inst_id || '''' AS si_idFROM gv$locked_object l,dba_objects o,gv$session sWHERE l.object_id = o.object_idAND l.session_id = s.sidAND l.inst_id = s.inst_idAND o.owner = upper(table_owner)AND o.object_name = upper(table_name);c1_rec c1%ROWTYPE;v_sql VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END LOOP;END unlock_table;PROCEDURE unlock_package(package_owner IN VARCHAR2,package_name IN VARCHAR2) ISCURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session a,gv$access bWHERE b.object = upper(package_name)AND b.owner = upper(package_owner)AND a.sid = b.sidAND a.inst_id = b.inst_id;c1_rec c1%ROWTYPE;v_sql VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END unlock_package;PROCEDURE unlock_user(username IN VARCHAR2) ISus_name VARCHAR2(200) := username;v_sql VARCHAR2(2000);BEGINv_sql := 'alter user ' || us_name || ' account unlock';BEGINEXECUTE IMMEDIATE v_sql;dbms_output.put_line(us_name || '''s account is unlock');EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END unlock_user;PROCEDURE stop_job(job_id IN NUMBER) ISCURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session a,(SELECT v.sid,v.id2 job,v.inst_id inst_idFROM sys.job$ j,gv$lock vWHERE v.type = 'JQ'AND j.job(+) = v.id2) b,gv$instance cWHERE a.inst_id = b.inst_idAND a.sid = b.sidAND a.inst_id = c.inst_idAND c.inst_id = b.inst_idAND b.job = job_id;c1_rec c1%ROWTYPE;v_sql VARCHAR2(2000);BEGINFOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END stop_job;PROCEDURE kill_session(se_sid IN NUMBER, se_serail# IN NUMBER) ISp_sid NUMBER := se_sid;p_serail NUMBER := se_serail#;is_back_process NUMBER := 0;CURSOR c1 ISSELECT DISTINCT '''' || a.sid || ',' || a.serial# || ',@' || a.inst_id || '''' AS si_idFROM gv$session aWHERE a.sid = p_sidAND a.serial# = p_serail;c1_rec c1%ROWTYPE;v_sql VARCHAR2(2000);BEGINIF se_sid IS NULL OR se_serail# IS NULL THENdbms_output.put_line('sid is null or serail# is null');RETURN;END IF;BEGINSELECT 1INTO is_back_processFROM gv$sessionWHERE sid = se_sidAND serial# = se_serail#AND TYPE = 'BACKGROUND';EXCEPTIONWHEN OTHERS THENis_back_process := 0;END;IF is_back_process = 1 THENRETURN;END IF;FOR c1_rec IN c1 LOOPv_sql := 'alter system kill session ' || c1_rec.si_id || ' immediate';dbms_output.put_line(v_sql);BEGINEXECUTE IMMEDIATE v_sql;EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);NULL;END;END LOOP;END kill_session;PROCEDURE grant_pris(username IN VARCHAR2) ISus_name VARCHAR2(200) := username;v_sql VARCHAR2(2000);v_sql2 VARCHAR2(2000);v_sql3 VARCHAR2(2000);v_sql4 VARCHAR2(2000);v_sql5 VARCHAR2(2000);v_sql6 VARCHAR2(2000);v_sql7 VARCHAR2(2000);BEGINv_sql := 'grant create synonym,create table,create type,create sequence,create view ,create materialized view,create job,create database link,connect,resource,create procedure ,debug any procedure, debug connect session to ' ||us_name;v_sql2 := 'grant select on gv_$locked_object to ' || us_name;v_sql3 := 'grant select on dba_objects to ' || us_name;v_sql4 := 'grant select on gv_$session to ' || us_name;v_sql5 := 'grant select on gv_$process to ' || us_name;v_sql6 := 'grant select on gv_$sql to ' || us_name;v_sql7 := 'grant select on gv_$access to ' || us_name;BEGINEXECUTE IMMEDIATE v_sql;EXECUTE IMMEDIATE v_sql2;EXECUTE IMMEDIATE v_sql3;EXECUTE IMMEDIATE v_sql4;EXECUTE IMMEDIATE v_sql5;EXECUTE IMMEDIATE v_sql6;EXECUTE IMMEDIATE v_sql7;dbms_output.put_line('grant success!');EXCEPTIONWHEN OTHERS THENdbms_output.put_line(SQLERRM);END;END grant_pris;END tzq_server_pkg;
/
二、授权给需要使用的用户log
sys用户以sysdba身份登录Oracle数据库,给需要使用该包(sys.tzq_server_pkg)的用户授予 execute 的权限,执行下面命令授权:
grant execute on sys.tzq_server_pkg to log;

三、解锁表:执行存过unlock_table(schema_name, table_name)
以上面被授权的log用户,打开命令行窗口,执行下列SQL:
set serveroutput on
execute sys.tzq_server_pkg.unlock_table('LOG','tzq_log_t');

四、解锁包:执行存过unlock_package(schema_name, pkg_name)
以上面被授权的log用户,打开命令行窗口,执行下列SQL:
set serveroutput on
execute sys.tzq_server_pkg.unlock_package('LOG','tzq_log_pkg');

五、解锁用户:执行存过unlock_user(username)
以上面被授权的log用户,打开命令行窗口,执行下列SQL:
set serveroutput on
execute sys.tzq_server_pkg.unlock_user('LOG');

六、停止job任务:执行存过stop_job(job_id)
以上面被授权的log用户,打开命令行窗口,执行下列SQL:
set serveroutput on
execute sys.tzq_server_pkg.stop_job(6);

七、杀session会话:执行存过kill_session(se_sid, se_serail#)
7.1、查询需要kill的session的SID及serial#
执行下列SQL:
SELECT * FROM gv$session;
找到你需要kill的那个session会话,拿到SID及serial#:159, 3729

7.2、执行存过kill_session(se_sid, se_serail#)
执行存过kill_session(),kill掉上面的那个session会话。在命令行执行下面的SQL:
set serveroutput on
execute sys.tzq_server_pkg.kill_session(159, 3729);

八、给新建的用户授权:执行存过 grant_pris(username)
以上面被授权的log用户,打开命令行窗口,执行下列SQL:
set serveroutput on
execute sys.tzq_server_pkg.grant_pris('log');

相关文章:
Oracle解锁表、包、用户、杀会话、停job
Oracle解锁表、包、用户、杀会话、停job 一、创建包tzq_server_pkg二、授权给需要使用的用户log三、解锁表:执行存过unlock_table(schema_name, table_name)四、解锁包:执行存过unlock_package(schema_name, pkg_name)五、解锁用户:执行存过u…...
软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用
软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用 一、相关知识点二、摘要三、正文四、总结一、相关知识点 软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构二、摘要 本文从一个行业MIS系统的开发实践,讨论了软件开发平台的选择和应…...
Redis Pub/Sub 指南
Redis 不仅仅是一个数据库,还可以作为支持发布和订阅(Pub/Sub)操作的消息代理。本文将使用 Navicat for Redis 简要概述 Redis 的 Pub/Sub 功能。 关于发布或订阅消息范式 Pub/Sub 是一种模式,发送者(广播者…...
Nest(2):Nest 应用目录结构和脚手架命令介绍
Nest 应用目录结构和脚手架命令介绍 在正式使用 NestJS 进行开发之前,先来了解下 Nest 应用的目录结构,和一些常用的脚本命令。 工程目录 下面是使用 nest/cli 创建的 Nest 项目的目录结构。 上篇文章中介绍了 src 目录以及目录下各个文件的作用。下面…...
【嵌入式】MKV31F512VLL12 微控制器 (MCU) 、Cyclone® IV E EP4CE10E22I8LN,FPGA-现场可编程门阵列芯片
1、MKV31F512VLL12 微控制器 (MCU) 是适用于BLDC、PMSM和ACIM电机控制应用的高性能解决方案。这些MCU采用运行频率为100MHz/120MHz、带数字信号处理 (DSP) 和浮点单元 (FPU) 的ARM Cortex-M4内核。KV3x MCU配备两个采样率高达1.2MS/s的16位ADC、多个控制定时器以及512KB闪存。 …...
矢量调制分析基础
前言 本文介绍VSA 的矢量调制分析和数字调制分析测量能力。某些扫频调谐频谱分析仪也能通过使用另外的数字无线专用软件来提供数字调制分析。然而,VSA 通常在调制格式和解调算法配置等方面提供更大的测量灵活性,并提供更多的数据结果和轨迹轨迹显示。本…...
ensp-Ipv6配置配置
ensp-Ipv6配置配置 📎ipv6.zip📎Ipv6 网络.docx...
java八股文面试[java基础]—— hashCode 与 equals 区别 == 与 equals的区别
两个对象的hashCode()相同时,equals()相等吗?_两个对象的hashcode一样,equal一样么_不想当个程序员的博客-CSDN博客 equals():比较的是非基本类型的数据的引用地址(即内存地址)是否相同,但是对于重写equal…...
Dubbo之PojoUtils源码分析
功能概述 PojoUtils是一个工具类,能够进行深度遍历,将简单类型与复杂类型的对象进行转换,在泛化调用时用到(在泛化调用中,主要将Pojo对象与Map对象进行相互转换) 功能分析 核心类PojoUtils分析 主要成员…...
【C++】—— C++11新特性之 “右值引用和移动语义”
前言: 本期,我们将要的介绍有关 C右值引用 的相关知识。对于本期知识内容,大家是必须要能够掌握的,在面试中是属于重点考察对象。 目录 (一)左值引用和右值引用 1、什么是左值?什么是左值引用…...
谈一谈redis脑裂
什么是redis脑裂 (1)一主多从架构中,主节点与客户端通信正常,主节点与哨兵、从节点连接异常,客户端仍正常写入数据 (2)哨兵判定主节点下线,重新选主 (3)原主…...
基于原生Servlet使用模板引擎Thymeleaf访问界面
我们常在Spring Boot项目中使用Thymeleaf模板引擎,今天突发奇想,尝试原生Servlet访问! 说做就做 搭建完整的WEB项目 其中的大部分依赖都是后续报错 追加进来的 导入依赖 thymeleaf-3.0.11.RELEASE.jar 第一次访问 访问地址: http://localhost:8080…...
【C语言】15-函数-1
1. 初步认识函数 通过前几章的学习,已经可以编写一些简单的 C 语言程序了,但是如果程序的功能比较多,规模比较大,把所有的程序代码都写在一个主函数(main函数)中,就会使主函数变得庞杂、头绪不清,使阅读和维护程序变得困难。此外,有时程序中要多次实现某一功能就需要…...
08-信息收集-架构、搭建、WAF等
信息收集-架构、搭建、WAF等 信息收集-架构、搭建、WAF等一、前言说明二、CMS识别技术三、源码获取技术四、架构信息获取技术五、站点搭建分析1、搭建习惯-目录型站点2、搭建习惯-端口类站点3、搭建习惯-子域名站点4、搭建习惯-类似域名站点5、搭建习惯-旁注,c段站点…...
Qt --- 显示相关设置 窗口属性等
主界面,窗口 最小化 最大化 关闭按钮、显示状态自定义: setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); //只要关闭按钮 setWindowFlags(Qt::WindowFlags type) Qt::FrameWindowHint:没有边框的窗口 Qt::Window…...
使用小程序实现左侧菜单,右侧列表双向联动效果
目录 引言理解双向联动效果的重要性scrollview属性介绍实现左侧菜单数据准备渲染菜单列表监听菜单点击事件实现右侧列表数据结构设计初始数据渲染监听列表滚动事件左侧菜单与右侧列表联动获取当前滚动位置计算对应菜单项联动效果优化用户体验考虑平滑滚动效果菜单高亮状态...
selenium中处理验证码问题
验证码 基本作用:可以实现当前访问页面的数据安全性、还可以减少用户的并发数; 类型:1、纯数字、纯字母;2、汉字组合;3、数学运算题;4、滑动;5、图片(选不同的、选相同、成语顺序&…...
EMR电子病历系统 SaaS电子病历编辑器源码 电子病历模板编辑器
EMR(Electronic Medical Record)指的是电子病历。它是一种基于电子文档的个人医疗记录,可以包括病人的病史、诊断、治疗方案、药物处方、检查报告和护理计划等信息。EMR采用计算机化的方式来存储、管理和共享这些信息,以便医生和医…...
一些自定义hooks
文章目录 1、点击框外隐藏弹窗hook 1、点击框外隐藏弹窗hook **描述:**有一个需要自己封装弹窗的组件,实现点击弹窗框外时隐藏弹窗 代码: import { useEffect } from “react”; // 点击框外hooks import { useEffect } from "react&q…...
基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法
文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
