Liberare spazio dai journal receiver

Accedi per salvare

Prima si guarda quali sono staccati dal journal, dal più grande in giù:

SELECT JOURNAL_LIBRARY, JOURNAL_NAME,
       JOURNAL_RECEIVER_LIBRARY, JOURNAL_RECEIVER_NAME,
       SIZE / 1024 AS MB, DETACH_TIMESTAMP, SAVE_TIMESTAMP
  FROM QSYS2.JOURNAL_RECEIVER_INFO
 WHERE DETACH_TIMESTAMP IS NOT NULL
 ORDER BY SIZE DESC

DETACH_TIMESTAMP resta nullo finché il receiver è ancora attaccato al suo journal. Filtrare sul non nullo lascia quindi esattamente i receiver staccati, che sono gli unici candidati alla cancellazione: quello attaccato è in uso e non si tocca.

SIZE è espressa in kilobyte, quindi la divisione per 1024 dà i megabyte; non per 1024 due volte, che è l'errore in cui è facile cadere venendo da altre colonne di dimensione.

SAVE_TIMESTAMP dice quando quel receiver è stato salvato l'ultima volta, e sta nella stessa riga. È l'informazione che serve nel passaggio dopo, senza bisogno di un secondo comando per ogni receiver.

Esempio: quelli vecchi di un anno

Su un sistema con parecchi journal l'elenco completo è lungo e poco utile. Il taglio che serve davvero è temporale, staccati da abbastanza tempo da essere fuori da qualunque finestra di ripristino ragionevole:

SELECT JOURNAL_RECEIVER_LIBRARY, JOURNAL_RECEIVER_NAME,
       SIZE / 1024 AS MB, DETACH_TIMESTAMP
  FROM QSYS2.JOURNAL_RECEIVER_INFO
 WHERE DETACH_TIMESTAMP IS NOT NULL
   AND DETACH_TIMESTAMP < CURRENT_TIMESTAMP - 1 YEAR
 ORDER BY SIZE DESC

Se questa query restituisce righe, il problema non è lo spazio: è che la gestione automatica dei receiver non è configurata. Vedi il suggerimento in fondo.

Solo quelli già salvati e non più necessari si eliminano:

DLTJRNRCV JRNRCV(JRNLIB/RCV0000123) DLTOPT(*IGNINQMSG)

Attenzione

un journal receiver serve a ripristinare le modifiche avvenute dopo l'ultimo salvataggio. Cancellarne uno non ancora salvato significa che, in caso di ripristino, quelle modifiche non tornano più. Prima di eliminare, la conferma la dà DSPJRNRCVA, che dice esplicitamente se il receiver è stato salvato.

Suggerimento

il rimedio strutturale non è la cancellazione periodica a mano ma CHGJRN ... DLTRCV(*YES) con la gestione automatica dei receiver, che li stacca e li elimina da solo dopo il salvataggio. La cancellazione manuale è il sintomo di una configurazione da sistemare.


Rilasci. QSYS2.JOURNAL_RECEIVER_INFO è fra gli IBM i Services più recenti: verifica eseguendo la query, e se risponde SQL0204 usa WRKJRNA JRN(LIB/JRN) opzione 15, che elenca i receiver con dimensione e stato. DSPJRNRCVA dice se un receiver è già stato salvato, ed è il controllo che conta prima di cancellare qualcosa.

Fonti

← Torna al blog

Commenti

Nessun commento ancora. Sii il primo a commentare!

Devi avere un account per commentare. Accedi · Registrati