OS Manuals

/usr/bin/aria_chk

The MariaDB open source relational database

From mariadb-11.5 11.5.2-r4 (os), captured 2026-11-05 by running aria_chk --help (exit 0). permalink

/usr/bin/aria_chk from 11.5.2-MariaDB, client 1.3 for Linux (x86_64)
By Monty, for your professional use
This software comes with NO WARRANTY: see the PUBLIC for details.

Description, check and repair of Aria tables.
Used without options all tables on the command will be checked for errors
Usage: aria_chk [OPTIONS] tables[.MAI]

Global options:
  -H, --HELP          Print all argument options sorted alphabetically.
  -?, --help          Print all options by groups
  --datadir=path      Path for control file (and logs if --logdir not used)
  --logdir=path       Path for log files
  --ignore-control-file  Don't open the control file. Only use this if you
                         are sure the tables are not in use by another
                         program!
  --require-control-file  Abort if we can't find/read the aria_log_control
                          file
  -s, --silent	      Only print errors.  One can use two -s to make
		      maria_chk very silent.
  -t, --tmpdir=path   Path for temporary files. Multiple paths can be
                      specified, separated by colon (:), they will be used
                      in a round-robin fashion.
  -v, --verbose       Print more information. This can be used with
                      --description and --check. Use many -v for more verbosity.
  -V, --version       Print version and exit.
  -w, --wait          Wait if table is locked.

Check options (check is the default action for aria_chk):
  -c, --check	      Check table for errors.
  -e, --extend-check  Check the table VERY throughly.  Only use this in
                      extreme cases as aria_chk should normally be able to
                      find out if the table is ok even without this switch.
  -F, --fast	      Check only tables that haven't been closed properly.
  -C, --check-only-changed
		      Check only tables that have changed since last check.
  -f, --force         Restart with '-r' if there are any errors in the table.
		      States will be updated as with '--update-state'.
  -i, --information   Print statistics information about table that is checked.
  -m, --medium-check  Faster than extend-check, but only finds 99.99% of
		      all errors.  Should be good enough for most cases.
  -T, --read-only     Don't mark table as checked.
  -U, --update-state  Mark tables as crashed if any errors were found and
                      clean if check didn't find any errors but table was
	              marked as 'not clean' before. This allows one to get
 		      rid of warnings like 'table not properly closed'. If
		      table was updated, update also the timestamp for when
 		      the check was made. This option is on by default!
		      Use --skip-update-state to disable.
  --warning-for-wrong-transaction-id
   Give a warning if we find a transaction id in the table that is bigger
   than what exists in the control file. Use --skip-... to disable warning

Recover (repair)/ options (When using '--recover' or '--safe-recover'):
  -B, --backup	      Make a backup of the .MAD file as 'filename-time.BAK'.
  --correct-checksum  Correct checksum information for table.
  -D, --data-file-length=#  Max length of data file (when recreating data
                      file when it's full).
 --create-missing-keys
                      Create missing keys. This assumes that the data
                      file is correct and that the the number of rows stored
                      in the index file is correct. Enables --quick.
  -e, --extend-check  Try to recover every possible row from the data file
		      Normally this will also find a lot of garbage rows;
		      Don't use this option if you are not totally desperate.
  -f, --force         Overwrite old temporary files. Add another --force to
                      avoid 'sort_buffer_size is too small' errors.
                      In this case we will attempt to do the repair with the
                      given sort_buffer_size and dynamically allocate
                      as many management buffers as needed.
  -k, --keys-used=#   Tell Aria to update only some specific keys. # is a
	              bit mask of which keys to use. This can be used to
		      get faster inserts.
  --max-record-length=#
                      Skip rows bigger than this if aria_chk can't allocate
		      memory to hold it.
  -r, --recover       Can fix almost anything except unique keys that aren't
                      unique.
  -n, --sort-recover  Forces recovering with sorting even if the temporary
		      file would be very big.
  -p, --parallel-recover
                      Uses the same technique as '-r' and '-n', but creates
                      all the keys in parallel, in different threads.
  -o, --safe-recover  Uses old recovery method; Slower than '-r' but can
 		      handle a couple of cases where '-r' reports that it
		      can't fix the data file.
  --transaction-log   Log repair command to transaction log. This is needed
                      if one wants to use the aria_read_log to repeat the
                      repair
  --character-sets-dir=...
                      Directory where character sets are.
  --set-collation=name
 		      Change the collation used by the index.
  -q, --quick         Faster repair by not modifying the data file.
                      One can give a second '-q' to force aria_chk to
		      modify the original datafile in case of duplicate keys.
		      NOTE: Tables where the data file is corrupted can't be
		      fixed with this option.
  -u, --unpack        Unpack file packed with ariapack.

Other actions:
  -a, --analyze	      Analyze distribution of keys. Will make some joins in
		      MariaDB faster.  You can check the calculated distribution
		      by using '--description --verbose table_name'.
  --stats_method=name Specifies how index statistics collection code should
                      treat NULLs. Possible values of name are "nulls_unequal"
                      (default for 4.1/5.0), "nulls_equal" (emulate 4.0), and
                      "nulls_ignored".
  -d, --description   Prints some information about table.
  -A, --set-auto-increment[=value]
		      Force auto_increment to start at this or higher value
		      If no value is given, then sets the next auto_increment
		      value to the highest used value for the auto key + 1.
  -S, --sort-index    Sort index blocks.  This speeds up 'read-next' in
		      applications.
  -R, --sort-records=#
		      Sort records according to an index.  This makes your
		      data much more localized and may speed up things
		      (It may be VERY slow to do a sort the first time!).
  -b,  --block-search=#
                      Find a record, a block at given offset belongs to.
  -z,  --zerofill     Fill empty space in data and index files with zeroes.
                      This makes the data file movable between different
                      servers.  It also fixes any wrong transaction or LSN
                      numbers in the table after a crash or if someone
                      removed the Aria log files.
  --zerofill-keep-lsn Like --zerofill but does not zero out LSN of
                      data/index pages.
