暂无图片
DBMS_LOCK_ALLOCATED 这个是什么导致的锁?
我来答
分享
薛晓刚
2020-02-29
DBMS_LOCK_ALLOCATED 这个是什么导致的锁?

image.png

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
JiekeXu
暂无图片

官方文档描述如下:
DBMS_LOCK_ALLOCATED describes user-allocated locks.

Column Datatype NULL Description
NAME VARCHAR2(128) NOT NULL Name of the lock
LOCKID NUMBER(38) Lock identifier number
EXPIRATION DATE Planned lock expiration date (updates whenever the allocation procedure is run)

The DBMS_LOCK package provides an interface to Oracle Lock Management services. You can request a lock of a specific mode, give it a unique name recognizable in another procedure in the same or another instance, change the lock mode, and release it.

If you choose to identify locks by name, you can use ALLOCATE_UNIQUE to generate a unique lock identification number for these named locks.

The first session to call ALLOCATE_UNIQUE with a new lock name causes a unique lock ID to be generated and stored in the dbms_lock_allocated table. Subsequent calls (usually by other sessions) return the lock ID previously generated.

A lock name is associated with the returned lock ID for at least expiration_secs (defaults to 10 days) past the last call to ALLOCATE_UNIQUE with the given lock name. After this time, the row in the dbms_lock_allocated table for this lock name may be deleted in order to recover space. ALLOCATE_UNIQUE performs a commit.


看着费力翻译了一下,希望对你有帮助!

DBMS_LOCK包提供了Oracle Lock Management服务的接口。您可以请求特定模式的锁定,为它指定一个唯一的名称,该名称在相同或另一个实例中的另一个过程中可以识别,更改锁定模式,然后释放它。

如果选择按名称标识锁,则可以使用ALLOCATE_UNIQUE为这些命名的锁生成唯一的锁标识号。

第一个使用新锁名调用ALLOCATE_UNIQUE的会话将导致生成唯一的锁ID,并将其存储在dbms_lock_allocated表中。后续调用(通常是其他会话)将返回先前生成的锁ID。

在使用给定锁名对ALLOCATE_UNIQUE的最后一次调用之后,锁名与返回的锁ID至少关联了expiration_secs(默认为10天)。此时间之后,可以删除dbms_lock_allocated表中此锁名称的行以恢复空间。ALLOCATE_UNIQUE执行一次提交。

暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

感谢。不过我还是不明白,什么场景会产生这个?如何解决?多谢

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 虚拟机迁移之后, 目录下的文件没有了,这是什么原因?
回答 3
是时候掏出这张图了
opengauss对MySQL、postgresql、oracle等的兼容性如何?
回答 3
已采纳
有部分兼容性方面的考虑,创建数据库时可以使用dbcompatibility参数来兼容部分MySQL、Oracle、PG的特性。兼容MySQL:将字符串转换成整数类型时,如果输入不合法会将输入转换为0而
oracle 存储过程游标查询为空, 怎么写让其结束存储过程 而不执行后面的dml逻辑?
回答 3
declarecursorcaisselectcodefromtbcitybasicwhereprovince'AMS';xxtbcitybasic.code%type;beginopenca;fet
关于从sqlserver导数据到oracle中的问题
回答 2
可以使用ETL工具:kettle之类试试。
执行imp导入带分区的表时, 一直卡住,之前执行的时候都是秒执行,日志没有报错,数据量也不大
回答 1
已采纳
imp不支持分区表。需要改用expdp导出,然后ipmdp导入。
Oracle临时表空间如何查询,有什么用途
回答 5
已采纳
临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sortareasize大小不够时,将会把数据放入临时表空间里进行排序
alter system archive log current执行的时机
回答 1
已采纳
1、当执行altersystemarchivelogcurrent命令时,Oracle会将当前redolog切换到下一个序列号并将其标记为“active”,这样就可以开始进行日志备份和归档。如果在备份
OGG-00446 OGG-01668 OGG-15149
回答 1
231612号归档日志缺失,看看RMAN能否恢复此归档,如能,最好把该归档和其后的归档统统恢复。
Oracle 19C 安装最佳实践+最佳参数实践
回答 2
这里有一个表格,可以参考。Oracle19c参数设置最佳实践云和恩墨.xlsx。https://www.modb.pro/download/4284?yll
学生基础数据表未创建学号列的唯一索引或主键,一次导入误操作导致学号和姓名出现重复数据,亟需进行数据治理。如下哪几SQL可输出全部重复多余的学生信息?
回答 2
已采纳
选择:A,C;A选项使用窗口函数DENSERANK()给每个学号分配一个行序列号(ROWSNO),当同一个学号有多个记录时,这些记录会获得相同的行序列号。然后查询筛选出序列号大于1的记录,即那些有重复