テーブルのサイズが大きくなりクエリが遅くなったり、ストレージ容量が不足したりする場合、Data Management (DMS) の履歴データクリーンアップ機能を使用して古いデータを自動的に削除し、データベースのパフォーマンスを向上させ、安定性の問題を未然に防ぐことができます。
前提条件
データベースは MySQL である必要があります。
データベースインスタンスは、安定的な変更またはセキュリティコラボレーションのコントロールモードを使用する必要があります。コントロールモードの詳細については、コントロールモードをご参照ください。
操作手順
- DMS 5.0 コンソールにログインします。
上部のナビゲーションバーで、を選択します。
説明DMS のシンプルモードでは、左上の
アイコンをクリックし、を選択します。データ変更チケットの申請ページで、チケットのパラメーターを設定し、[送信] をクリックします。
次の表に、一部のパラメーターを示します。
パラメーター
説明
データベース
変更権限を持つデータベースを選択します。読み取り専用またはテーブルレベルの権限のみでは、チケットを送信できません。詳細については、権限の表示をご参照ください。
削除設定
[テーブル名]、[時間フィールド]、[時間精度]、[保存期間 (日)]、[フィルター条件 (NULL 可能)] を入力します。システムはこれらの情報に基づいて、クリーンアップスクリプトを自動的に生成します。
説明論理テーブルの場合は、論理テーブル名を入力します。
保存期間は、データが自動的に削除されるタイミングを定義します。たとえば、保存期間を 7 日に設定すると、7 日より古いデータが削除されます。
例:[テーブル名] が
api_call_record_11、[時間フィールド] がgmt_create、[保存期間] が7、[フィルター条件] がstatus = 1 or status=2の場合、次の SQL 文が生成されます:DELETE FROM `api_call_record_11` WHERE `gmt_create` < SUBDATE(CURDATE(),INTERVAL 7 DAY) AND (status = 1 or status=2);スケジュール
DMS はデータクリーンアップ中にテーブル全体をスキャンし、プライマリキーまたは NULL でない一意キーに基づいてバッチでデータを削除します。データベースのパフォーマンスへの影響を最小限に抑えるために、オフピーク時間に低い頻度で実行をスケジュールしてください。
説明定期タスクの実際の実行時間は、スケジュールされた時間から最大 1 分ずれることがあります。
定期実行の最小間隔は 1 時間です。デフォルトでは、タスクは毎日 02:00 に実行されます。
ポリシー設定
実行期間を指定できます。タスクは指定された期間実行された後、自動的に一時停止し、ピーク時間帯のサービスへの影響を回避します。
終了時刻なしでタスクを実行。
[終了時間を指定 (時間)]:実行期間を設定して、ダウンストリーム同期パイプライン (DTS や AnalyticDB など) のボトルネックが DMS のパフォーマンスに影響を与えるのを防ぎます。
期間を指定した後、[定期的にテーブルを最適化] (最適化) を有効にできます。これはデフォルトで無効になっています。指定されたクリーンアップサイクル数の後に OPTIMIZE TABLE を実行します。デフォルトの間隔は 60 サイクルです。たとえば、間隔カウントを 60 に設定すると、システムは 60 回のクリーンアップごとに OPTIMIZE TABLE を実行します。
説明OPTIMIZE TABLE機能は、RDS for MySQL および PolarDB for MySQL データベースでのみサポートされています。OPTIMIZE TABLE操作の期間は、ポリシー設定で指定された実行期間によって制限されます。OPTIMIZE TABLE操作は、タスクの実行期間が終了すると停止します。
ステークホルダーの変更
指定された関係者は、チケットを表示し、共同で作業できます。管理者と DBA を除き、他のユーザーはアクセスできません。
チケットを送信した後、レプリケーション遅延チェックを有効にし、しきい値を設定し、SQL を変更できます。
(任意) 過度なレプリケーション遅延がプライマリ/スタンバイインスタンスの切り替えに影響を与えるのを防ぐため、レプリケーション遅延チェックを有効にし、しきい値を設定します。
[基本情報] セクションで [チャンクオプション] をクリックして、秒単位で適切なレプリケーション遅延のしきい値を設定します。レプリケーション遅延がしきい値を超えると、SQL の実行は中断されます。
説明現在、この機能は ApsaraDB RDS for MySQL データベースでのみサポートされています。
(任意) SQL を変更します。
チケットを送信すると、システムは自動的に SQL 事前チェックを実行します。事前チェックに失敗した場合は、失敗の理由に基づいて SQL を変更し、再試行できます。
説明承認のために送信する前に、バッチ実行とスケジュールの設定を変更できます。送信後は、これらの設定は変更できません。
[送信] をクリックします。セキュリティコラボレーションモードのインスタンスの場合、チケットは設定されたルールに従って承認のために送信されます。安定的な変更モードのインスタンスの場合、チケットは自動的に承認されます。
チケットが承認されると、システムは自動的に定期タスクを生成し、チケットのオーナーにメールを送信します。[基本情報] セクションで、[定期タスクの表示] をクリックしてスケジュール情報を表示できます。また、以下の操作も実行できます。
スケジュールを一時停止
説明スケジュールを恒久的に無効にする必要がある場合は、履歴データクリーンアップのチケット詳細ページに移動し、右上の [チケットをクローズ] をクリックし、理由を入力して [送信] をクリックします。
スケジュールを再開
説明チケットがクローズされた後、スケジュールを再開するには新しいチケットを送信する必要があります。
チケットのオーナーを変更
チケットを送信したユーザーがデフォルトでオーナーになります。チケットのオーナーのみがスケジュールの一次停止または再開を行えます。各定期実行のメール通知もオーナーにのみ送信されます。
定期タスクが生成された後、システムは設定されたスケジュールポリシーに従って生成された SQL スクリプトを実行します。チケットですべてのスケジュール情報と各実行の詳細を表示できます。
説明スケジュールされた各時刻に、システムはチケットのクリーンアップタスクがすでに実行中であるかどうかを確認します。タスクが進行中の場合、新しいタスクは作成されません。したがって、実行頻度を適切に設定する必要があります。
よくある質問
Q:履歴データクリーンアップタスクの一部として
OPTIMIZE TABLEを実行すると、ビジネスに影響がありますか?A:状況によります。対象インスタンスでロックフリーのスキーマ変更を有効にしている場合、
OPTIMIZE TABLE操作はビジネスに影響を与えません。ロックフリーのスキーマ変更が有効になっていない場合は、ビジネスへの影響を最小限に抑えるために、オフピーク時間帯にOPTIMIZE TABLEを実行してください。ロックフリーのスキーマ変更を有効にする方法については、ロックフリーのスキーマ変更機能を有効にするをご参照ください。Q:実行時間が長すぎる
OPTIMIZE TABLE操作を停止するにはどうすればよいですか?A:[チケット詳細] ページに移動し、[実行] セクションでタスクを一時停止します。