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

ApsaraDB RDS:ApsaraDB RDS インスタンスがロック状態になっている場合の対処方法

最終更新日:Nov 10, 2025

問題の説明

  • RDS インスタンスの 基本情報 ページで、RDS インスタンスのステータスの値が ロック になっています。

  • RDS インスタンスが ロック 状態のため、INSERT 文と UPDATE 文を RDS インスタンスで実行できません。

    説明
    • RDS インスタンスで MySQL 5.6、MySQL 5.7、または MySQL 8.0 を実行し、マイナーエンジンバージョン 20190815 以降を使用している場合、RDS インスタンスで次の種類のロックが発生する可能性があります。

      • LOCK_WRITE_GROWTH: ディスク使用量の増加を禁止します。プライマリ RDS インスタンスのストレージ容量が不足している場合、このタイプのロックがトリガーされ、ディスク使用量が増加する可能性のある操作が無効になります。 DELETE 文を実行してデータを削除すると、多数のバイナリログファイルが生成され、ディスク使用量が増加します。 DROP 文または TRUNCATE 文を実行してデータを削除することをお勧めします。

      • LOCK_READ: 読み取り操作を禁止します。読み取り専用 RDS インスタンスのストレージ容量が不足している場合、このタイプのロックがトリガーされ、データクエリと書き込み操作が無効になります。

      • LOCK_WRITE: 書き込み操作を禁止します。このタイプのロックは、インスタンスの有効期限切れ、ApsaraDB MyBase クラスタのホストの有効期限切れ、またはインスタンスの移行によってトリガーされる可能性があります。 LOCK_WRITE_GROWTH の制限に加えて、このタイプのロックは、DROP 操作や TRUNCATE 操作など、追加データの書き込み操作も無効にします。

      RDS インスタンスがロックされていて、RDS インスタンスで SQL 文を実行すると、ERROR 1290 (HY000): The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement というエラーメッセージが表示されます。

    • MySQL 5.1 または MySQL 5.5 を実行し、任意のマイナーエンジンバージョンを使用する RDS インスタンスがロックされている場合、ロックの原因に関係なく、RDS インスタンスで操作を実行できません。これは、MySQL 5.6、MySQL 5.7、または MySQL 8.0 を実行し、20190815 より前のマイナーエンジンバージョンを使用する RDS インスタンスにも当てはまります。

原因

  • 原因 1: RDS インスタンスのストレージ容量が不足しています。

  • 原因 2: Alibaba Cloud アカウントの支払いが遅延しているか、RDS インスタンスの有効期限が切れています。

原因 1 に対応する対処方法

基本情報 ページの「使用状況統計」セクションに移動して、RDS インスタンスのストレージが不足しているかどうかを確認できます。存储空间使用量 方法:

