最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle中鎖(lock)的用法

 更新時間:2022年05月26日 15:47:21   作者:springsnow  
這篇文章介紹了Oracle中鎖(lock)的用法?,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

數(shù)據(jù)庫鎖介紹: http://m.fzitv.net/article/248863.htm

一、查詢oracle鎖定的表:

1、鎖相關(guān)表

  • SELECT * FROM v$lock; 
    列:ADDR:鎖定狀態(tài)對象地址;KADDR:鎖地址;SID :會話id;ID1:鎖標(biāo)識符#1;ID2:鎖標(biāo)識符#2;LMODE:會話持有的鎖模式(0~6);REQUEST:進(jìn)程請求的鎖模式(0~6); 
    CTIME:當(dāng)前模式的時間;BLOCK:為1代表阻礙者,表示正在阻礙其它會話;
  • SELECT * FROM v$locked_object;
  • SELECT * FROM v$session;
  • SELECT * FROM v$session_wait;
  • SELECT * FROM v$sqlarea;
  • SELECT * FROM v$process ;
  • SELECT * FROM all_objects

2、常用語句

1、查出鎖定object的session的信息以及被鎖定的object名

SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user_name, s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial#;

2、查出鎖定表的session的sid, serial#,os_user_name, machine name, terminal和執(zhí)行的語句,比上面那段多出sql_text和action

SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, l.os_user_name, s.machine, s.terminal, a.sql_text, a.action
FROM v$sqlarea a, v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;

3、查出鎖定表的sid, serial#,os_user_name, machine_name, terminal,鎖的type,mode

SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine, s.terminal, s.logon_time, l.TYPE
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;

4、這個語句將查找到數(shù)據(jù)庫中所有的DML語句產(chǎn)生的鎖,還可以發(fā)現(xiàn),任何DML語句其實產(chǎn)生了兩個鎖,一個是表鎖,一個是行鎖。

