

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 非パーティションテーブルからデータをアーカイブする
<a name="archive-unpartitioned-tables"></a>

パーティション化が不可能なデータベーステーブルでは、Percona Toolkit の [pt-archiver](https://docs.percona.com/percona-toolkit/pt-archiver.html) ツールを使用して、テーブルデータを MySQL データベース内の別のテーブルにアーカイブすると良いでしょう。

pt-archiver ツールを使用すると、大規模テーブルから他のテーブルまたはファイルにレコードをアーカイブできます。このツールによって読み取り/書き込みが行われる、つまり、アーカイブ後にソーステーブルからデータが削除されるため、ソースデータの削除を個別に管理する必要はありません。このスクリプトの主な目的は、既存のオンライントランザクション処理 (OLTP) クエリのロードに影響を与えずに、テーブルから古いデータをアーカイブし (付録 I を参照)、同じサーバーまたは別のサーバーにある別のテーブルにデータを挿入することです。

[Percona Toolkit](https://www.percona.com/downloads/percona-toolkit/2.2.14/) は、ダウンロードして、ローカルマシンまたはデータベースに接続する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに[インストール](https://docs.percona.com/percona-toolkit/installation.html)できます。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 の動作が改善されます。
+ デフォルトでは、テーブルのアーカイブ後にデータが削除されます。本番サーバーで実行する前に、必ず、`--dry-run` を使用してアーカイブジョブをテストしてください。または、`--no-delete` オプションを使用しても良いでしょう。
+ pt-archiver ツールでは、システム負荷に基づいてアーカイブレートを調整します (付録 II を参照)。負荷が高いほど、アーカイブ速度が遅くなると予想されます。

pt-archiver の実行後、アーカイブ済みデータは、それに対応する、アーカイブスキーマのテーブルに存在しているはずです。そのテーブルから Amazon S3 にデータを移動できます。