バイナリログファイルが利用可能なストレージをすべて消費したため、RDS インスタンスはロックされ、書き込みがブロックされています。以下の手順に従って、ストレージを直ちに解放し、問題の再発を防止してください。
バイナリログがストレージを使い果たす理由
大規模なトランザクションやサイズの大きいフィールドに対する DML 操作により、RDS はバイナリログファイルを急速に生成します。Object Storage Service (OSS) へのアップロードプロセスがファイル生成に追いつかない場合、ログはインスタンスのディスクに蓄積されます。ストレージが枯渇すると、RDS はデータ損失を防ぐためにインスタンスを自動的にロックします。
バイナリログファイルは高可用性とポイントインタイムリカバリをサポートします。ディスク領域を解放するためにバイナリロギングを無効にしないでください。代わりに以下の方法を使用してください。
前提条件
開始する前に、次の条件を満たしていることを確認してください。
-
インスタンスで MySQL 5.5、MySQL 5.6、MySQL 5.7、または MySQL 8.0 が実行されていること。
-
インスタンスのストレージ容量が拡張され、ストレージ使用率が 80% 以下になっていること。手順については、「インスタンス仕様の変更」をご参照ください。
解決策1:バイナリログを直ちに OSS へアップロード
この方法は、即時対応が必要な場合に使用します。[バイナリログのアップロード] 機能は、対象となるすべてのバイナリログファイルを OSS バケットに非同期でアップロードし、その後インスタンスから削除します。
RDS Basic Edition は[バイナリログのアップロード] 機能をサポートしていません。お使いのインスタンスが Basic Edition の場合は、代わりに解決策 2 を使用してください。
-
ApsaraDB RDS コンソールにログインします。上部メニューで、インスタンスが存在するリージョンを選択します。
-
対象の RDS インスタンスを見つけ、インスタンス ID をクリックします。
-
左側メニューで、[バックアップと復元] をクリックします。
-
[バイナリログのアップロード] をクリックします。表示されるダイアログボックスで、[OK] をクリックします。
[バイナリログのアップロード] をクリックした後、以下の点に注意してください。
-
アップロードが完了するまで約 15 分かかります。操作の進行中に[バイナリログのアップロード] を再度クリックしないでください。
-
この操作では、直近 2 つのファイルを除くすべてのバイナリログファイルが削除されます。ファイルが 2 つしか存在しない場合、何も削除されません。
-
現在書き込み中のバイナリログファイルは削除できません。アップロードされたファイルがインスタンスから削除されると、ストレージが解放されます。
-
ストレージが解放されたかどうかを確認するには、インスタンスの[基本情報] ページにアクセスしてください。
解決策2:ローカルログ保持ポリシーの変更
保持ポリシーを調整し、バイナリログファイルがより早く OSS にアップロードされてインスタンスから削除されるようにします。これは RDS Basic Edition インスタンスで利用できる唯一のオプションであり、主要な予防策としても機能します。
-
ApsaraDB RDS コンソールにログインします。上部メニューで、インスタンスが存在するリージョンを選択します。
-
対象の RDS インスタンスを見つけ、インスタンス ID をクリックします。
-
左側メニューで、[バックアップと復元] をクリックします。
-
[バックアップ設定] タブで、[ローカルログのバックアップ設定] の右側にある[編集] をクリックします。ビジネス要件に基づいて保持設定を調整してください。
[保持期間] を 0 に設定すると、バイナリログファイルはローカルに保存されず、生成されると同時に OSS バケットに直接アップロードされます。
次のステップ
インスタンスのロックが解除された後、将来のロックを防ぐためにストレージの自動拡張を有効にしてください。手順については、「ApsaraDB RDS for MySQL インスタンスのストレージ自動拡張の設定」をご参照ください。
また、再発を防ぐために、バイナリログファイルが急速に増加する根本原因を特定することを推奨します。一般的な原因には、大規模なトランザクションやサイズの大きいフィールドを含む DML 操作などがあります。