This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

aria_chk

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:

OpzioneSpiegazione
--print-defaultsStampa l'elenco degli argomenti ed esce
--no-defaultsNon legge le opzioni di default dai file
--defaults-file=# Legge le opzioni di default solo dal file #
--defaults-extra-file=# Legge questo file dopo quelli globali

Argomenti principali

OpzioneSpiegazione
-#, --debug=...Stampa un log di debug. In genere si chiama: 'd:t:o,nomefile'
-H, --HELPMostra questo help ed esce
-?, --helpMostra questo help ed esce
--datadir=percorsoPercorso del file di controllo (e dei log se --logdir non è usato)
--ignore-control-fileNon apre il file di controllo. Lo si usi solo se si è certi che le tabelle non siano utilizzate da altri programmi
--logdir=percorsoPercorso dei file di log
--require-control-fileEsce se non può trovare o leggere il file maria_log_control
-s, --silentStampa solo gli errori. E' possibile utilizzare due -s per far sì che aria_chk sia molto silenzioso
-t, --tmpdir=percorsoPercorso 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, --verboseStampa più informazioni. Può essere usato in combinazione con --description e --check. Usando diversi -v diventa più verboso
-V, --versionStampa il numero di versione ed esce
-w, --waitAspetta se la tabella ha un lock

Opzioni per il Check (--check è l'azione predefinita)

OpzioneSpiegazione
-c, --checkVerifica se la tabella contiene errori
-e, --extend-checkControlla 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, --fastControlla solo le tabelle che non sono state chiuse in modo appropriato
-C, --check-only-changedControlla solo le tabelle che sono state modificate dall'ultimo check
-f, --forceSi riavvia con '-r' se trova errori nella tabella. Gli stati vengono aggiornati con '--update-state'
-i, --informationStampa le statistiche sulle tabelle che controlla
-m, --medium-checkPiù rapido di extend-check, e trova il 99.99% di tutti gli errori. Nella maggior parte dei casi è sufficiente
-U, --update-stateSe 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, --read-onlyNon marca la tabella come controllata

Opzioni per la riparazione ('--recover' o '--safe-recover'):

OpzioneSpiegazione
-B, --backupCrea un backup del file .MAD chiamato 'nomefile-time.BAK'.
--correct-checksumChecksum corretto della tabella
-D, --data-file-length=#Lunghezza massima del file dei dati (se viene ricreato, viene usata la lunghezza massima).
-e, --extend-checkCerca di recuperare ogni possibile record dal file dei dati. Normalmente, trova anche molte righe spazzature; da non usare se non si è totalmente disperati
-f, --forceSovrascrive i vecchi file temporanei
-k, --keys-used=#Dice ad Aria di aggiornare solo alcune chiavi specifiche. # è la chiave di bit usata dalle chiavi. Può essere usato per velocizzare le insert
--max-record-length=#Salta le righe più grandi di questo valore, se aria_chk non può allogare abbastanza memoria per contenerle
-r, --recoverPuò correggere quasi tutti gli errori, tranne le chiavi uniche che non sono
-n, --sort-recoverForza il recupero con ordinamento anche se il file temporaneo diventa molto grande
-p, --parallel-recoverUtilizza alcune tecniche come '-r' e '-n', ma crea tutte le chiavi in parallelo, in thread diversi
-o, --safe-recoverUtilizza 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
--transaction-logLogga il comando repair nel log delle transazioni. E' necessario se si desidera usare maria_read_log per ripetere la riparazione
--character-sets-dir=...Directory dove si trovano i set di caratteri
--set-collation=nomeModifica la collation usata dagli indici
-q, --quickRiparazione 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, --unpackDecomprime un file compresso con aria_pack

Altre opzioni

OpzioneSpiegazione
-a, --analyzeAnalizza la distribuzione degli indici. Rende più rapide alcune join in MariaDB. E' possibile conoscere la distribuzione calcolata usando '--description --verbose table_name'
--stats_method=nomeSpecifica 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, --descriptionStampa informazioni sulla tabella
-A, --set-auto-increment[=valore]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, --sort-indexOrdina i blocchi degli indici. Questa operazione velocizza 'read-next' nelle applicazioni
-R, --sort-records=#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, --block-search=#Trova un record, un blocco all'offset indicato
-z, --zerofillRimuove 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.
--zerofill-keep-lsnCome --zerofill, ma non aggiunge zeri alle pagine LSN dei dati e degli indici

Variabili

OpzioneSpiegazione
page_buffer_sizeDimensioni del buffer delle pagine. Da usare con --safe-repair
read_buffer_sizeDimensioni del buffer di lettura usato per effettuare letture sequenziali durante la scansione
write_buffer_sizeDimensioni del buffer di scrittura usato per le scritture sequenziali durante la riparazione di record in formato fisso o dinamico
sort_buffer_sizeDimensioni del buffer di ordinamento. Da usare con --recover
sort_key_blocksBuffer 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
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.