Cattura di un'istantanea di integrità del database da un'applicazione client
È possibile catturare le istantanee di integrità utilizzando l'API di monitoraggio istantanee in un'applicazione C o C + +. È possibile accedere a diversi tipi di richiesta di istantanea di stato specificando i parametri nell'API db2GetSnapshot .
Importante: il controllo dello stato, gli indicatori di stato e i componenti correlati sono obsoleti e potrebbero essere rimossi in una release futura. Il controllo dello stato non è supportato negli ambienti Db2® pureScale® . Per ulteriori informazioni, vedere Health Monitor è obsoleto.
Informazioni preliminari
Devi essere collegato a un'istanza per catturare un'istantanea di integrità. Se non è presente un allegato a un'istanza, viene creato un allegato dell'istanza predefinito. Per ottenere un'istantanea di una istanza remota, è necessario prima collegarsi a tale istanza.
Procedura
Includi le librerie sqlmon.h e db2ApiDf.h nel tuo codice. Queste librerie si trovano nella directory sqllib\include .
#include <db2ApiDf.h>
#include <sqlmon.h>
Impostare la dimensione dell'unità buffer dell'istantanea su 50 KB.
#define SNAPSHOT_BUFFER_UNIT_SZ 51200
Dichiarare le strutture sqlma, sqlca, sqlm_collected e db2GetSnapshotData .
popolare la struttura db2GetSnapshotData con il tipo di richiesta dell'istantanea (dalla struttura sqlma), le informazioni sul buffer e altre informazioni richieste per catturare un'istantanea.
Includi logica per gestire l'overflow del buffer. Dopo aver eseguito un'istantanea, viene eseguito il controllo di sqlcode per un overflow del buffer. Se si verifica un overflow del buffer, il buffer viene cancellato, reinizializzato e l'istantanea viene ripresa di nuovo.
Elaborare lo stream di dati di monitoraggio istantanea. Fare riferimento alla figura che segue per visualizzare il flusso di dati del monitoraggio istantanee.
Eliminare il buffer.
free(snapshotBuffer);
free(pRequestedDataGroups);
Risultati
Dopo aver catturato un'istantanea di integrità con l'API db2GetSnapshot , l'API restituisce l'output di istantanea di integrità come flusso di dati di autodescrizione.
Il seguente esempio mostra la struttura del flusso di dati:Figura 1. Flusso di dati di autodescrizione dell'istantanea di stato
Legenda:
Disponibile solo quando viene utilizzata la classe di istantanee SQLM_CLASS_HEALTH_WITH_DETAIL.
Disponibile solo in Db2 Enterprise Server Edition. Altrimenti, segue il flusso del contenitore del tablespace.
Le seguenti gerarchie mostrano gli elementi specifici nello stream di dati di autodescrizione dell'istantanea di stato.