私は現在、制御不能になったSQL Serverトランザクションログを処理する必要があります。免責事項:私はdbaではなく、これは私の専門分野ではないので、ご容赦ください。
現在、500 MBのデータベース用に115 GBのトランザクションログファイルがあり、この状態になるには(明らかに)しばらく管理が不十分でした。
最優先事項は、実行する前に、このファイルによって占有されているディスク上のスペースを再利用することです。ドライブのサイズを増やすことは一時的であってもオプションではないと言われています。過去の成長に基づいて、我々はすぐに行動する必要があります。
私が理解しているように、最良のアプローチは、dbを完全復旧モードに保ちながら、ログファイルの定期的なバックアップをとり、一定期間監視し、初期サイズと増分を適切に調整することです。大丈夫。
午前0時に定期的にフルデータベースバックアップを実行しているときに、データベースを一時的にシンプルリカバリモードにして(これらのバックアップの1つが実行された後)、ログファイルを圧縮して(事実上すべての)領域を解放し、次に、上記のバックアップ戦略でそれを完全復旧に戻しますか?
私の考えでは、この時期に何かが起こった場合、ログを使用せずに完全なバックアップを復元することができます。
更新
いくつかの回答とコメントへの返信におけるいくつかの追加詳細:
データベースを完全復旧モードのままにしておくために、ポイントインタイムリストアを実行する機能を保持したいと思います。
t-logファイルが非常に大きくなった理由は、バックアップされたことがないためです。log_reuse_wait_descが「LOG_BACKUP」を返すことを確認。