データベーステーブル内のデータを削除または更新すると、ディスク上のデータストレージが不連続になることがあります。この断片化はディスク領域を浪費し、パフォーマンスを低下させます。Database Autonomy Service (DAS) は、フラグメントの自動回収機能をサポートしています。インスタンスのメンテナンスウィンドウ中に、DAS はプライマリインスタンスで自動的に Optimize Table または Alter Table コマンドを実行して、テーブルスペースのフラグメントを回収し、ストレージを最適化します。
前提条件
インスタンスが RDS High-availability Edition、RDS Enterprise Edition、または RDS Cluster Edition であること。
インスタンスが 14 日以上前に作成されていること。
インスタンスに 4 つ以上の CPU コアがあること。
物理テーブルが InnoDB ストレージエンジンを使用していること。
背景情報
テーブルスペースの断片化の一般的な原因:
行が削除され、元の領域が再利用できなくなる。
特に可変長フィールドで行を更新すると、再利用できない領域が残ることがある。
行の挿入によってページ分割が発生し、ページフィルファクターが低下する。
最適化前のチェック項目
DAS は、断片化した表領域から領域を回収するために、プライマリインスタンス上で OPTIMIZE TABLE または ALTER TABLE コマンドを実行します。断片化したスペースの自動再利用 操作を開始する前に、DAS は以下のチェックを実施します。断片化したスペースの自動再利用 操作は、すべてのチェックに合格した後にのみ実行されます。
-
以下のいずれかのチェックに失敗した場合、DAS はそのテーブルに対する 断片化したスペースの自動再利用 操作を直ちに停止します。
-
インスタンスの空き領域が、対象テーブルが占有する物理空間の少なくとも 3 倍あること。
説明たとえば、対象テーブルが 30 GB の物理空間を占有している場合、インスタンスには少なくとも 90 GB の空き領域が必要です。
-
テーブルに FULLTEXT インデックスが存在しないこと。
-
-
以下のいずれかのチェックに失敗した場合、DAS は 1 ~ 5 分待機して再試行します。現在のメンテナンスウィンドウ内でチェックが合格しない場合は、次のメンテナンスウィンドウで再試行します。断片化したスペースの自動再利用 操作は、すべてのチェックに合格した後にのみ開始されます。
-
インスタンスでバックアップタスクが実行されていないこと。
-
スキーマ変更操作が進行中でないこと。
-
インスタンスの CPU 使用率が特定のしきい値を下回っていること。DAS は 断片化したスペースの自動再利用 に必要な時間を推定し、前日および前週の同一時間帯の CPU 使用率が 70 % を下回っていたことを検証します。また、操作直前の CPU 使用率が 80 % を下回っていることも検証します。
説明たとえば、90 GB の物理空間を占有するテーブルが 12 月 10 日 03:00 に回収スケジュールされており、操作に 30 分かかると予想される場合、DAS は以下を検証します。
-
12 月 9 日 03:00 ~ 03:30 の CPU 使用率が 70 % を下回っていたこと。
-
12 月 3 日 03:00 ~ 03:30 の CPU 使用率が 70 % を下回っていたこと。
-
12月10日の03:00における CPU 使用率は 80% を下回っています。
-
-
対象のテーブルで実行中のクエリには、3 秒以上実行されているものはありません。
-
保留中のトランザクション(コミットされずに 15 秒以上ロックを保持しているトランザクション)が存在しないこと。
-
インスタンスのアクティブセッション数が 64 未満であること。
-
チェックに合格しない場合、断片化したスペースの自動再利用 タスクは実行されません。手動で OPTIMIZE TABLE コマンドを実行して、断片化した表領域から領域を回収できます。詳細については、「OPTIMIZE TABLE コマンドを使用して MySQL インスタンスの表領域を解放する」をご参照ください。
DAS O&M サービスの有効化
[断片化したスペースの自動再利用] 機能を使用する前に、対象インスタンスの DAS の O&M (運用保守) サービスを有効にする必要があります。サービスがすでに有効になっている場合は、このセクションをスキップしてください。
DAS コンソールにログインします。
左側メニューで、 をクリックします。
インスタンス ページで、対象のインスタンスを見つけ、操作とメンテナンスサービス 列の 開通する をクリックします。
表示されるパネルで、期間 を選択し、開通する をクリックして、インスタンスの DAS の O&M サービスを有効にします。
フラグメントの自動回収の設定
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
左側メニューで、 を選択します。自律型センター ページで、自律機能設定 をクリックします。
タブで、自律型機能のスイッチをオンにします。次に、最適化とスロットリング タブで、断片化したスペースの自動再利用 を選択します。
断片化したスペースの自動再利用 を有効にした後、次のパラメーターを設定し、OK をクリックします。
重要データベースインスタンスの領域ステータスが指定されたしきい値に達すると、DAS はインスタンスの O&Mウィンドウ 中にフラグメントの自動回収を実行します。
パラメーター
説明
テーブルスペース >
フラグメントの自動回収をトリガーする単一の物理テーブルの最小サイズ。有効値:5 GB〜100 GB。デフォルト値:10 GB。
テーブルサイズが大きいと、回収プロセスが長引く可能性があります。ビジネス要件に基づいて値を選択してください。
説明インスタンス上のすべてのテーブルが 5 GB 未満または 100 GB を超える場合、システムはフラグメントの回収を実行しません。
断片化率 (%) >
フラグメントの自動回収をトリガーする単一の物理テーブルの最小断片化率。有効値:10%〜99%。デフォルト値:20%。
断片化率が高いと、領域最適化の頻度が低下します。ビジネス要件に基づいて値を選択してください。
説明インスタンス上のすべてのテーブルの断片化率が 10% 未満の場合、システムはフラグメントの回収を実行しません。
説明たとえば、テーブルスペース > を 5 GB に、テーブルスペース > を 10% に設定した場合、サイズが 5 GB〜100 GB で断片化率が 10% 以上のすべてのテーブルで、フラグメントの自動回収がトリガーされます。
(オプション) アラートテンプレート を設定してアラートを受信し、インスタンスの 断片化したスペースの自動再利用 のステータスを監視します。
システムはアラートテンプレートを推奨し、対応する自律イベントのアラートルールを追加します。プロンプトに従って設定を完了できます。
説明インスタンスにアラートテンプレートをすでに設定している場合は、プロンプトに従って、対応する自律イベントのアラートルールをテンプレートに追加します。
アラートテンプレートとアラートルールを手動で設定する場合は、「アラートテンプレートの設定」と「アラートルールの設定」をご参照ください。
アラート通知用の アラート連絡先グループ を選択します。
連絡先を追加 をクリックして、新しいアラート連絡先を追加します。
連絡先グループの追加 をクリックして、新しい連絡先グループを追加します。
連絡先の横にある 変更 または 削除 をクリックして、連絡先の情報を変更または削除します。
詳細については、「アラート連絡先の管理」をご参照ください。
[関連付けリソース] を確認します。
構成のコミット をクリックし、表示されるダイアログボックスでアラート設定を確認します。