このトピックでは、ApsaraDB RDS for SQL Serverインスタンスのトランザクションログを縮小する方法について説明します。
以下の点にご注意ください。
インスタンスの設定やデータの変更など、リスクの高い操作を実行する前に、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認して、データのセキュリティを確保することを推奨します。
ECS (Elastic Compute Service) インスタンスやApsaraDB RDSインスタンスなどのインスタンスの設定またはデータを変更する前に、インスタンスのスナップショットを作成するか、バックアップを有効にすることを推奨します。 たとえば、RDSインスタンスのログバックアップを有効にできます。
Alibaba Cloud管理コンソールで機密情報に対する権限を付与した場合、または機密情報を送信した場合は、できるだけ早い機会に機密情報を変更することを推奨します。 機密情報には、ユーザー名とパスワードが含まれます。
十分なログストレージ
ログの保存に使用される残りのストレージが十分な場合は、ApsaraDB RDSコンソールのトランザクションログの縮小機能を使用できます。 この機能により、ログのバックアップとログの縮小操作を自動的に実行して、トランザクションログファイルのサイズを管理および最適化できます。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、[バックアップとリカバリ] をクリックします。
表示されるページで、[トランザクションログの縮小] をクリックします。 表示されるメッセージで、[OK] をクリックします。
重要システムがトランザクションログを縮小すると、システムは自動的にログバックアップを実行してトランザクションログをアーカイブします。 これにより、オンプレミスのログが正常に削除される可能性が高くなります。
システムがトランザクションログを縮小する前に、RDSインスタンスのログ再利用のステータスを確認することを推奨します。
ステータスがNOTHINGの場合、ログの縮小操作を実行できます。 ただし、縮小可能なトランザクションログのサイズは、トランザクションログの末尾の再利用可能な仮想ログファイル (VLF) のサイズによって異なります。 既存のアクティブなトランザクションのためにテールVLFのステータスを再利用可能として定義できない場合は、別のログバックアップ操作が必要です。 アクティブなトランザクションが完了するまで待機し、ログ再利用のステータスがNOTHINGに変更されたかどうかを確認します。
ステータスがLOG_BACKUPの場合、ログ縮小操作は実行されますが、既存のアクティブなトランザクションが原因で失敗する可能性があります。 この場合、システムは、ログ縮小操作を複数回実行することができる。
ログストレージ不足
次の操作は緊急時にのみ実行できます。 次の操作を実行する前に、RDSインスタンスのストレージ容量を拡張することを推奨します。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスの仕様の変更」をご参照ください。
データベースのサーバーに「トランザクションログがいっぱいです」と表示された場合、コンソールでトランザクションログを縮小することはできません。 この場合、SQL文を実行して縮小操作を実行する必要があります。 トランザクションログの縮小は、ログストレージ容量を占有します。 したがって、縮小のためにログチェーンを切り捨てることができるのは、トランザクションログがいっぱいの場合のみです。 データベースのサーバーで次のSQL文を実行します。 ステートメントの [TestDb] をデータベース名に置き換えます。
トランザクションログがいっぱいの場合、縮小のためにログチェーンを切り捨てることしかできません。 データベースの復旧モデルをSIMPLEに変更しないことを推奨します。 データベースの復旧モデルをSIMPLEに変更すると、データベースが属するRDSインスタンスのバックアップチェーンが切断され、バックアップチェーンが切断された時点で実行されていたすべての復元タスクが失敗します。 緊急時にデータベースの復旧モードをSIMPLEに変更し、データベースのログチェーンを切り捨てる必要がある場合は、上記のリスクを理解し、責任を負う必要があります。 上記のステートメントを実行すると、表示されたエラーメッセージを無視でき、データベースのログチェーンが切断されます。
たとえば、次のステートメントを実行して、復旧モデルをSIMPLEに設定します。
ALTER DATABASE [TestDb] //[TestDb] はデータベース名を指定します。
セット回復シンプル
データベースの復旧モデルをSIMPLEに設定できず、復旧モデルをFULLにリセットします。 この場合、データベースのログチェーンは切断されます。 すると、次のエラーメッセージが表示されます。
Msg 50000、レベル16、州1、手順 ****** 、行46
ログインユーザー [Test11] はデータベース [TestDb] 復旧モデルを変更できません。
Msg 3609、レベル16、州2、ライン2
トランザクションはトリガーで終了しました。 バッチは中止されました。
参考資料
RDSインスタンスのストレージ容量を拡張します。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスの仕様の変更」をご参照ください。
SQL文を使用してデータベースを管理します。 詳細については、「SQL文を使用したデータベースの作成と管理」をご参照ください。
RDSインスタンスのストレージ容量が使い果たされたときに発生するエラーのトラブルシューティング。 詳細については、「ApsaraDB RDS For SQL Serverインスタンスのストレージ容量が使い果たされた場合の対処方法」をご参照ください。
アプリケーションスコープ
ApsaraDB RDS for SQL Server