Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak rozwiązywać problemy z ORA-02049 i ogólnie blokować problemy z Oracle?

Jednym z możliwych sposobów może być zwiększenie INIT.ORA parametr dla distributed_lock_timeout do większej wartości. To dałoby ci więcej czasu na obserwowanie v$lock tabeli, ponieważ zamki wytrzymałyby dłużej.

Aby to zautomatyzować, możesz albo

  • Uruchamiaj zadanie SQL co 5-10 sekund, które rejestruje wartości v$lock lub zapytanie podane powyżej przez sandos do tabeli, a następnie przeanalizuj je, aby zobaczyć, która sesja spowodowała blokadę.

  • Uruchom STATSPACK lub AWR Raport. Sesje, które zostały zablokowane, powinny pojawić się z długim czasem, który upłynął, dzięki czemu można je zidentyfikować.

v$session ma jeszcze 3 kolumny blocking_instance, blocking_session, blocking_session_status które można dodać do powyższego zapytania, aby dać obraz tego, co jest blokowane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsowanie tnsnames.ora w Visual C# 2008

  2. Zwraca wartość ze skryptu sql do skryptu powłoki

  3. dbms_lob.getlength() vs. length(), aby znaleźć rozmiar blob w Oracle

  4. Funkcja ATAN2() w Oracle

  5. Jak korzystać z wirtualnego indeksu w bazie danych Oracle