ApsaraDB RDS for MySQLインスタンスのデータベース内のテーブルデータを更新または削除すると、ディスク上のテーブルデータのストレージが不連続になります。 その結果、テーブルスペースのフラグメントが生成され、ディスクスペースの無駄とパフォーマンスの低下が発生します。 Database Autonomy Service (DAS) は、自動フラグメント再利用機能をサポートしています。 RDSインスタンスのメンテナンスウィンドウ内で、システムはプライマリRDSインスタンスに対してOPTIMIZE TABLEまたはALTER TABLEステートメントを自動的に実行して、表領域フラグメントを再利用します。
前提条件
RDSインスタンスは、RDS High-availability Edition、RDS Enterprise Edition、またはRDS Cluster Editionを実行します。
RDSインスタンスは14日以上作成されます。
RDSインスタンスには少なくとも4つのCPUコアがあります。
RDSインスタンスの物理テーブルはInnoDBエンジンを使用します。
DAS Professional Editionが有効になっています。 詳細については、「 DAS Professional Edition の購入」をご参照ください。
背景情報
Tablespaceフラグメントは、次の理由で生成されます。
レコードは削除され、元のテーブルスペースは再利用できません。
レコードが更新され、元のテーブルスペースは再利用できません。 ほとんどの場合、レコードは可変長フィールドに対して更新されます。
挿入されたレコードは、ページ分割を引き起こし、ページの充填率を低下させる。
システムがテーブルスペースフラグメントをリサイクルする前にチェックするアイテム
DASは、プライマリインスタンスに対してOPTIMIZE TABLEまたはALTER TABLEステートメントを実行して、テーブルスペースのフラグメントをリサイクルします。 データベースのパフォーマンスとテーブルスペースへの悪影響を軽減するために、DASはデータベースインスタンスとデータベースインスタンス内のテーブルを自動的にチェックしてから、テーブルスペースのフラグメントの自動リサイクルを実行します。 DASは、チェックに合格した後にのみ、自動表領域フラグメントのリサイクルを実行します。
次の要件が満たされない場合、テーブルに対して自動テーブルスペースフラグメントのリサイクルを実行できません。
データベースインスタンスの使用可能なストレージスペースは、リサイクルするテーブルスペースフラグメントを持つテーブルの物理スペースの少なくとも3倍である必要があります。
説明たとえば、物理スペースが30 GBのTable_1テーブルのテーブルスペースフラグメントをリサイクルする場合、データベースインスタンスの使用可能なストレージスペースは90 GB以上でなければなりません。
テーブルにフルテキストインデックスは作成されません。
次の要件が満たされていない場合、DASは1〜5分間待機してから再度チェックを実行します。 メンテナンス期間全体でチェックが失敗した場合、DASはチェックに合格するまで、次のメンテナンス期間中にテーブルをチェックします。 チェックに合格すると、DASはテーブルスペースのフラグメントの自動リサイクルを実行します。
データベースインスタンスでバックアップタスクが実行されていません。
スキーマ変更タスクは実行されていません。
前日の同じ期間のCPU使用率と、現在の日付より7日前の同じ期間のCPU使用率が70% 未満である必要があります。また、リサイクルタスクの開始予定前のCPU使用率が80% 未満である必要があります。
説明たとえば、テーブルスペースのフラグメントのリサイクルは、物理スペースが90 GBのテーブルで12月10日の03:00に開始される予定であり、操作が完了するまでに30分かかると予想されます。 この場合、次の要件が満たされていることを確認してください。
CPU使用率は、2020年12月9日の03:00から03:30まで70% 未満である必要があります。
CPU使用率は、2020年12月3日の03:00から03:30まで70% 未満である必要があります。
2020年12月9日の03:00にCPU使用率が80% 未満である必要があります。
SQL文の実行に3秒以上かかることはありません。
保留中のトランザクションは存在しません。 保留中のトランザクションは、ロックを保持するが15秒以内にコミットされないトランザクションです。
データベースインスタンスのアクティブなセッションの数が64未満です。
テーブルがチェックに合格しない場合、テーブルのテーブルスペースフラグメントの自動リサイクルはトリガーできません。 この場合、OPTIMIZE TABLEステートメントを手動で実行して、tablespaceフラグメントをリサイクルできます。 詳細については、「OPTIMIZE TABLEステートメントを使用してApsaraDB RDS For MySQLインスタンスのテーブルスペースをリリースする方法」をご参照ください。
機能の有効化
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
次のいずれかの方法を使用して、 Autonomous Function Managementパネルに移動します。
左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > ワンクリック診断 を選択します。 表示されるページで、自律型センター タブをクリックします。 自律型センター タブで、Autonomy Service Settings をクリックします。
左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > パフォーマンスの傾向 を選択します。 表示されるページの パフォーマンスのトレンド タブで、Autonomy Service Settings をクリックします。
パネルの Autonomous Function Settings タブで、自律サービスを有効にします。 最適化とスロットリング タブで、断片化したスペースの自動再利用 を選択します。
次のパラメーターを設定します。 次に、[OK] をクリックします。
重要データベースインスタンス内のテーブルのストレージ使用率が指定されたしきい値に達すると、DASは、データベースインスタンスの指定されたメンテナンス期間中にテーブルスペースのフラグメントを自動的に再要求します。
パラメーター
説明
テーブルスペース>
物理テーブルのストレージ使用量のしきい値。 単位:GB 有効な値: 5 ~ 100 デフォルト値は 10 です。
このパラメーターを大きな値に設定すると、再利用プロセスが完了するまでに長い時間がかかる場合があります。 ビジネス要件に基づいて値を指定することを推奨します。
説明RDSインスタンス上のすべてのテーブルのストレージ使用率が5 GB未満または100 GBを超える場合、DASはテーブルスペースフラグメントを再利用しません。
断片化率>
物理テーブルのストレージ使用量の合計に対するテーブルスペースフラグメントのストレージ使用量の割合。 有効な値: 10 ~ 99。 デフォルト値は 20 です。
このパラメーターを大きな値に設定すると、自動フラグメントの再利用の頻度が少なくなります。 ビジネス要件に基づいて値を指定することを推奨します。
説明RDSインスタンス上のすべてのテーブルの断片化率が10% 未満の場合、DASはテーブルスペースフラグメントを再利用しません。
説明たとえば、Tablespace > パラメーターの値が5 GBで、Fragmentation Rate > パラメーターの値が10% の場合、テーブルスペースの範囲が5 GB〜100 GBで、フラグメント化率が10% 以上のすべてのテーブルに対して、自動フラグメント再利用がトリガーされます。