Post

Visualizzazione dei post da dicembre, 2023

ORA-01591: lock held by in-doubt distributed transaction 9.30.7011

Durante l'aggiornamento o l'eliminazione della tabella nella transazione, è possibile ottenere l'errore ORA-01591: lock held by in-doubt distributed transaction    che significa che ci sono alcune transazioni non commitate nel database. Per risolvere questo problema è necessario eseguire il rollback o il commit force delle transazioni non impegnate. SQL> select 'rollback force '''||local_tran_id||''';' from DBA_2PC_PENDING where state='prepared'; rollback force '9.30.7011'; select 'commit force '''||local_tran_id||''';' from DBA_2PC_PENDING where state='prepared'; commit force '9.30.7011';

Cambio tablespace TEMP per ridurre la dimensione

-- situazione attuale: select tablespace_name,file_name,bytes,autoextensible from dba_temp_files TABLESPACE_NAME      FILE_NAME             BYTES AUT ------------------------------ -------------------------- TEMP                     /u01/app/oracle/oradata/PICPC19/PRO19/temp01.dbf                  34358689792 YES TEMP                           /u01/app/oracle/oradata/PICPC19/PRO19/temp02.dbf                  34358689792 YES --controllo se la stanno usando: SQL>  SELECT b.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,a.serial#, a.username,a.osuser, a.status FROM v$session a,v$sort_usage b WHERE a.saddr = b.session_addr; no rows selected -- ne creo un'altra SQL> CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE '/u01/app/oracle/oradata/PICPC19/PRO19/temp1_01.dbf' SIZE 2G autoextend on; -- la rendo di default SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1; Database altered. --droppo la vecchia SQL> DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES; Tablespace