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.
Commenti
Nessun commento ancora. Sii il primo a commentare!
Devi avere un account per commentare. Accedi · Registrati