すべてのプロダクト
Search
ドキュメントセンター

PolarDB:データファイルを削除してストレージを解放する方法?

最終更新日:Jun 04, 2024

このトピックでは、ストレージ容量を使い果たす大量のデータファイルの問題、この問題の解決方法、および次の手順について説明します。

問題の説明

PolarDB for MySQLクラスターによって生成されたデータファイルを長期間保存すると、ストレージが使い果たされる可能性があります。 データスペースの使用状況は、PolarDBコンソールの [ストレージ分析] ページの [ストレージの傾向] セクションで確認できます。 次の図は、ルーティングアルゴリズムの違いを示しています。

image.png

解決策

冗長データを削除するには、次の手順を実行します。

説明
  • データの損失を防ぐには、削除するテーブルのデータをバックアップします。

  • DROPまたはTRUNCATEステートメントを実行して、テーブルを削除し、ストレージを解放します。 DELETE文を使用してストレージを解放することはできません。

  • テーブルに対してOPTIMIZEステートメントを実行すると、テーブルはロックされます。 オフピーク時にOPTIMIZEステートメントを実行します。

  • データファイルが削除された後、クラスターのストレージ容量を解放するには期間が必要です。

  • 次の手順を実行してデータファイルを削除した後、さらにストレージを解放する必要がある場合は、他の種類のファイルを削除して、ストレージの使用量を減らすことができます。 詳細については、「ログファイルを削除してストレージ容量を解放する方法」をご参照ください。

  1. データベースクラスターに接続します

  2. [SQLコンソール] ページで、次のコマンドを実行してデータベースのファイルサイズを表示し、履歴データまたは不要なデータを削除できるかどうかを確認します。

    SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size 'FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC
  3. DROPまたはTRUNCATEステートメントを実行して、データを削除します。 ステートメント内のデータベース名とテーブル名のパラメーターを、実際のデータベース名とテーブル名に置き換えます。

    DROP TABLE <データベース名> 。<テーブル名>
    TRUNCATE TABLE <データベース名> 。<テーブル名> 

次に何をすべきか

  • クラスターのストレージをスケールアップします。 PolarDB for MySQLは、ストレージリソースをコンピューティングリソースから分離するアーキテクチャを使用します。 クラスターのストレージ容量を手動でスケールアップできます。 詳細については、「手動でストレージ容量のスケールアップ」をご参照ください。

    .

  • テーブルに対してDELETEステートメントを頻繁に実行すると、テーブルスペースのフラグメントが生成されます。 テーブルスペースを再利用するには、オフピーク時にOPTIMIZE TABLE <database name>.<table name> ステートメントを実行することを推奨します。 詳細については、「OPTIMIZE TABLEステートメントを実行してテーブルスペースを再利用する」をご参照ください。