Variables:
--page_buffer_size=#   Size of page buffer. Used by --safe-repair
--read_buffer_size=#   Read buffer size for sequential reads during scanning
--sort_buffer_size=#   Size of sort buffer. Used by --recover
--sort_key_blocks=#    Internal buffer for sorting keys; Don't touch :)
--write_buffer_size=#  Write buffer size for sequential writes during repair

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
The following groups are read: aria_chk
The following options may be given as the first argument:
--print-defaults          Print the program argument list and exit.
--no-defaults             Don't read default options from any option file.
The following specify which files/extra groups are read (specified before remaining options):
--defaults-file=#         Only read default options from the given file #.
--defaults-extra-file=#   Read this file after the global files are read.
--defaults-group-suffix=# Additionally read default groups with # appended as a suffix.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
character-sets-dir                (No default value)
data-file-length                  0
ignore-control-file               FALSE
keys-used                         18446744073709551615
datadir                           .
logdir                            .
max-record-length                 9223372036854775807
require-control-file              FALSE
set-auto-increment                0
set-collation                     (No default value)
sort-records                      0
tmpdir                            (No default value)
transaction-log                   FALSE
update-state                      TRUE
warning-for-wrong-transaction-id  TRUE
page-buffer-size                  268427264
read-buffer-size                  261120
write-buffer-size                 261120
sort-buffer-size                  268434432
sort-key-blocks                   16
decode-bits                       9
ft-min-word-len                   4
ft-max-word-len                   84
aria-ft-stopword-file             (No default value)
stats-method                      nulls_unequal
Options (55)
OptionDescriptionSource
-H, --HELPPrint all argument options sorted alphabetically.help + man
-?, --helpPrint all options by groupshelp + man
--datadir pathPath for control file (and logs if --logdir not used)help + man
--logdir pathPath for log fileshelp + man
--ignore-control-fileDon't open the control file.help + man
--require-control-fileAbort if we can't find/read the maria_log_control filehelp + man
-s, --silentOnly print errors.help + man
-t, --tmpdir pathPath for temporary files.help + man
-v, --verbosePrint more information.help + man
-V, --versionPrint version and exit.help + man
-w, --waitWait if table is locked.help + man
-c, --checkCheck table for errors.help + man
-e, --extend-checkCheck the table VERY thoroughly.help + man
-F, --fastCheck only tables that haven't been closed properly.help + man
-C, --check-only-changedCheck only tables that have changed since last check.help + man
-f, --forceRestart with '-r' if there are any errors in the table.help + man
-i, --informationPrint statistics information about table that is checked.help + man
-m, --medium-checkFaster than extend-check, but only finds 99.99% of all errors.help + man
-T, --read-onlyDon't mark table as checked.help + man
-U, --update-stateMark tables as crashed if any errors were found and clean if check didn't find any errors but table was marked as 'not clean' before.help + man
--warning-for-wrong-transaction-idGive a warning if we find a transaction id in the table that is bigger than what exists in the control file.help + man
-B, --backupMake a backup of the .MAD file as 'filename-time.BAK'.help + man
--correct-checksumCorrect checksum information for table.help + man
-D, --data-file-length #Max length of data file (when recreating data file when it's full).help + man
--create-missing-keysCreate missing keys.help
-k, --keys-used #Tell Aria to update only some specific keys.help + man
--max-record-length #Skip rows bigger than this if aria_chk can't allocate memory to hold it.help + man
-r, --recoverCan fix almost anything except unique keys that aren't unique.help + man
-n, --sort-recoverForces recovering with sorting even if the temporary file would be very big.help + man
-p, --parallel-recoverUses the same technique as '-r' and '-n', but creates all the keys in parallel, in different threads.help + man
-o, --safe-recoverUses old recovery method;help + man
--transaction-logLog repair command to transaction log.help + man
--character-sets-dir ...Directory where character sets are.help + man
--set-collation nameChange the collation used by the index.help + man
-q, --quickFaster repair by not modifying the data file.help + man
-u, --unpackUnpack file packed with ariapack.help + man
-a, --analyzeAnalyze distribution of keys.help + man
-d, --descriptionPrints some information about table.help + man
-A, --set-auto-increment valueForce auto_increment to start at this or higher value If no value is given, then sets the next auto_increment value to the highest used value for the auto key + 1.help
-S, --sort-indexSort index blocks.help + man
-R, --sort-records #Sort records according to an index.help + man
-b, --block-search #--block-search=# Find a record, a block at given offset belongs to.help + man
-z, --zerofill--zerofill Fill empty space in data and index files with zeroes.help + man
--page_buffer_size #Size of page buffer.help + man
--read_buffer_size #Read buffer size for sequential reads during scanninghelp + man
--sort_buffer_size #Size of sort buffer.help + man
--sort_key_blocks #Internal buffer for sorting keys;help + man
--write_buffer_size #Write buffer size for sequential writes during repairhelp + man
--print-defaultsPrint the program argument list and exit.help + man
--no-defaultsDon't read default options from any option file.help + man
--defaults-file #Only read default options from the given file #.help + man
--defaults-extra-file #Read this file after the global files are read.help + man
-#, --debug ...Output debug log. (in the manual page but not in --help)man
--stats_method nameSpecifies how index statistics collection code should treat NULLs. (in the manual page but not in --help)man
--zerofill-keep-lsnLike --zerofill but does not zero out LSN of data/index pages. (in the manual page but not in --help)man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.