Aurora for MySQL 互換のローカルストレージには何が保存されていますか? ローカルストレージの問題はどのようにトラブルシューティングすればよいですか?

最終更新日: 2022 年 5 月 26 日

Amazon Aurora MySQL 互換はローカルストレージに何を保存しますか? また、ストレージ容量の問題をトラブルシューティングするにはどうすればよいですか?

簡単な説明

Aurora クラスターのインスタンスには、次の 2 種類のストレージがあります。

  • 永続データ用のストレージ (クラスターボリュームと呼ばれます)。このストレージタイプは、より多くのスペースが必要になると自動的に増加します。詳細については、クラスターボリュームの内容を参照してください。
  • インスタンスクラスに基づく、クラスター内の各 Aurora インスタンスのローカルストレージ。このストレージタイプとサイズはインスタンスクラスにバインドされており、より大きな DB インスタンスクラスに移動することによってのみ変更できます。Aurora for MySQL は、エラーログ、一般ログ、スロークエリログ、監査ログ、および InnoDB 以外の一時テーブルの保存にローカルストレージを使用します。

ローカルストレージサイズの詳細と、各インスタンスサイズで使用可能なストレージの最大量を確認するには、「Aurora MySQL の一時ストレージの制限」を参照してください。

解決方法

空きストレージ容量が少ないというエラー

空きストレージ容量が制限に近づくと、次のエラーが表示される場合があります。

"The free storage capacity for DB Instance: instance-name is low at x% of the provisioned storage [Provisioned Storage: xx GB, Free Storage: xx GB].You may want to increase the provisioned storage to address this issue." (DB インスタンスの空きストレージ容量: instance-name は、プロビジョニングされたストレージの x% と低下しています [プロビジョニングされたストレージ: xx GB、空きストレージ: xx GB]。この問題に対処するには、プロビジョニングされたストレージを増やすことをお勧めします。)

一時テーブルやログファイルなどの非永続データをローカルストレージに保存すると、ローカルストレージ容量が満杯になることがあります。ALTER TABLE コマンドが実行されているか、または一時テーブルを過剰に保存していないかを確認してください。ALTER コマンドと一時テーブルを最適化することにより、ローカルストレージの使用量を削減できます。次のようなコマンドを複数回実行して、インスタンス上の一時テーブルの数を確認します。

SHOW GLOBAL STATUS LIKE 'created_tmp%tables';

GoSH を有効にして、特定の時間範囲内に作成された一時テーブルの数をモニタリングできます。これにより、さらなる分析のために後で確認できるテーブルにサーバーステータス変数を保存できます。

FreeableMemory の Amazon CloudWatch メトリクスを確認して、使用可能な空きメモリの量を判断します。その後、監査ログ、一般ログ、スロークエリログが容量を消費していないかどうかを確認します。FreeLocalStorage の CloudWatch メトリクスを使用して、Aurora インスタンスに関連付けられたローカルストレージスペースをモニタリングできます。詳細については、「Amazon Aurora クラスターでのメトリクスのモニタリング」を参照してください。

より多くのストレージスペースが必要な場合は、ローカルストレージの量を増やすことができます。ローカルストレージを増やすには、DB インスタンスクラスを増やす必要があります。詳細については、Aurora DB インスタンスのクラスを参照してください。

パラメータ max_heap_table_sizetmp_table_size の値を増やすこともできます。これらのパラメータを変更すると、ディスクに流出するデータの量を減らすことができ、使用するローカルストレージの量を減らすことができます。インスタンスにアタッチされているパラメータグループでこれらのパラメータを変更できます。詳細については、パラメータグループを使用するを参照してください。

注意 max_heap_table_sizetmp_table_size の値を増やすと、テーブルはインスタンスでより多くのメモリを消費します。これらの値を増やす場合は、インスタンスに十分なメモリがあることを確認してください。FreeableMemory の CloudWatch メトリクスを使用して、使用可能なメモリをモニタリングできます。

ERROR 1114 table full (エラー 1114 テーブルがいっぱいです)

MySQL は、ALTER TABLE などのオペレーションを実行すると、新しいスキーマを持つ中間一時テーブルを作成します。MySQL は、古いテーブルを削除する前に中間テーブルにデータをロードします。中間テーブルはローカルストレージを使用する場合があります。中間テーブルに使用できるストレージよりも多くのストレージが必要な場合、次のエラーが発生する可能性があります。

「ERROR 1114 (HY000): The table 'table-name' is full」(「エラー 1114 (HY000): テーブル「table-name」がいっぱいです」)

インスタンスを一時的にスケールアップしてローカルストレージを増やすことで、このエラーを解決できます。ALTER TABLE オペレーションが完了したら、インスタンスクラスをスケールダウンできます。ローカルストレージを増やすには、Aurora インスタンスクラスを増やす必要があります。詳細については、Aurora DB インスタンスのクラスを参照してください。