Oracle Database Blocking: Menemukan session blocking dan menghapus session block dengan Skenario 1

Kali ini kita akan coba untuk menemukan session blocking pada process oracle database yang sedang berlangsung

Oracle Database Blocking: Menemukan dan Kill Session BlockingDatabase SQL. Sebelumnya di Database SQL kita sudah mengetahui mengenai maksud dari oracle database blocking. Kali ini kita akan coba untuk menemukan session blocking pada process oracle database yang sedang berlangsung dan kita coba untuk melakukan penghapusan session block dengan scenario yang pertama di oracle database.



  1. Konfirmasi nama database di oracle
  2. Query sid yang terkena block (blocked)
  3. Temukan sql text
  4. Memeriksa Detail
  5. Menghapus session block




#1 Konfirmasi nama database di oracle

Pastikan untuk mengkonfirmasi nama db yang ada dalam oracle database adalah database yang benar. Untuk mengetahuinya, anda bisa melakukan dengan query seperti berikut :

select instance_name||' - '||status||' - '||startup_time||' - '||host_name||' - '||sysdate from v$instance;

#2 Query sid yang terkena block (blocked)

Query di oracle database ini memberi Anda sid ini yang paling terpengaruh. Querynya bisa dilakukan dengan cara :

select sid from v$lock where block=1;

#3 Temukan sql text

Coba untuk menemukan sql text pada session blocking seperti pada langkah #2. Lakukan query seperti berikut :


select sql_text from v$sqltext where hash_value=( select prev_hash_value from v$session where sid='&sid');

#4 Memeriksa Detail Blocking pada Oracle Database

Memeriksa details lain seperti sid mereka, serial #, osuser, mesin dan status mereka (Active / tidak aktif) dengan melewatkan sid dari permintaan sebelumnya dari langkah 2.

Memeriksa semua sid dari semua hasil yang Anda mungkin tidak mendapatkan teks sql dengan satu sid yang akan aktif dalam status yang merupakan salah satu penyebab utama yang memblokir sesi yang memegang key untuk sesi lain untuk melakukan eksekusi.


select sid||' - '||serial#||' - '||osuser||' - '||username||' - '||machine||' - '||status||' - '||logon_time
from v$session where sid=&123;

Mengidentifikasi sesi pemegang yang aktif untuk konfirmasi lebih bagi Anda agar dapat memeriksa pemegang dan pelayan (holder dan waiters)

check holders & waiters:
========================

set pagesize 100
select decode(request,0,'Holder: ','Waiter: ')||sid sess, id1, id2, lmode, request, type from v$lock
where (id1, id2, type) IN (SELECT id1, id2, type from v$lock where request>0) ORDER BY id1, request;

Query ini menghasilkan dengan rincian lebih lanjut yang paling atas adalah pemegang / holder dan lain pelayan / waiter

Sepertinya terlihat tidak ada sesuatu, tapi sesi aktif dapat untuk anda lihat dengan permintaan atau query yang dilakukan sebelumnya di oracle database.

#5 Menghapus session blocking di Oracle Database

ALTER SYSTEM KILL SESSION '&sid, &serial';

Atau bisa juga dengan melakukan query berikut :


SELECT 'alter system kill session ''' || s.sid || ',' || s.SERIAL# || ''';' a,
'ps -ef |grep LOCAL=NO|grep ' || p.SPID SPID,
'kill -9 ' || p.SPID
FROM gv$session s, gv$process p
WHERE ( (p.addr(+) = s.paddr) AND (p.inst_id(+) = s.inst_id))
AND s.sid = &sid;

Anda akan mendapatkan hasilnya dan melakukan query akhir seperti berikut :


alter system kill session '123, 32422';
ps -ef |grep LOCAL=NO|grep 234223
kill -9 234223

Silahkan untuk menggunakan salah satu dari hasilnya untuk menghapus key / sid.

Sebagian besar waktu DBA tidak dapat langsung menghapus key / sid, dalam situasi ini berkonsultasi dengan tim aplikasi untuk menghapus key dan menggunakan langkah mudah ini untuk menghapus key.

Terima kasih sudah setia membaca Database SQL. Demikianlah untuk menemukan session blocking dan menghapus session block di oracle database dengan Skenario 1. Selanjutnya jika dengan skenarion 1 masih mendapat kendala, anda bisa juga menemukan session blocking dan menghapus session block di oracle database dengan Skenario 2. Atau anda bisa juga melihat daftar isi di Database SQL untuk scenario apa saja yang bisa dilakukan untuk menangani session blocking di oracle database ini.

Database SQL

COMMENTS

Name

Database Administrator Database Tips Design Database Error Oracle Database Ilmu Database MySQL News Oracle Oracle Database Oracle Tips Top Database Tutorial Database Tutorial HTML Tutorial Javascript Tutorial Mobile Apps Tutorial PHP Tutorial SQL Tutorial Web Tutorial Web Development
false
ltr
item
Database SQL: Oracle Database Blocking: Menemukan session blocking dan menghapus session block dengan Skenario 1
Oracle Database Blocking: Menemukan session blocking dan menghapus session block dengan Skenario 1
Kali ini kita akan coba untuk menemukan session blocking pada process oracle database yang sedang berlangsung
https://4.bp.blogspot.com/-nH2u0rVQAcQ/VoldYhbk3tI/AAAAAAAAATw/TI3lkkPsPFc/s400/oracle-database-sql-blocking_1_opt.jpg
https://4.bp.blogspot.com/-nH2u0rVQAcQ/VoldYhbk3tI/AAAAAAAAATw/TI3lkkPsPFc/s72-c/oracle-database-sql-blocking_1_opt.jpg
Database SQL
https://www.databasesql.net/2016/01/Oracle-Database-Blocking-menghapus-session-block.html
https://www.databasesql.net/
https://www.databasesql.net/
https://www.databasesql.net/2016/01/Oracle-Database-Blocking-menghapus-session-block.html
true
8766756895649502082
UTF-8
Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy