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论文高效写作方法
文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…...
lEC 61068-2-14_2023环境试验.第2-14部分:试验.试验N:温度变化, 最新版发布
https://download.csdn.net/download/m0_67373485/88251313 lEC 61068-2-14_2023环境试验.第2-14部分:试验.试验N:温度变化 A change of temperature test is intended to determine the effect on the specimen of a changeof temperature or a succession of changes of tem…...
CFDEM学习笔记
本文用来记录自己学习CFDEM的笔记。 资料总结 虚拟机:链接:https://pan.baidu.com/s/1MPMTJQfl76mW0H5bbT_rAg 提取码:rqli 开机密码:530944988 知乎博客:作者说明了如何关闭颗粒碰撞计算来达到提升计算速度。 Githu…...
SpringBoot入门篇1 - 简介和工程创建
目录 SpringBoot是由Pivotal团队提供的全新框架, 其设计目的是用来简化Spring应用的初始搭建以及开发过程。 1.创建入门工程案例 ①创建新模块,选择Spring初始化,并配置模块相关基础信息 ②开发控制器类 controller/BookController.jav…...
MyBatis-Plus updateById不更新null值
文章目录 前言方式一 调整全局的验证策略方式二 调整字段验证注解方式三 使用 UpdateWrapper 前言 在 MyBatis-Plus 中,使用updateById,null字段并不会更新,其实是和更新的策略有关,当然,也有插入策略,本文…...
用pytorch实现AlexNet
AlexNet经典网络由Alex Krizhevsky、Hinton等人在2012年提出,发表在NIPS,论文名为《ImageNet Classification with Deep Convolutional Neural Networks》,论文见:http://www.cs.toronto.edu/~hinton/absps/imagenet.pdf …...
LeetCode560.和为k的子数组
这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案1然后break然后下一次遍历,测试用例中就出…...
echarts 的dataZoom滑块两端文字被遮挡
问题: 期望: 解决方案: 1:调整宽度(4版本的没有width属性) 2. 参考:echarts图标设置dataZoom拖拽时间轴时自动调整两侧文字的位置_datazoom 位置_乌栖曲的博客-CSDN博客 设置文字的定位 cons…...
MongoDB基本使用
在 MongoDB 中我们可以使用use命令来创建数据库,如果该数据库不存在,则会创建一个新的数据库,如果该数据库已经存在,则将切换到该数据库。使用use命令创建数据库的语法格式如下: --use database_name use my_db1;数据…...
C++ 中的左值(Lvalues)和右值(Rvalues)
C 中有两种类型的表达式: 左值(lvalue):左值参数是可被引用的数据对象,例如,变量、数组元素、结构成员、引用和解除引用的指针都是左值。非左值包括字面常量(用引号起的字符串除外,…...
html流光按钮
出处bilibili猫咪爱狗 <!DOCTYPE html> <html><head><style>body {/*内容居中,背景色*/height: 100vh;display: flex;justify-content: center; align-items: center;background-color: #000;}a { /*水平垂直居中*/position: re…...
wordpress搭建后域名打不开/百度教育
//分支语句可以嵌套 //循环语句,同样可以嵌套 例一: //打印三角形:左下角是直角 Console.Write("请输入一个正整数:"); int a int.Parse(Console.ReadLine()); for (int i …...
有做微信婚介网站的吗/建站平台哪家好
判断移动端或pc端 经常在项目中会有支持 pc 与手机端需求。并且pc与手机端是两个不一样的页面。这时就要求判断设置,根据不同的设置跳转不同的路由。 先写个方法: //APP.vue isMobile() {let flag navigator.userAgent.match(/(phone|pad|pod|iPhon…...
同一服务器做两个顶级域名网站/企业自助建站
人机交互式电子皮肤能够在空间上映射触摸,并为人类提供可视化的信号输出。然而,高功耗、结构复杂以及高成本是人机交互电子皮肤在实际应用中的障碍。北京科技大学Qingliang Liao和Yue Zhang教授课题组在国际期刊Science Advances ( IF 13.116 )上发表题为…...
公司做网站合同/国内seo公司排名
认识思科IPS4200系列传感器思科的***检测系统(IDS)是防火墙的补充解决方案,可以防止网络基础设施(路由器、交换机和网络带宽)和服务器(操作系统和应用层)受到拒绝服务(DoS࿰…...
java如何做网站/网站联盟
MUI 下拉刷新 浏览器正常但是手机端不显示下拉的等待文字下拉刷新不显示等待文字:PC浏览器打开正常,但是手机端却没有。检查后发现手机上运行时,没有进到下面的_initPocket方法中,但是为什么PC和手机端会表现不一致。不知道该如何…...
wordpress分享代码/短视频运营
Oracle的NO_DATA_FOUND和%NOTFOUND两个保留字的用法不够了解,主要是它们从意义上是有些类似。其实它们的用法是有区别的,小结如下:SELECT . . . INTO 语句触发 NO_DATA_FOUND;当一个显示光标的 where 子句未找到时 触发 %NOTFOUND…...