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

ApsaraDB RDS:ApsaraDB RDS for MySQLインスタンスのストレージ容量がデータファイルによって使い果たされたためにロック状態になっている場合はどうすればよいですか。

最終更新日:Jan 23, 2024

ApsaraDB RDS for MySQLインスタンスのデータファイルを長期間削除しないと、RDSインスタンスのストレージ容量が使い果たされる可能性があります。 その結果、RDSインスタンスはデータの損失を防ぐために自動的にロックされ、RDSインスタンスにデータを書き込むことはできません。

問題の説明

大量のデータがRDSインスタンスに書き込まれます。 その結果、RDSインスタンスのストレージ容量がデータファイルによって使い果たされ、RDSインスタンスは [ロック済み] 状態になります。

原因

RDSインスタンスのストレージ容量は、長期間保持されるデータファイルによって使い果たされます。 この場合、RDSインスタンスはデータの損失を防ぐために自動的にロックされ、RDSインスタンスにデータを書き込むことはできません。

解決策

前提条件

RDSインスタンスがMySQL 5.6、MySQL 5.7、またはMySQL 8.0を実行している場合、RDSインスタンスのマイナーエンジンバージョンは20190815以降である必要があります。 RDSインスタンスのマイナーエンジンバージョンが20190815より前の場合、データファイルを削除する前にマイナーエンジンバージョンを更新する必要があります。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。 Minor engine version

使用上の注意

  • テーブルを削除する前に、損失を防ぐためにテーブルデータがバックアップされていることを確認してください。
  • ApsaraDB RDS for MySQLインスタンスを使用している場合、DELETEステートメントを実行してRDSインスタンスのストレージをリリースすることはできません。 RDSインスタンスのストレージをリリースするには、DROPまたはTRUNCATEステートメントを実行することを推奨します。
  • テーブルに対してOPTIMIZEステートメントを実行すると、テーブルはロックされます。 オフピーク時にOPTIMIZEステートメントを実行することを推奨します。
  • データファイルが削除された後、RDSインスタンスのストレージをリリースするには期間が必要です。
  • データファイルが削除されると、ApsaraDB RDSは約5分でRDSインスタンスのロックを解除します。

手順

次のいずれかの方法を使用して、問題を解決できます。

  • RDSインスタンスのストレージ容量を拡張します。
    RDSインスタンスのストレージ容量を拡張できます。 詳細は、「インスタンス仕様の変更」をご参照ください。
    説明 RDSインスタンスの仕様が変更されると、ApsaraDB RDSは約5分でRDSインスタンスのロックを解除します。
  • 履歴データまたは不要なデータを削除します。
    1. データ管理 (DMS) を使用してRDSインスタンスに接続します。 詳細については、「DMSを使用したApsaraDB RDS For MySQLインスタンスへのログイン」をご参照ください。
    2. [SQLコンソール] タブで、次のステートメントを実行してデータファイルのサイズを表示し、履歴データまたは不要なデータが含まれているデータファイルを識別します。
      SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size 'FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTETS DESC
    3. DROPまたはTRUNCATEステートメントを実行して、履歴データまたは不要なデータを削除します。
      説明 削除が完了すると、ApsaraDB RDSは約5分でRDSインスタンスのロックを解除します。
      • DROP: DROP TABLE <データベース名>.<テーブル名> ステートメントを実行して、テーブルを削除します。
      • TRUNCATE: TRUNCATE TABLE <Database name>.<Table name> ステートメントを実行して、テーブルからデータレコードを削除します。

次のステップ

RDSインスタンスがロック解除されている場合は、次の操作を実行して、RDSインスタンスが再度ロックされないようにします。