本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
归档未分区表中的数据
在无法进行分区的数据库表中,您可以使用 Percona Toolkit pt-archiver
pt-archiver 工具用于将记录从大表归档到其他表或文件。它是一种 read/write 工具,这意味着它会在存档源表后将其从源表中删除,因此您不必单独管理源数据的删除。此脚本的主要用途是在不影响现有在线事务处理(OLTP)查询负载的情况下归档表中的旧数据(参见附录 I),并将这些数据插入到相同或不同服务器上的另一个表中。
您可以下载 Percona Toolkit
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 为您的表创建和计划此作业。
使用 pt-archiver 工具归档表的数据时,考虑以下几点:
-
在源表上创建主键将提高此工具的性能。如果表没有主键,则可以在唯一列上创建索引
,这将有助于 pt-archiver 遍历表中的所有行并将其归档。 -
默认情况下,pt-archiver 会在归档表后删除数据。在生产服务器上运行它之前,务必使用
--dry-run测试归档作业。或者,您也可以使用--no-delete选项。 -
pt-archiver 工具会根据系统的负载调整其归档速率(参见附录 II)。随着负载的增加,归档性能可能会变慢。
运行 pt-archiver 后,您的归档数据应位于归档架构的相应表中。从那里,您可以将其移动到 Amazon S3。