Database Autonomy Service (DAS) は、指定された表領域サイズおよび断片化率のしきい値を超える MySQL テーブルから、自動的にテーブルスペースフラグメントを回収します。回収処理はインスタンスのメンテナンスウィンドウ中に実行され、ビジネスへの影響を最小限に抑えるためにワークロードチェックが含まれます。
前提条件
-
インスタンスに対して O&M サービスが有効になっています。
-
インスタンスは以下のいずれかのタイプです。
-
RDS for MySQL の High-availability Edition、Three-node Enterprise Edition、または Cluster Edition インスタンス。
-
MyBase for MySQL High-availability Edition。
-
-
インスタンスの作成後 14 日以上経過しています。
-
インスタンスの CPU コア数が 4 コア以上です。
背景情報
表領域の断片化の主な原因は以下のとおりです。
-
レコードが削除され、元の領域を再利用できない。
-
レコードが更新される(通常は可変長フィールドで)、元の領域を再利用できない。
-
レコードの挿入によりページ分割が発生し、ページの充填率が低下する。
制限事項
-
自動フラグメント回収は、InnoDB ストレージエンジンを使用するテーブルに対してのみサポートされています。
説明テーブルのストレージエンジンを確認するには、
SHOW TABLE STATUSまたはSHOW TABLE STATUS LIKE 'table_name';文を実行してください。Engine 列の値がそのテーブルのストレージエンジンです。 -
自動フラグメント回収は、表領域が 5 GB から 100 GB の間のテーブルに対してのみサポートされています。
説明表領域サイズが 5 GB 未満または 100 GB を超える場合、DAS はそのテーブルに対してアクティブなデフラグメンテーションを実行しません。
最適化前のチェック項目
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 コンソール にログインします。
左側のナビゲーションウィンドウで、 をクリックします。
ターゲットインスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページを開きます。
左側のナビゲーションウィンドウで、自律型センター をクリックします。
自律型センター ページの右上隅で、Autonomy Service Settings をクリックします。
-
タブで、自律サービスのスイッチをオンにします。
-
最適化とスロットリング タブで、断片化したスペースの自動再利用 を選択し、以下のパラメーターを設定します。
重要データベースインスタンスのストレージ状態が指定されたしきい値に達すると、DAS はインスタンスの メンテナンスウィンドウ 中にアクティブなデフラグメンテーションを実行します。
パラメーター
説明
表領域
アクティブなデフラグメンテーションをトリガーする単一の物理テーブルの最小表領域サイズです。有効値:5 GB ~ 100 GB。デフォルト値:10 GB。
表領域が大きいほど回収に時間がかかります。ビジネス要件に基づいて値を選択してください。
説明データベースインスタンス上のすべての表領域が 5 GB 未満または 100 GB を超える場合、システムはデフラグメンテーションを実行しません。
断片化率
アクティブなデフラグメンテーションをトリガーする単一の物理テーブルの断片化率です。有効値:10 % ~ 99 %。デフォルト値:20 %。
しきい値を高く設定すると、回収頻度が低下します。ビジネス要件に基づいて値を選択してください。
説明データベースインスタンス上のすべてのテーブルの断片化率が 10% 未満の場合、システムはフラグメントの回収を実行しません。
説明たとえば、表領域 を 5 GB、断片化率 を 10 % に設定すると、表領域サイズが 5 GB ~ 100 GB かつ断片化率が 10 % 以上のすべてのテーブルに対してアクティブなデフラグメンテーションがトリガーされます。
-
決定 をクリックします。
-
オプション: Event Subscription Settings をクリックして、アクティブなデフラグメンテーションのイベント通知を設定します。詳細については、「イベントサブスクリプションの有効化」をご参照ください。
-
データベースインスタンスのアクティブなデフラグメンテーションのステータス更新を受け取るための アラートテンプレート を構成します。
システムは推奨アラートテンプレートを提示し、対応する自律イベントのアラートルールを追加します。画面の指示に従って構成を完了してください。
説明-
インスタンスにすでにアラートテンプレートが構成されている場合は、画面の指示に従って自律イベントのアラートルールをテンプレートに追加してください。
-
アラートテンプレートおよびアラートルールを自分で構成する場合は、「アラートテンプレートの構成」および「アラートルールの構成」をご参照ください。
-
-
アラート通知を受信するための アラート連絡先グループ を選択します。
-
連絡先の追加 をクリックして、新しいアラート連絡先を追加します。
-
連絡先グループの作成 をクリックして、新しいアラートグループを追加します。
-
連絡先の横にある 変更 または 削除 をクリックして、連絡先情報を変更または削除します。
詳細については、「アラート連絡先の管理」をご参照ください。
-
-
設定の送信 をクリックし、表示されるダイアログボックスでアラート設定を確認します。
関連ドキュメント
データベースインスタンスのストレージ領域が不足している場合:
API リファレンス
|
API |
説明 |
|
指定されたデータベースインスタンスのアクティブなデフラグメンテーションパラメーターを非同期で設定します。 |
|
|
指定されたデータベースインスタンスのアクティブなデフラグメンテーションルールを照会します。 |
|
|
指定されたデータベースインスタンスのアクティブなデフラグメンテーション機能を無効化します。 |