利用PLSQL Developer查看并导出Oracle表数据,本篇经验将和大家介绍如何利用PLSQLDeveloer查看并导出Oracle表数据,希望对大家的工作和学习有所帮助!......
2023-03-17 362 oracle
在平时的工作中经常遇到oracle的表被锁住了,导致我们在对数据库表进行dml操作时都会失败,不仅是表,当我们在test函数或存储过程时,如果中间存在执行数据库过慢,或事物出现异常,都会导致存储过程被锁,关也关不掉,下面结合我自己的工作经验来说说我是如何处理数据库对象被锁的情况。
首先来澄清一下数据库的基本视图表,以及表之间的联系,v$session视图:在某一个oracle实例中,这个视图存放了用户的各个会话,每次建立新的会话窗口,并执行某个sql都会在视图中有这个新的会话记录(在上篇文章已经模拟)。下面执行视图的查询,在这里我只列出v$session视图中常用的字段
--查看当前会话
selectvs.SADDR,vs.SID,vs.SERIAL#,vs.PADDR,vs.USERNAME,vs.LOCKWAIT,vs.OSUSER,vs.PROCESS,vs.MACHINE,vs.STATUS,vs.SQL_ADDRESS,vs.SQL_HASH_VALUE fromv$session vs
下图列出了重要字段的定义和解释
其次,还要明白数据库对象表all_objects或者 dba_objects
这个表存放数据库所有类型的对象数据,包括存储过程、函数、表等。在这里我只列出重要的字段
select* fromall_objects a wherea.OWNER='GAYX'ANDA.OBJECT_TYPE IN('TABLE','PROCEDURE')
这个查询是查询用户名为‘GAYX’的数据对象为表和过程的所有对象。
再次我们查询锁数据库库对象后,数据对象所存放的表,在oracle中主要使用两个视图,一个是v$locked_object,一个是v$lock
下面给大家描述一下,这两者的区别,v$locked_object对象是表级锁, v$lock是所有锁包含表、行、系统等锁,也就是说,前者解锁后不起作用的情况下,可以使用后者进行解锁。
还有一个视图就是 v$sql 或v$sqlarea 这两个视图存放会话中执行的sql语句,一般在恢复数据时可以使用,一般和v$session视图关联使用。
好了 到目前为止,大家应该了解这几个表的作用与联系了,那么当数据库表或存储过程发生死锁后,我们该如何利用这些表进行解锁呢?
首先查询v$lock_object 对象表
如果上述解锁不能生效,则查询如下锁:
过程锁了:
一般来说,如果存在锁表的情况,上述两种就可以解锁了,但是有些时候,解锁之后,不释放资源,我们需要在服务器端将操作系统级别的进程杀死
如下:
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
利用PLSQL Developer查看并导出Oracle表数据,本篇经验将和大家介绍如何利用PLSQLDeveloer查看并导出Oracle表数据,希望对大家的工作和学习有所帮助!......
2023-03-17 362 oracle
编程之oracle 11g安装解说,Oracle11g是甲骨文公司在2007年年7月12日推出的最新数据库软件,Oracle11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6......
2023-03-17 489 oracle