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

aria_s3_copy

MariaDB starting with 10.5

The S3 storage engine has been available since MariaDB 10.5.4.

aria_s3_copy is a tool for copying an Aria table to and from S3.

The Aria table must be non transactional and have ROW_FORMAT=PAGE.

For aria_s3_copy to work reliably, the table should not be changed by the MariaDB server during the copy, and one should have first performed FLUSH TABLES to ensure that the table is properly closed.

Example of properly created Aria table:

create table test1 (a int) transactional=0 row_format=PAGE engine=aria;

Note that ALTER TABLE table_name ENGINE=S3 will work for any kind of table. This internally converts the table to an Aria table and then moves it to S3 storage.

Main Arguments

OptionDescription
-?, --helpDisplay this help and exit.
-k, --s3-access-key=nameAWS access key ID
-r, --s3-region=nameAWS region
-K, --s3-secret-key=nameAWS secret access key ID
-b, --s3-bucket=nameAWS prefix for tables
-h, --s3-host-name=nameHost name to S3 provider
-c, --compressUse compression
-o, --op=nameOperation to execute. One of 'from_s3', 'to_s3' or 'delete_from_s3'
-d, --database=nameDatabase for copied table (second prefix). If not given, the directory of the table file is used
-B, --s3-block-size=#Block size for data/index blocks in s3
-L, --s3-protocol-version=nameProtocol used to communication with S3. One of "Amazon" or "Original".
-f, --forceForce copy even if target exists
-v, --verboseWrite more information
-V, --versionPrint version and exit.
-#, --debug[=name]Output debug log. Often this is 'd:t:o,filename'.
--s3-debugOutput debug log from marias3 to stdout

Typical Configuration in a my.cnf File

[aria_s3_copy]
s3-bucket=mariadb
s3-access-key=xxxx
s3-secret-key=xxx
s3-region=eu-north-1
#s3-host-name=s3.amazonaws.com
#s3-protocol-version=Amazon
verbose=1
op=to

Example Usage

The following code will copy an existing Aria table named test1 to S3. If the --database option is not given, then the directory name where the table files exist will be used as the database.

shell> aria_s3_copy --force --op=to --database=foo --compress --verbose --s3_block_size=4M test1
Delete of aria table: foo.test1
Delete of index information foo/test1/index
Delete of data information foo/test1/data
Delete of base information and frm
Copying frm file test1.frm
Copying aria table: foo.test1 to s3
Creating aria table information foo/test1/aria
Copying index information foo/test1/index
.
Copying data information foo/test1/data
.

When using --verbose, aria_s3_copy will write a dot for each #/79 part of the file copied.

See Also

Using the S3 storage engine. This pages has examples of .my.cnf entries for using aria_s3_copy.

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.