All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Aria Clients and Utilities

Explore Aria clients and utilities for MariaDB Server. This section details specialized tools for managing and interacting with tables that utilize the Aria storage engine.

aria_pack

aria_pack is a tool for compressing Aria tables. The resulting tables are read-only, and usually about 40% to 70% smaller.

aria_pack is run as follows:

The file name is the .MAI index file. The extension can be omitted, although keeping it permits wildcards, for instance to compress all the files, such as:

aria_pack compresses each column separately. This means, when the resulting data is read, only the individual rows and columns required need to be decompressed, allowing for quicker reading.

Once a table has been packed, use aria_chk -rq (the quick and recover options) to rebuild its indexes.

Options

The following variables can be set as command line options to aria_pack, or set in the [ariapack] section in your file:

Option
Description

Unpacking

To unpack a table compressed with aria_pack, use the option.

Example

See Also

This page is licensed: CC BY-SA / Gnu FDL

aria_pack [options] file_name [file_name2...]
aria_pack *.MAI

--ignore-control-file

Ignore the control file.

This option is available from MariaDB 10.5.3.

-j, --join=name

Join all given tables into name. All tables must have identical layouts.

--require-control-file

Abort if the tool cannot find the control file.

This option is available from MariaDB 10.5.3.

-s, --silent

Only write output when an error occurs.

-t, --test

Don't pack table, only test packing it.

-T, --tmpdir=name

Use temporary directory to store temporary table.

-v, --verbose

Write info about progress and packing result. Use multiple -v options for more verbosity.

-V, --version

Output version information and exit.

-w, --wait

Wait and retry if table is in use.

-b, --backup

Make a backup of the table as table_name.OLD.

--character-sets-dir=name

Directory where character sets are located.

-h, --datadir

Path for control file (and logs if --logdir is not used).

This option is available from MariaDB 10.5.3.

-#, --debug[=name]

Output debug log. Often this is d:t:o,filename.

-?, --help

Display help and exit.

-f, --force

Force packing of table even if it gets bigger or if a temporary file exists.

my.cnf
aria_chk -u
FLUSH TABLES FOR EXPORT
myisamchk
> aria_pack /my/data/test/posts
Compressing /my/data/test/posts.MAD: (1690 records)
- Calculating statistics
- Compressing file
37.71%     
> aria_chk -rq --ignore-control-file /my/data/test/posts
- check record delete-chain
- recovering (with keycache) Aria-table '/my/data/test/posts'
Data records: 1690
State updated

aria_chk

aria_chk is used to check, repair, optimize, sort and get information about Aria tables.

With the MariaDB server, you can use CHECK TABLE,REPAIR TABLE and OPTIMIZE TABLE to do similar things.

Note: aria_chk should not be used when MariaDB is running. MariaDB Server assumes that no one is changing the tables it's using.

Usage

Aria table information is stored in 2 files: the .MAI file contains base table information and the index and the .MAD file contains the data.aria_chk takes one or more .MAI files as arguments.

The following groups are read from the my.cnf files:

  • [maria_chk]

  • [aria_chk]

Options and Variables

Global Options

The following options to handle option files may be given as the first argument:

Option
Description

Main Arguments

Option
Description

Check Options

--check is the default action for aria_chk:

Option
Description

Recover (Repair) Options

When using --recover or --safe-recover' , these options are available:

Option
Description

Other Options

Option
Description

Variables

Option
Description

Examples

The main usage of aria_chk is a fast check of all Aria tables in your system. This is faster than doing it in MariaDB, as you can allocate all free memory to the buffers.

Assuming you have a bit more than 2G free memory, the following commands, run in the MariaDB data directory, check all your tables and repairs only those that have an error:

To optimize all your tables, run this command (the --zerofill option is used here to fill up empty space with \0 which can speed up compressed backups):

In case you have a serious problem and have to use --safe-recover, run this command:

This page is licensed: CC BY-SA / Gnu FDL

--require-control-file

Abort if we can't find/read the maria_log_control file.

-s, --silent

Only print errors. You can use two -s options to make aria_chk very silent.

-t, --tmpdir=path

Path for temporary files. Multiple paths can be specified, separated by colon (:) on Unix or semicolon (;) on Windows. They are used in a round-robin fashion.

-v, --verbose

Print more information. This can be used with --description and --check. Use many -v options for more verbosity.

-V, --version

