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
Option | Description |
---|---|
-?, --help | Display this help and exit. |
-k, --s3-access-key=name | AWS access key ID |
-r, --s3-region=name | AWS region |
-K, --s3-secret-key=name | AWS secret access key ID |
-b, --s3-bucket=name | AWS prefix for tables |
-h, --s3-host-name=name | Host name to S3 provider |
-c, --compress | Use compression |
-o, --op=name | Operation to execute. One of 'from_s3', 'to_s3' or 'delete_from_s3' |
-d, --database=name | Database 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=name | Protocol used to communication with S3. One of "Amazon" or "Original". |
-f, --force | Force copy even if target exists |
-v, --verbose | Write more information |
-V, --version | Print version and exit. |
-#, --debug[=name] | Output debug log. Often this is 'd:t:o,filename'. |
--s3-debug | Output 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
.