Bagaimana cara menentukan apakah tabel Oracle terkunci atau tidak?

22

Kami telah menggunakan perangkat lunak BI dan basis data repositori yang diinstal pada Oracle Enterprise 11gR2.

Beberapa laporan batch ini akan mencoba mengakses tabel database yang mungkin masih terkunci. Bagaimana saya bisa mengetahui apakah tabel Oracle terkunci atau tidak? Apakah ada pernyataan SQL yang menampilkan rincian riwayat untuk dianalisis?

Selahattin
sumber
Maksud saya, saya ingin menampilkan hal-hal dalam interval waktu tertentu.
Selahattin
Misalnya: Saya ingin mendaftar semua tabel yang terkunci antara pukul 14:00 - 17:00 untuk analisis lebih lanjut.
Selahattin
Secara umum saya ingin menemukan tabel terkunci di oracle?
Selahattin
1
@ Selelahin Apakah Anda berbicara tentang kunci level aplikasi? Oracle umumnya tidak melakukan penguncian tabel karena tingkat dan desain serialisasi
Philᵀᴹ

Jawaban:

32

Permintaan berikut memberikan detail semua kunci.

SELECT B.Owner, B.Object_Name, A.Oracle_Username, A.OS_User_Name  
FROM V$Locked_Object A, All_Objects B
WHERE A.Object_ID = B.Object_ID
Ravindra Reddy
sumber
10

Script berikut dapat digunakan untuk mengidentifikasi dengan cepat semua objek kunci dalam sistem Oracle Anda.

select
   c.owner,
   c.object_name,
   c.object_type,
   b.sid,
   b.serial#,
   b.status,
   b.osuser,
   b.machine
from
   v$locked_object a ,
   v$session b,
   dba_objects c
where
   b.sid = a.session_id
and
   a.object_id = c.object_id;

Referensi: -Oracle Tips oleh Burleson Consulting http://www.dba-oracle.com/t_find_oracle_locked_objects.htm

Ali786
sumber
2

Anda dapat meminta objek yang saat ini dikunci dari V $ LOCKED_OBJECT .

Tidak ada riwayat untuk kunci tersebut, mencatat semua kunci akan menyebabkan overhead kinerja besar dan banyak data yang akan disimpan.

Basis data terdekat yang dimiliki adalah riwayat Sesi Aktif V $ ACTIVE_SESSION_HISTORY , DBA_HIST_ACTIVE_SESS_HISTORY (jika Anda memiliki lisensi yang tepat untuk menggunakannya), di mana Anda dapat melihat sesi pemblokiran, pernyataan, dan informasi lainnya, tetapi bukan tabel terkunci. Jika tidak, Anda dapat mencoba untuk meminta tampilan yang sesuai dan menyimpan data yang dibutuhkan dengan skrip kustom Anda sendiri.

Balazs Papp
sumber
2

Menggunakan kueri di bawah ini Anda bisa mengetahui kunci di atas meja.

column oracle_username format a15;
column os_user_name format a15;
column object_name format a37;
column object_type format a37;
select a.session_id,a.oracle_username, a.os_user_name, b.owner "OBJECT OWNER", b.object_name,b.object_type,a.locked_mode from 
(select object_id, SESSION_ID, ORACLE_USERNAME, OS_USER_NAME, LOCKED_MODE from v$locked_object) a, 
(select object_id, owner, object_name,object_type from dba_objects) b
where a.object_id=b.object_id;

Memblokir Kunci

santosh
sumber
0

Jika Anda ingin melepaskan kunci pada objek yang terkunci, maka matikan sesi yang sesuai.

-- Query to Get List of all locked objects
SELECT B.Owner, B.Object_Name, A.Oracle_Username, A.OS_User_Name  
FROM V$Locked_Object A, All_Objects B
WHERE A.Object_ID = B.Object_ID ; 
-- and A.OS_USER_NAME = 'mahendar' 

-- Query to Get List of locked sessions        
select SID,SERIAL#,INST_ID from gv$session a  where schemaname = 'SYSTEM';
-- and osuser =  'mahendar';
-- o/p: 314 26513   1

-- Statement to Kill the session [pass values in the same order and append @ for inst_id]
alter system kill session '314,26513,@1';
mahi_0707
sumber
0

Anda dapat memeriksa kunci meja dari v$lockdan dba_objectsmelihat. Kueri di bawah ini akan memberi Anda detail kunci.

select a.sid||'|'|| a.serial#||'|'|| a.process
from v$session a, v$locked_object b, dba_objects c
where b.object_id = c.object_id
and a.sid = b.session_id
and OBJECT_NAME=upper('&TABLE_NAME');

QUERY 2:

select
(select username from v$session where sid=a.sid) blocker,
a.sid,
' is blocking ',
(select username from v$session where sid=b.sid) blockee,
b.sid
from
v$lock a,
v$lock b
where
a.block = 1
and
b.request > 0
and
a.id1 = b.id1
and
a.id2 = b.id2;

Anda dapat menggunakan kueri di bawah ini yang akan memberi Anda lebih detail. Kunci Meja

santosh
sumber