mercoledì 19 gennaio 2011

Oracle Advanced Replication: come eliminare la coda di transazioni

Può capitare che per motivi di performance o problemi di rete, la coda delle transazioni in Oracle Advanced Replication diventi enorme (più di 100.000 transazioni ma anche più di 1.000 a seconda dello scopo della replica).

In questi casi più che cercare di far smaltire la replica a volte si fa prima ad eliminare la coda, sincronizzare i dati e riattivare la replica stessa.

Come da documento Oracle
ID 190885.1 How to Clear Down the Deferred Queue and DBMS_DEFER_SYS.DELETE_TRAN
ci sono vari passaggi da eseguire in successione in particolare "traduco" quelli che riguardano le versione di Oracle 9.x o superiori:

1. Identificare tutti i job di replica stanno in esecuzione e terminali attraverso:
execute dbms_job.broken(, true)
oppure usando l'enterprise manager
2. Eseguire il seguente script:

truncate table system.DEF$_AQCALL;

truncate table system.DEF$_CALLDEST;

truncate table system.DEF$_ERROR;

truncate table system.DEF$_AQERROR;

truncate table system.DEF$_LOB; -- se ci sono LOBs replicati

select * from DEFCALL;
no rows

select * from DEFTRAN;
no rows

select * from DEFERROR;
no rows

3. Se si ottiene lo stesso risultato si può passare alla sincronizzazione dei dati
4. Riattivare i job della replica precedentemente interrotti

Nessun commento:

Posta un commento

Vodafone Alcatel 875 hard reset

Se tuo nipote blocca il telefonino vodafone alcatel 875 e inoltre si dimentica utente e password di accesso, una delle poche cose che rimang...