Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách loại bỏ tất cả các phiên oracle đang hoạt động và không hoạt động cho người dùng

KILL SESSION lệnh không thực sự giết phiên họp. Nó chỉ yêu cầu phiên tự giết chính nó. Trong một số tình huống, chẳng hạn như chờ phản hồi từ cơ sở dữ liệu từ xa hoặc quay lại các giao dịch, phiên sẽ không tự kết thúc ngay lập tức và sẽ đợi hoạt động hiện tại hoàn tất. Trong những trường hợp này, phiên sẽ có trạng thái " được đánh dấu để kết thúc ". Sau đó nó sẽ bị giết càng sớm càng tốt.

Kiểm tra trạng thái để xác nhận:

SELECT sid, serial#, status, username FROM v$session;

Bạn cũng có thể sử dụng NGAY LẬP TỨC mệnh đề:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

IMMEDIATE mệnh đề không ảnh hưởng đến công việc được thực hiện bởi lệnh, nhưng nó trả lại quyền điều khiển trở lại phiên hiện tại ngay lập tức, thay vì chờ xác nhận kết thúc. Hãy xem Killing Oracle Sessions.

Cập nhật Nếu bạn muốn loại bỏ tất cả các phiên, bạn chỉ cần chuẩn bị một tập lệnh nhỏ.

SELECT 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''' IMMEDIATE;' FROM v$session;

Ống chỉ ở trên cho một .sql và thực thi nó hoặc sao chép, dán đầu ra và chạy nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tập lệnh quản trị trong R12.2 Ebuisness Suite

  2. Lược đồ mẫu trên GitHub

  3. Tại sao sqlplus không kết nối?

  4. Oracle:sự khác biệt giữa max (id) +1 và sequence.nextval

  5. Hàm ASCIISTR () trong Oracle