問題の説明
バイナリログファイルによってストレージ容量が使い果たされたため、RDSインスタンスは自動的にロックされます。 RDSインスタンスの [基本情報] ページに、RDSインスタンスのステータスが [ロック済み] と表示されます。 [モニタリングとアラート] ページの [標準モニタリング] タブの [ディスク領域 (MB)] グラフは、ログファイルが大量のストレージを占有していることを示しています。 次の図は参照のためだけに提供されます。
原因
大規模なトランザクションを実行した後、短時間で大量のバイナリログファイルが生成され、RDSインスタンスのストレージ容量が使い果たされる可能性があります。 その後、RDSインスタンスは自動的にロックされ、データの損失を防ぎます。 この場合、RDSインスタンスにデータを書き込むことはできません。
解決策
前提条件
RDSインスタンスがMySQL 5.5、MySQL 5.6、MySQL 5.7、またはMySQL 8.0を実行している場合、ストレージ容量を拡張し、ストレージ使用量が80% 以下であることを確認する必要があります。 詳細は、「インスタンス仕様の変更」をご参照ください。
使用上の注意
不要になったバイナリログファイルを削除する前に、次の項目に注意してください。
バイナリログファイルには、RDSインスタンスに関するトランザクション情報が記録されます。 バイナリーログファイルは、RDSインスタンスの高可用性と回復可能性を確保するために使用されます。 バイナリログを無効にしないことを推奨します。 Binlogsのアップロード機能を使用して、バイナリログファイルをObject Storage Service (OSS) バケットにアップロードし、ストレージをリリースできます。 バイナリログファイルの保持ポリシーを変更することもできます。 詳細については、「ApsaraDB RDS For MySQLインスタンスのバイナリログファイルの削除」をご参照ください。
バイナリログファイルを削除した後、RDSインスタンスのストレージをリリースするには期間が必要です。
[Binlogsのアップロード] をクリックしてバイナリログファイルをアップロードすると、バックグラウンドで削除タスクが非同期に送信され、書き込まれたバイナリログファイルが自動的にプロビジョニングされたOSSバケットにアップロードされます。 バイナリログファイルがアップロードされると、バイナリログファイルはRDSインスタンスから削除されます。 書き込まれているバイナリログファイルは削除できません。 [ビンログのアップロード] をクリックした後、システムがストレージをリリースするまでしばらく待つことをお勧めします。 [Binlogsのアップロード] を複数回クリックしないでください。 RDSインスタンスの [基本情報] ページで、ストレージがリリースされているかどうかを確認できます。
大きなフィールドを含むDML操作など、DML操作を実行すると、バイナリログファイルが短時間で生成されます。 生成されたバイナリログファイルをバックアップストレージにアップロードし、RDSインスタンスからファイルを削除する速度は、バイナリログファイルが生成される速度に追いついていない可能性があります。 この場合、ストレージ容量を拡張し、バイナリログファイルの急増の原因を特定することを推奨します。
Binlogsのアップロード機能を使用してバイナリログファイルをアップロードする
ApsaraDB for RDS コンソールにログインします。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。
RDSインスタンスを見つけ、インスタンスIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[バックアップと復元] をクリックします。
[Binlogsのアップロード] をクリックします。 表示されるメッセージで、[OK] をクリックします。
説明アップロードが完了するまで約15分待ちます。
この操作により、最新の2つのバイナリログファイルを除くすべてのログファイルが削除されます。 ログファイルが2つしか存在しない場合、ファイルは削除されません。
RDS Basic Editionは、アップロードBinlogs機能をサポートしていません。 RDSインスタンスがRDS Basic Editionを実行している場合、このトピックの [バイナリログファイルの保持ポリシーの変更] セクションの説明に基づいて、バイナリログファイルを削除することを推奨します。
バイナリログファイルの保持ポリシーの変更
ApsaraDB for RDS コンソールにログインします。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。
RDSインスタンスを見つけ、インスタンスIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[バックアップと復元] をクリックします。
[バックアップ設定] タブで、[ローカルログバックアップ設定] の右側にある [編集] をクリックします。 表示されるダイアログボックスで、ビジネス要件に基づいて保持ポリシーを変更します。
説明Retention Periodパラメーターが0に設定されている場合、バイナリログファイルはRDSインスタンスに保存されず、OSSバケットに直接アップロードされます。
次のステップ
RDSインスタンスのロックが解除されている場合は、RDSインスタンスの自動ストレージ拡張機能を有効にすることを推奨します。 これにより、ストレージリソースが不足してRDSインスタンスがロックされるのを防ぎます。 詳細については、「ApsaraDB RDS For MySQLインスタンスの自動ストレージ拡張の設定」をご参照ください。
参考資料
ストレージ容量が使い果たされる問題に対処する方法の詳細については、次のトピックを参照してください。