

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 归档未分区表中的数据
<a name="archive-unpartitioned-tables"></a>

在无法进行分区的数据库表中，您可以使用 Percona Toolkit [pt-archiver](https://docs.percona.com/percona-toolkit/pt-archiver.html) 工具将表的数据归档到 MySQL 数据库中的另一个表中。

pt-archiver 工具用于将记录从大表归档到其他表或文件。它是一种 read/write 工具，这意味着它会在存档源表后将其从源表中删除，因此您不必单独管理源数据的删除。此脚本的主要用途是在不影响现有在线事务处理（OLTP）查询负载的情况下归档表中的旧数据（参见附录 I），并将这些数据插入到相同或不同服务器上的另一个表中。

您可以下载 [Percona Toolkit](https://www.percona.com/downloads/percona-toolkit/2.2.14/) 并将其[安装](https://docs.percona.com/percona-toolkit/installation.html)在本地计算机上，也可以安装在连接数据库的 Amazon Elastic Compute Cloud（Amazon EC2）实例上。要运行 pt-archiver 工具，请使用以下语法。

```
pt-archiver --source h=<HOST>,D=<DATABASE>,t=<TABLE>,u=<USER>,p=<PASSWORD> --dest h=<HOST>,D=<DATABASE>,t=<TABLE> --where ""1=1"" --statistics
```

将 `HOST`、`DATABASE`、`TABLE` 和 `USER` 替换为源和目标数据库的详细信息和凭证。

您也可以使用 [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html) 为您的表创建和计划此作业。

使用 pt-archiver 工具归档表的数据时，考虑以下几点：
+ 在源表上创建主键将提高此工具的性能。如果表没有主键，则可以[在唯一列上创建索引](https://dev.mysql.com/doc/refman/8.0/en/create-index.html#create-index-unique)，这将有助于 pt-archiver 遍历表中的所有行并将其归档。
+ 默认情况下，pt-archiver 会在归档表后删除数据。在生产服务器上运行它之前，务必使用 `--dry-run` 测试归档作业。或者，您也可以使用 `--no-delete` 选项。
+ pt-archiver 工具会根据系统的负载调整其归档速率（参见附录 II）。随着负载的增加，归档性能可能会变慢。

运行 pt-archiver 后，您的归档数据应位于归档架构的相应表中。从那里，您可以将其移动到 Amazon S3。