ORA-21779: duration not active hatası

9 Eyl by Ahmet Duruöz

ORA-21779: duration not active hatası

Oracle veritabanında bazı type nesnelerinin oluşması sırasında oluşan sorundan dolayı ilgili type oluşmuyor ama metadata bilgisi kayır ediliyor. Bu tarz durumlar oluştuğunda alert log dosyasına aşağıdaki gibi hatalar yazılmaktadır.

*** 2023-07-24 15:20:35.389
         Drop transient type:   SYSTPATfvkWzGUIngZAIIIK+oYw==fq°

*** 2023-07-24 15:20:35.389
SMON: following errors trapped and ignored:
ORA-21779: duration not active

Bu durumda yapılması gereken ilgili type nesnesini tespit etmek ve drop etmektir.

Aşağıdaki sorgu ile ilgili nesneyi ve sahibini tespit edebilirsiniz. Komutları sqlplus ile sysdba olarak bağlanıp çalıştırın.

sqlplus / as sysdba
SQL> alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';
SQL> set pagesize 1000
SQL> select o.* from obj$ o, type$ t where o.oid$ = t.tvoid and bitand(t.properties,8388608) = 8388608 and (sysdate-o.ctime) > 0.0007;

Örnek sonuç aşağıdaki gibi olacaktır.

SQL> SQL>   2    3  
      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE
---------- ---------- ---------- ------------------------------ ----------
SUBNAME                             TYPE# CTIME
------------------------------ ---------- --------------------
MTIME                STIME                    STATUS
-------------------- -------------------- ----------
REMOTEOWNER
------------------------------
LINKNAME
--------------------------------------------------------------------------------
     FLAGS OID$                                 SPARE1     SPARE2     SPARE3
---------- -------------------------------- ---------- ---------- ----------
SPARE4
--------------------------------------------------------------------------------
SPARE5
--------------------------------------------------------------------------------
SPARE6
--------------------
    401594                   101 SYSTPATfvkWzGUIngZAIIIK+oYw==           1
                                       13 24-JUL-2023 10:55:19
24-JUL-2023 10:55:19 24-JUL-2023 10:55:19          1


         0 0137EF916CC75089E064020820AFA863          0      65535        101

 

Sonuçtaki OWNER# bilgisinden aşağıdaki gibi bir sorgu ile nesnenin kime ait olduğunu tespit edebilirsiniz.

SQL> select * from dba_users where user_id=<OWNER#>;

Sonrasında aşağıdaki gibi ilgili type nesnesini drop etmeniz gerekmektedir.

SQL> DROP TYPE "SYSTPATfvkWzGUIngZAIIIK+oYw==" force;

Eğer bu başarısız olursa aynı komutu nesnenin sahibi kullanıcı ile çalıştırın.

Nesne drop edildikten sonra alert log dosyasında hata gelmeyecektir.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir