Verifica di consistenza

Utilizzare le viste di sistema e l'utilità di checksum dei dati nz_md5_qsum per verificare la coerenza tra i nodi NPS® primari e quelli di replica.

Viste di sistema

È possibile utilizzare le viste di sistema, come _v_replication_sync, per determinare se la replica ha raggiunto il primario. Ogni riga di questa vista mostra lo stato di replica di un nodo. Se i valori delle colonne NODE_CSN e MASTER_CSN sono uguali, il nodo ha applicato l'ultima transazione impegnata sul primario.

Segue un esempio di selezione dalla vista. Per motivi di chiarezza e di formattazione, alcuni campi sono stati rimossi e l'output viene mostrato in due sezioni.

SELECT * FROM _v_replication_sync;
 SETID | SET_NAME | NODEID | NODE_NAME | MASTER_ID | MASTER_NAME | NODE_SOURCE |
-------+----------+--------+-----------+-----------+-------------+-------------+
  7681 | REPLSET  |    743 | TEST      |     30260 | TEST2       |       30260 |
(2 rows)

 NODE_CSN | MASTER_SOURCE | MASTER_CSN |     APPLY_COMMIT_TIME
----------+---------------+------------+---------------------------
        5 |          0260 |          5 | 2011-10-31 15:58:14.709963

utilità di checksum dei dati nz_md5_qsum

L'utilità NPS nz_md5_qsum calcola una somma di controllo univoca per una query su una tabella, fornendo un modo pratico per confrontare i dati tra i vari nodi e determinare se i contenuti delle tabelle sono sincronizzati. Utilizzare l'utilità quando la vista _v_replication_sync mostra che la replica ha applicato tutte le transazioni impegnate dal primario, indicando che i nodi sono sincronizzati.

L'utilità nz_md5_qsum è implementata come funzione UDF da eseguire sul database SYSTEM. L'input per l'utilità è un'istruzione SELECT della forma SELECT <col_list> FROM <database>..<user_table>[WHERE ...]. La clausola WHERE è facoltativa. La tabella utenti fornita alla query SELECT può avere un massimo di 64 colonne.

Segue un esempio:
SELECT nz_md5_qsum ('SELECT * FROM test..table1');
L'output dell'utilità nz_md5_qsum è una tabella con le seguenti colonne:
Tabella 1. Output dell'utilità nz_md5_qsum
Nome colonna Tipo di dati Valore
DATASO char(32) checksum a 32 cifre esadecimali dei dati della tabella.
SCHEMA char(32) checksum a 32 cifre esadecimali del layout della tabella.
NUMROWS BIGINT Numero di righe.
NUMCOLS int Numero di colonne.

Poiché calcola il checksum sul set di dati restituito dalla query, l'utilità nz_md5_ qsum ha un impatto variabile sulle prestazioni del nodo NPS quando viene invocata per una tabella di grandi dimensioni.

Installazione dell'utilità nz_md5_qsum

È necessario installare l'utilità nz_md5_qsum sia sul primario che sulle repliche. Il programma di installazione si trova nella seguente posizione:
/nz/kit/bin/adm/tools/nzqsum
Per installare l'utility, procedere come segue:
  1. Eseguire quanto segue:
    tar xvf nz_md5_qsum.tar
  2. Eseguire lo script installQsum.pl con un nome utente e una password validi. La tabella seguente ne descrive l'utilizzo:
    Tabella 2. Uso dello script installQsum.pl
    Immissione Descrizione
    -u Specifica l'ID utente utilizzato per connettersi al database SYSTEM. L'utente predefinito è NZ_USER.
    -pw Specifica la password utilizzata per connettersi al database SYSTEM. La password predefinita è NZ_PASSWORD.
    -uninstall Disinstalla l'utilità.