Liberare spazio dai journal receiver

Rivista il

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, STATUS, DETACH_TIMESTAMP, SAVE_TIMESTAMP
  FROM QSYS2.JOURNAL_RECEIVER_INFO
 WHERE DETACH_TIMESTAMP IS NOT NULL
 ORDER BY SIZE DESC

SIZE è in kilobyte, quindi la divisione per 1024 dà i megabyte. DETACH_TIMESTAMP è nullo per il receiver ancora attaccato (oltre che per quelli vuoti o parziali): filtrare sul non nullo lascia i receiver staccati, gli unici candidati alla cancellazione.

STATUS dice in una parola se si possono toccare:

STATUS Che cosa vuol dire
ATTACHED attaccato al journal: in uso, non si tocca
ONLINE staccato e non salvato: non si cancella
SAVED salvato dopo essere stato staccato; lo spazio è ancora occupato
FREED salvato dopo essere stato staccato, con lo spazio già liberato al salvataggio
PARTIAL ripristinato da un salvataggio fatto mentre era attaccato, o legato a un journal remoto incompleto

Esempio: quelli salvati e staccati da più di un anno

SELECT JOURNAL_RECEIVER_LIBRARY, JOURNAL_RECEIVER_NAME,
       SIZE / 1024 AS MB, DETACH_TIMESTAMP, SAVE_TIMESTAMP
  FROM QSYS2.JOURNAL_RECEIVER_INFO
 WHERE STATUS = 'SAVED'
   AND DETACH_TIMESTAMP < CURRENT_TIMESTAMP - 1 YEAR
 ORDER BY SIZE DESC

Un anno è un esempio: il limite giusto lo decide da quanto indietro si vuole poter ripartire con il salvataggio più vecchio che si tiene.

Si cancellano così:

DLTJRNRCV JRNRCV(JRNLIB/RCV0000123)

Attenzione

senza DLTOPT, se il receiver non è stato salvato il comando manda la domanda CPA7025 (all'operatore, se gira in batch) e aspetta. Con DLTOPT(*IGNINQMSG) quella domanda non arriva e il receiver si cancella anche se non è salvato: non va usato per ripulire. Un receiver non salvato serve a recuperare le modifiche avvenute dopo l'ultimo salvataggio; cancellato, quelle modifiche non tornano.

Attenzione

anche la gestione automatica non controlla il salvataggio. CHGJRN ... MNGRCV(*SYSTEM) DLTRCV(*YES) fa staccare e cancellare i receiver al sistema, e la cancellazione si ferma solo per un blocco, per un journal remoto che non ha ancora la copia completa, o per un programma registrato sull'exit point QIBM_QJO_DLT_JRNRCV. Chi la usa senza uno di questi accetta di perdere i receiver non salvati.


Rilasci. QSYS2.JOURNAL_RECEIVER_INFO è nella documentazione IBM di 7.5 e 7.6; su un rilascio precedente, se la query risponde SQL0204, la vista non c'è e lo stato di un receiver si legge con DSPJRNRCVA, che dice anche se è stato salvato.

Fonti

← Torna al blog

Commenti

Nessun commento ancora. Sii il primo a commentare!

Devi avere un account per commentare. Accedi · Registrati