aria_chk
Contents
aria_chk
si può utilizzare per eseguire un check, riparare, ottimizzare, ordinare e ottenere informazioni sulle tabelle Aria.
In MariDB 5.1 si chiamava maria_chk
.
Si può eseguire CHECK TABLE, REPAIR TABLE e OPTIMIZE TABLE sul server MariaDB per ottenere risultati simili.
Nota: aria_chk
non deve essere utilizzato mentre MariaDB è in esecuzione. Il server presume sempre che nessuno modifichi le tabelle che sta usando!
Utilizzo:
aria_chk [OPZIONI] aria_tables[.MAI]
Le informazioni sulle tabelle Aria sono contenute in due file: il file .MAI
contiene le informazioni di base e gli indici, mentre il file .MAD
contiene i dati.
aria_chk
accetta uno o più file .MAI
come argomenti.
Vengono letti i seguenti gruppi dai file my.cnf:
[maria_chk]
[aria_chk]
Opzioni e variabili
Opzioni globali
Le seguenti opzioni possono essere fornite come primo argomento per gestire i file di configurazione:
Opzione | Spiegazione |
---|---|
| Stampa l'elenco degli argomenti ed esce |
| Non legge le opzioni di default dai file |
| Legge le opzioni di default solo dal file # |
| Legge questo file dopo quelli globali |
Argomenti principali
Opzione | Spiegazione |
---|---|
- ,
| Stampa un log di debug. In genere si chiama: 'd:t:o,nomefile' |
-H ,
| Mostra questo help ed esce |
-? ,
| Mostra questo help ed esce |
| Percorso del file di controllo (e dei log se --logdir non è usato) |
| Non apre il file di controllo. Lo si usi solo se si è certi che le tabelle non siano utilizzate da altri programmi |
| Percorso dei file di log |
| Esce se non può trovare o leggere il file maria_log_control |
-s ,
| Stampa solo gli errori. E' possibile utilizzare due -s per far sì che aria_chk sia molto silenzioso |
-t ,
| Percorso dei file temporanei. E' possibile specificare percorsi multipli, separati da due punti (:) su Unix o punto e virgola (;) su Windows. Verranno usati in stile round-robin |
-v ,
| Stampa più informazioni. Può essere usato in combinazione con --description e --check . Usando diversi -v diventa più verboso |
-V ,
| Stampa il numero di versione ed esce |
-w ,
| Aspetta se la tabella ha un lock |
Opzioni per il Check (--check è l'azione predefinita)
Opzione | Spiegazione |
---|---|
-c ,
| Verifica se la tabella contiene errori |
-e ,
| Controlla la tabella in modo MOLTO approfondito. Da usare solo in casi estremi, perché normalmente aria_chk dovrebbe essere in grado di capire se la tabella è corrotta anche senza usare questo flag |
-F ,
| Controlla solo le tabelle che non sono state chiuse in modo appropriato |
-C ,
| Controlla solo le tabelle che sono state modificate dall'ultimo check |
-f ,
| Si riavvia con '-r ' se trova errori nella tabella. Gli stati vengono aggiornati con '--update-state ' |
-i ,
| Stampa le statistiche sulle tabelle che controlla |
-m ,
| Più rapido di extend-check, e trova il 99.99% di tutti gli errori. Nella maggior parte dei casi è sufficiente |
-U ,
| Se trova degli errori, marca le tabelle come crashate e, se il ckeck non trova errori ma la tabella è stata precedentemente marcata come 'non pulita', la pulisce. Questo permette di evitare warning come 'table not properly closed'. Se la tabella è stata modificata, modifica anche il timestamp che indica l'ultimo check. Questa opzione è attiva per default! Per disabilitarla, si usi --skip-update-state |
-T ,
| Non marca la tabella come controllata |
Opzioni per la riparazione ('--recover' o '--safe-recover'):
Opzione | Spiegazione |
---|---|
-B ,
| Crea un backup del file .MAD chiamato 'nomefile-time.BAK'. |
| Checksum corretto della tabella |
-D ,
| Lunghezza massima del file dei dati (se viene ricreato, viene usata la lunghezza massima). |
-e ,
| Cerca di recuperare ogni possibile record dal file dei dati. Normalmente, trova anche molte righe spazzature; da non usare se non si è totalmente disperati |
-f ,
| Sovrascrive i vecchi file temporanei |
-k ,
| Dice ad Aria di aggiornare solo alcune chiavi specifiche. # è la chiave di bit usata dalle chiavi. Può essere usato per velocizzare le insert |
| Salta le righe più grandi di questo valore, se aria_chk non può allogare abbastanza memoria per contenerle |
-r ,
| Può correggere quasi tutti gli errori, tranne le chiavi uniche che non sono |
-n ,
| Forza il recupero con ordinamento anche se il file temporaneo diventa molto grande |
-p ,
| Utilizza alcune tecniche come '-r' e '-n', ma crea tutte le chiavi in parallelo, in thread diversi |
-o ,
| Utilizza il vecchio metodo di recupero. E' più lento rispetto a '-r' ma sa gestire un paio di casi in cui '-r' risponde che non può correggere il file dei dati |
| Logga il comando repair nel log delle transazioni. E' necessario se si desidera usare maria_read_log per ripetere la riparazione |
| Directory dove si trovano i set di caratteri |
| Modifica la collation usata dagli indici |
-q ,
| Riparazione più rapida, che non modifica il file dei dati. E' possibile specificare un secondo '-q ' per forzare la modifica del file dei dati originale se vengono trovate chiavi duplicate. NOTA: le tabelle che hanno un file di dati corrotto non possono essere riparate con questa opzione |
-u ,
| Decomprime un file compresso con aria_pack |
Altre opzioni
Opzione | Spiegazione |
---|---|
-a ,
| Analizza la distribuzione degli indici. Rende più rapide alcune join in MariaDB. E' possibile conoscere la distribuzione calcolata usando '--description --verbose table_name ' |
| Specifica in che modo debbano essere gestiti i NULL nelle statistiche. I valori possibili sono "nulls_unequal" (predefinito in 4.1/5.0), "nulls_equal" (emula 4.0) e "nulls_ignored" (null diseguali, null uguali, null ignorati) |
-d ,
| Stampa informazioni sulla tabella |
-A ,
| Forza auto_increment perché inizi dal valore specificato, o da un valore più alto. Se non viene specificato un valore, imposta il prossimo valore auto_increment al valore massimo presente + 1 |
-S ,
| Ordina i blocchi degli indici. Questa operazione velocizza 'read-next' nelle applicazioni |
-R ,
| Ordina i record in base a un indice. Questo rende i dati più localizzabili e motrebbe velocizzare alcune operazioni (ma potrebbe essere MOLTO lento, la prima volta!) |
-b ,
| Trova un record, un blocco all'offset indicato |
-z ,
| Rimuove gli id delle transazioni dai file dei dati e degli indici, e riempe gli spazi con degli zeri. Rende possibile spostare la tabella da un sistema a un altro senza che il server debba eseguire un zerofill automatico. Permette di comprimere maggiormente le tabelle, se si desidera archiviarle. |
| Come --zerofill , ma non aggiunge zeri alle pagine LSN dei dati e degli indici |
Variabili
Opzione | Spiegazione |
---|---|
page_buffer_size | Dimensioni del buffer delle pagine. Da usare con --safe-repair |
read_buffer_size | Dimensioni del buffer di lettura usato per effettuare letture sequenziali durante la scansione |
write_buffer_size | Dimensioni del buffer di scrittura usato per le scritture sequenziali durante la riparazione di record in formato fisso o dinamico |
sort_buffer_size | Dimensioni del buffer di ordinamento. Da usare con --recover |
sort_key_blocks | Buffer interno per ordinare i blocchi; da non toccare :) |
Utilizzo:
Un caso d'uso frequente di aria_chk
è quello in cui si desidera effettuare rapidamente un check di tutte le tabelle Aria presenti nel sistema. E' più veloce che farlo in MariaDB, perchè è possibile allocare la memoria libera nei buffer.
Assumendo di avere un po' più di 2 G di memoria libera.
Il seguente comando, eseguiti nella directory dei dati, controllano tutte le tabelle e ripara solo quelle che contengono errori:
aria_chk --check --sort_order --force --sort_buffer_size=1G */*.MAI
Se si vuole ottimizzare tutte le tabelle: (il --zerofill
qui è usato per riempire gli spazi vuoti con \0
e questo può velocizzare i backup compressi).
aria_chk --analyze --sort-index --page_buffer_size=1G --zerofill */*.MAI
Se si hanno seri problemi e si deve usare --safe-recover
:
aria_chk --safe-recover --zerofill --page_buffer_size=2G */*.MAI