Print version and exit.

-w, --wait

Wait if table is locked.

-m, --medium-check

Faster than extend-check, and finds 99.99% of all errors. Should be good enough for most cases.

-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.

-T, --read-only

Don't mark table as checked.

--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 an old recovery method, which is slower than using -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 maria_read_log option 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 with a corrupted ´ data file can't be fixed with this option.

-u, --unpack

Unpack file packed with .

-b, --block-search=#

Find a record, a block at given offset belongs to.

-z, --zerofill

Remove transaction id's from the data and index files and fills empty space in the data and index files with zeroes. Zerofilling makes it possible to move the table from one system to another without the server having to do an automatic zerofill. It also allows one to compress the tables better if one want to archive them.

--zerofill-keep-lsn

Like --zerofill but does not zero out LSN of data/index pages.

--print-defaults

Print the program argument list and exit.

--no-defaults

Don't read default options from any option file.

--defaults-file=#

Only read default options from the given file #.

--defaults-extra-file=#

Read this file after the global files are read.

-#, --debug=...

Output debug log. Often this is d:t:o,filename.

-H, --HELP

Display this help and exit.

-?, --help

Display this help and exit.

--datadir=path

Path for control file (and logs if the --logdir option is not used).

--ignore-control-file

Don't open the control file.

Use this only if you are sure the tables are not used by another program.

--logdir=path

Path for log files.

-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 okay, 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 is updated as with --update-state.

-i, --information

Print statistics information about table that is checked.

-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).

-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.

-k, --keys-used=#

Tell MariaDB to update only some specific keys. # is a bit mask of which keys to use. This can be used to get faster inserts.

-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!).

page_buffer_size

Size of page buffer. Used by --safe-repair.

read_buffer_size

Read buffer size for sequential reads during scanning.

write_buffer_size

Write buffer size for sequential writes during repair of fixed size or dynamic size rows.

sort_buffer_size

Size of sort buffer. Used by --recover.

sort_key_blocks

Internal buffer for sorting keys. Do not use!

aria_chk [OPTIONS] aria_tables[.MAI]
aria_chk --check --sort_order --force --sort_buffer_size=1G */*.MAI
aria_chk --analyze --sort-index --page_buffer_size=1G --zerofill */*.MAI
aria_chk --safe-recover --zerofill --page_buffer_size=2G */*.MAI
aria_pack

aria_read_log

aria_read_log is a tool for displaying and applying log records from an Aria transaction log.

Aria is compiled without -DIDENTICAL_PAGES_AFTER_RECOVERY which means that the table files are not byte-to-byte identical to files created during normal execution. This should be okay, except for test scripts that try to compare files before and after recovery.

Usage

As an option, you need to use at least one of -d or -a.

Options

The following variables can be set while passed as command line options to aria_read_log, or set in the [aria_read_log] section in your file.

Option
Description

This page is licensed: CC BY-SA / Gnu FDL

-h, --aria-log-dir-path=name

Path to the directory where to store transactional log.

-P, --page-buffer-size=#

The size of the buffer used for index blocks of Aria tables.

-l, --print-log-control-file

Print the content of the aria_log_control_file.

-o, --start-from-lsn=#

Start reading log from this lsn.

-C, --start-from-checkpoint

Start applying from last checkpoint.

-s, --silent

Print less information during apply/undo phase.

-T, --tables-to-redo=name

List of comma-separated tables that we should apply REDO on. Use this if you only want to recover some tables.

-t, --tmpdir=name

Path for temporary files. Multiple paths can be specified, separated by colon (:).

--translog-buffer-size=#

The size of the buffer used for transaction log of Aria tables.

-u, --undo

Apply UNDO records to tables. Disable with --disable-undo. Defaults to on; use --skip-undo to disable.

-v, --verbose

Print more information during apply/undo phase.

-V, --version

Print version and exit.

-a, --apply

Apply log to tables.

Careful — this modifies tables! Make a backup first!

Displays a lot of information if not run with the --silent option.

--character-sets-dir=name

Directory where character sets are.

-c, --check

Used with the --display-only option, check if record is fully readable (for debugging).

-?, --help

Display help and exit.

-d, --display-only

Display brief info read from records' header.

-e, --end-lsn=#

Stop applying at this lsn. If end-lsn is used, UNDO operations are not be applied.

my.cnf
aria_read_log OPTIONS