SELECT /*+ rule */
 s.username, DECODE(l.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL, o.owner, o.object_name, o.object_type, s.sid, s.serial#, s.terminal, s.machine, s.program, s.osuser
FROM v$session s, v$lock l, dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username IS NOT NULL;

5、如果發(fā)生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待,以下的語句可以查詢到誰鎖了表,而誰在等待。

以下查詢結(jié)果是一個樹狀結(jié)構(gòu),如果有子節(jié)點,則表示有等待發(fā)生。如果想知道鎖用了哪個回滾段,還可以關(guān)聯(lián)到V$rollname,其中xidusn就是回滾段的USN

SELECT LPAD(' ', DECODE(l.xidusn, 0, 3, 0)) || l.oracle_username user_name, o.owner, o.object_name, o.object_type, s.sid, s.serial#
FROM v$locked_object l, dba_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY o.object_id, xidusn DESC

3、kill session語句:

alter system kill session 'sid,serial#';

alter system kill session'494,7355';

二、一個有用查找腳本:

1、找到某表的鎖 所屬的sid,alter system kill session 'sid,serial#';即可

select v$lock.sid, decode(v$lock.type, 'MR', 'Media Recovery', 'RT', 'Redo Thread', 'UN', 'User Name', 'TX', 'Transaction', 'TM', 'DML', 'UL', 'PL/SQL User Lock', 'DX', 'Distributed Xaction', 'CF', 'Control File', 'IS', 'Instance State', 'FS', 'File Set', 'IR', 'Instance Recovery', 'ST', 'Disk Space Transaction', 'TS', 'Temp Segment', 'IV', 'Library Cache Invalida-tion', 'LS', 'Log Start or Switch', 'RW', 'Row Wait', 'SQ', 'Sequence Number', 'TE', 'Extend Table', 'TT', 'Temp Table', 'Unknown') LockType, rtrim(owner) || '.' ||
        object_name object_name, decode(lmode, 0, 'None', 1, 'Null', 2, 'Row-S', 3, 'Row-X', 4, 'Share', 5, 'S/Row-X', 6, 'Exclusive', 'Unknown') LockMode, decode(request, 0, 'None', 1, 'Null', 2, 'Row-S', 3, 'Row-X', 4, 'Share', 5, 'S/Row-X', 6, 'Exclusive', 'Unknown') RequestMode, ctime, block b
from v$lock, all_objects
where sid > 6
and v$lock.id1 = all_objects.object_id;

2、查出被lock 的對象,然后 alter system kill session 'sid,serial#';

select object_id, session_id, serial#, oracle_username, os_user_name, s.process
from v$locked_object a, v$session s
where a.session_id = s.sid;

三、LOCK TABLE

1、語法:

LOCK   TABLE   table_1   [,table_2,   ...,   table_n]   IN   lock_mode   MODE
  NOWAIT

2、變量:

table_1,...,table_n: 一系列你想通過使用LOCK TABLE語句鎖住的數(shù)據(jù)庫表。

lock_mode: 對于某一數(shù)據(jù)庫表你要設(shè)定的鎖定模式。你可以從如下的鎖定模式中任選一個。

  • EXCLUSIVE
  • SHARE ROW EXCLUSIVE
  • SHARE
  • SHARE UPDATE
  • ROW SHARE
  • ROW EXCLUSIVE

NOWAIT: Oracle will not wait to lock the given Table(s), if the Table(s) is(are) not available

3、例子:

LOCK   TABLE   loan     IN   SHARE   MODE   ;
LOCK   TABLE   region   IN   EXCLUSIVE   MODE   NOWAIT;
LOCK   TABLE   acct     IN   SHARE   UPDATE   MODE;
LOCK   TABLE   bank     IN   ROW   EXCLUSIVE   MODE   NOWAIT;
LOCK   TABLE   user     IN   SHARE   ROW   EXCLUSIVE   MODE;
LOCK   TABLE   branch   IN   ROW   SHARE   MODE   NOWAIT;
commit

到此這篇關(guān)于Oracle鎖(lock)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Oracle排名函數(shù)(Rank)實例詳解

    Oracle排名函數(shù)(Rank)實例詳解

    這篇文章主要介紹了Oracle排名函數(shù)(Rank)實例詳解,需要的朋友可以參考下
    2014-06-06
  • Oracle基本查詢過濾排序示例解析

    Oracle基本查詢過濾排序示例解析

    以下是對Oracle中的基本查詢過濾排序示例進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-08-08
  • PLSQL環(huán)境配置詳細(xì)圖文步驟

    PLSQL環(huán)境配置詳細(xì)圖文步驟

    PL/SQL是Oracle對行業(yè)標(biāo)準(zhǔn)SQL的過程性擴(kuò)展,下面這篇文章主要給大家介紹了關(guān)于PLSQL環(huán)境配置的詳細(xì)圖文步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • PLsql?Oracle?下載安裝圖文過程詳解

    PLsql?Oracle?下載安裝圖文過程詳解

    PL/SQLDeveloper是一款用于開發(fā)Oracle數(shù)據(jù)庫的集成開發(fā)環(huán)境,可以通過官網(wǎng)下載安裝配置,并通過配置tnsnames.ora文件及環(huán)境變量來連接Oracle數(shù)據(jù)庫,當(dāng)試用期到期時,可以通過修改注冊表來重置試用期,對PLsql?Oracle?下載安裝相關(guān)操作感興趣的朋友一起看看吧
    2025-02-02
  • Oracle 細(xì)粒度審計(FGA)初步認(rèn)識

    Oracle 細(xì)粒度審計(FGA)初步認(rèn)識

    細(xì)粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的數(shù)據(jù),本文將詳細(xì)介紹,需要的朋友可以參考下
    2012-12-12
  • Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    這篇文章主要介紹了Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝,安裝步驟是以管理員模式運行Oracle setup.exe文件,根據(jù)提示安裝Oracle,創(chuàng)建數(shù)據(jù)庫,注意修改連接數(shù),本文給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • Oracle 批處理自動備份bat腳本語句的步驟詳解

    Oracle 批處理自動備份bat腳本語句的步驟詳解

    這篇文章主要介紹了Oracle 批處理自動備份bat腳本語句的步驟詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Oracle12c的數(shù)據(jù)庫向11g導(dǎo)進(jìn)的方法

    Oracle12c的數(shù)據(jù)庫向11g導(dǎo)進(jìn)的方法

    這篇文章主要介紹了 Oracle12c的數(shù)據(jù)庫向11g導(dǎo)進(jìn)的方法的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Oracle通過遞歸查詢父子兄弟節(jié)點方法示例

    Oracle通過遞歸查詢父子兄弟節(jié)點方法示例

    這篇文章主要給大家介紹了關(guān)于Oracle如何通過遞歸查詢父子兄弟節(jié)點的相關(guān)資料,遞歸查詢對各位程序員來說應(yīng)該都不陌生,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • 在ORACLE移動數(shù)據(jù)庫文件

    在ORACLE移動數(shù)據(jù)庫文件

    在ORACLE移動數(shù)據(jù)庫文件...
    2007-03-03

最新評論

澎湖县| 南宫市| 巴东县| 岳西县| 六枝特区| 新野县| 滦南县| 阜平县| 衢州市| 常德市| 札达县| 抚松县| 延长县| 临澧县| 英超| 页游| 河池市| 乡城县| 十堰市| 遂溪县| 辉南县| 蒙阴县| 军事| 尤溪县| 民丰县| 梅河口市| 菏泽市| 南宫市| 治多县| 句容市| 东辽县| 中超| 赤壁市| 双流县| 泉州市| 高雄市| 荔波县| 五莲县| 泉州市| 长寿区| 轮台县|