RDS インスタンスのストレージを解放する

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、モニターとアラーム をクリックして、各タイプのデータによって占有されているストレージを表示します。空间使用量

  3. データベースタイプに基づいてデータを削除し、ストレージを解放します。

    警告

    必要な場合を除き、データを削除しないことをお勧めします。ストレージを解放するためにデータを削除する場合は、データ損失を防ぐために、削除する前にデータをバックアップする必要があります。また、RDS インスタンスのストレージ容量を拡張して、RDS インスタンスのロックを解除することもできます。

    • 一時ファイル (temp_file_size 標準メトリックで示されます)

      ApsaraDB RDS for MySQL インスタンスは、一時テーブルを生成して、クエリで指定されたソート、グループ化、または結合操作を実行するか、大きなトランザクションをコミットする前にバイナリログキャッシュファイルを生成します。これらの 一時ファイル によってインスタンスのディスク容量が不足する可能性があります。

      詳細については、「ApsaraDB RDS for MySQL インスタンスが一時ファイルによってストレージ容量が不足しているためにロック状態になっている場合の対処方法」をご参照ください。

    • ログファイル (binlog_size および general_log_size 標準メトリックで示されます)

      データベースのパフォーマンスとステータスを監視するために、データベースの管理システムは、クエリログ、スロークエリログ、エラーログなど、さまざまなログを生成します。

      データベースエンジン

      解決策

      MySQL

      モニターとアラーム ページで、ストレージの使用状況を表示します。次に、ストレージの使用状況に基づいてログファイルを削除します。

      PostgreSQL

      ApsaraDB RDS for PostgreSQL インスタンスのログファイルは手動で削除できません。

      非アクティブなレプリケーションスロットを手動で削除して、AliPG が WAL ログを自動的に削除できるようにすることができます。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの WAL ログ管理機能を使用する」をご参照ください。

      SQL Server

      ApsaraDB RDS for SQL Server インスタンスのログファイルは手動で削除できません。ただし、ApsaraDB RDS コンソールで トランザクションログを縮小する ことができます。

    • データファイル (user_data_size 標準メトリックで示されます)

      データベースエンジン

      解決策

      MySQL

      1. データ管理 (DMS) を使用して RDS インスタンスに接続する

      2. 次の文を実行して、RDS インスタンスのデータベースにある指定されたテーブルのサイズを表示し、削除できる 既存データ または不要なデータを確認します。

        SELECT
            TABLE_NAME,
            concat(round((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,2),'MB') AS DATA
        FROM
            information_schema. TABLES
        WHERE
            TABLE_SCHEMA = '<データベース名>'
        ORDER BY
            DATA + 0 DESC;
      3. データベースで DROP TABLE <テーブル名>; 文を実行して、データを削除します。

      4. システムが RDS インスタンスのロックを解除するまで約 5 分待ちます。

      PostgreSQL

      1. DMS を使用して RDS インスタンスに接続します。詳細については、「DMS を使用して ApsaraDB RDS インスタンスにログインする」をご参照ください。

        説明

        RDS インスタンスに接続できない場合は、まずインスタンスのストレージ容量を拡張してから、ディスク容量をクリアします。ディスク容量がクリアされた後、必要に応じてストレージ容量を縮小します。インスタンスのストレージ容量を拡張および縮小する方法の詳細については、「RDS インスタンスのストレージ容量を拡張する」および「インスタンスの仕様を変更する」をご参照ください。

      2. 次の文を実行して、RDS インスタンスのデータベースにある指定されたテーブルのサイズを表示し、削除できる 既存データ または不要なデータを確認します。

        SELECT 
            table_schema || '.' || table_name AS table_full_name,
            pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') AS size
        FROM
            information_schema.tables
        ORDER BY
            pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') 
        DESC;
      3. データベースで DROP TABLE <テーブル名>; 文を実行して、データを削除します。

      4. システムが RDS インスタンスのロックを解除するまで約 5 分待ちます。

      SQL Server

      ApsaraDB RDS for SQL Server インスタンスのストレージ不足の問題のトラブルシューティング に記載されている操作を実行します。

    • システムファイル (undolog_size 標準メトリックで示されます)

      原因: 長時間実行される文が InnoDB テーブルのクエリに実行され、クエリ中に大量のテーブルデータが変更されると、システムは過剰な UNDO ログを生成し、これが大量のストレージリソースを占有します。その結果、ストレージ容量が不足します。

      解決策: システムファイルの蓄積によるストレージ不足のトラブルシューティング に記載されている手順に基づいて問題を解決します。

RDS インスタンスのストレージ容量を拡張する

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 基本情報 ページの 設定情報 セクションで、設定を変更する をクリックして、ストレージ容量を拡張 します。

    表示されるページで、RDS インスタンスのストレージ容量を拡張します。詳細については、「ApsaraDB RDS for MySQL インスタンスの仕様を変更する」をご参照ください。

  3. 支払いが完了したら、按钮基本情報 ページの右上隅にある 注: アイコンをクリックして、[タスク] ページで構成変更の進捗状況を表示します。

    ストレージ容量の拡張に必要な時間は、RDS インスタンスのストレージタイプによって異なります。次の表に、ストレージ容量の拡張に必要な時間を示します。 ApsaraDB RDS コンソール にログインし、左側のナビゲーションウィンドウで [タスクセンター] をクリックすると、ストレージ容量拡張の進捗状況を表示できます。

    ストレージタイプ

    期間

    説明

    プレミアムローカル SSD

    シナリオによって異なります

    • RDS インスタンスのストレージリソースがビジネス要件を満たせない場合、インスタンス間のデータ移行がトリガーされる可能性があり、ストレージ容量の拡張に必要な時間は複数の要因によって異なります。オフピーク時にストレージ容量を拡張することをお勧めします。

    • 仕様変更を行うと、約 30 秒間続く 一時的な切断 が発生します。オフピーク時に RDS インスタンスの仕様を変更することをお勧めします。また、アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。一時的な切断 中は、データベース、アカウント、ネットワーク設定に関連するほとんどの操作を実行できません。

    クラウドディスク

    約 5 分

    • RDS インスタンスで MySQL または PostgreSQL を実行し、クラウドディスクを使用している場合、RDS インスタンスのストレージ容量を拡張しても 一時的な切断 は発生しません。

    • RDS インスタンスで SQL Server を実行し、クラウドディスクを使用している場合、RDS インスタンスのストレージ容量を拡張する と、約 30 秒間続く 一時的な切断 が発生する可能性があります。一時的な切断 中は、RDS インスタンスでデータベース、アカウント、ネットワーク設定に関連するほとんどの操作を実行できません。オフピーク時に RDS インスタンスのストレージ容量を拡張することをお勧めします。または、アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。特定の RDS インスタンスは、データ損失なしでストレージ容量の拡張をサポートしています。これは ワークロード を中断しません。

原因 2 に対応する対処方法

  • サブスクリプション RDS インスタンス: RDS インスタンスの有効期限が切れ、更新されていない場合は、インスタンスを更新 します。約 5 分待ちます。次に、インスタンスが 実行中 状態になっているかどうかを確認します。

  • 従量課金制 RDS インスタンス: Alibaba Cloud アカウントの支払いが遅延している場合は、Alibaba Cloud アカウントを トップアップ し、5 分待ってから、RDS インスタンスが 実行中 状態になっているかどうかを確認します。

O&M の推奨事項

RDS インスタンスがロックされないように、次の構成を実行することをお勧めします。

RDS インスタンスから大量のデータを削除した後も LOCK_WRITE_GROWTH が有効になっているのはなぜですか?

DELETE 文を実行してデータを削除すると、システムは削除されたレコードまたはデータページを再利用可能としてマークします。この場合、システムはディスクファイルのサイズを直接縮小して表領域を再利用することはありません。表領域を解放する場合は、「OPTIMIZE TABLE 文を使用して ApsaraDB RDS for MySQL インスタンスの表領域を解放する方法」に記載されている操作を実行します。

インスタンスに十分なストレージリソースがあり、更新されているにもかかわらず、RDS インスタンスがまだロックされているのはなぜですか?

RDS インスタンスのタスク (構成変更タスクなど) が進行中です。タスクが完了すると、RDS インスタンスのロックは自動的に解除されます。按钮[基本情報] ページの右上隅にある 前提条件 アイコンをクリックして [タスク] ページに移動 し、タスクの進捗状況を表示できます。

RDS インスタンスがロック状態のときに、インスタンスの構成を スペックアップ または スペックダウン できますか?

RDS インスタンスのストレージ容量が不足しているためにインスタンスがロックされている場合は、RDS インスタンスの構成を スペックアップ または スペックダウン できます。支払い遅延などの他の理由で RDS インスタンスがロックされている場合は、支払い遅延を解消してから、RDS インスタンスの構成を スペックアップ または スペックダウン する必要があります。

ロック状態の RDS インスタンスは、廃止されたインスタンスタイプを使用しています。ストレージ容量を拡張してインスタンスのロックを解除するにはどうすればよいですか?

RDS インスタンスのインスタンスタイプを使用可能なインスタンスタイプに変更し、ストレージ容量を拡張してインスタンスのロックを解除する必要があります。使用可能なインスタンスタイプの詳細については、「プライマリインスタンスタイプのリスト」をご参照ください。

ロック状態のインスタンスのストレージ使用量が引き続き増加するのはなぜですか?

INSERT 操作または UPDATE 操作を実行しても、ロック状態のインスタンスにデータを書き込むことはできません。ただし、インスタンスでクエリ操作を実行すると、ログファイルまたは一時データが生成され、インスタンスのストレージ使用量が増加する可能性があります。