web-dev-qa-db-ja.com

'LOG_BACKUP'により、データベース 'database'のトランザクションログがいっぱいです。何も動作しません

SQL Server 2012に約30のデータベースがあります。データベースの1つでエラーが発生しています "データベース 'database'のトランザクションログは 'LOG_BACKUP'のためにいっぱいです。"

私は数時間グーグルして提案を実装しました。

これが私が試したものです:

  1. リカバリをシンプルに変更しました。
  2. ログファイルタイプでファイルを縮小しましたか?割り当て済みが1MBで空き領域が60%であることを示します.
  3. DBCC OPENTRANを実行した:開いているトランザクションがない
  4. バックアップからデータベースを復元しました
  5. ログファイルを切り離してから削除し、ログなしで添付したため、新しいログファイルが作成されました。
  6. ディスク容量を確認してください:35ギガ空き。

それでもうまくいきませんでしたが、同じエラーが発生します。何か案は? 私は絶望的です!!!!

ログファイルの拡張は無制限に設定され、自動拡張が有効になっています。イベントビューアには、関連するファイルシステムエラーやSQL Serverエラーはありません。このサーバーにはドライブが1つしかないため、別のディスクに移動できません。

DBCC LOGINFO()の結果:

enter image description here

@@VERSION

Microsoft SQL Server 2012(SP1)-11.0.3128.0(X64)
2012年12月28日20:23:12
著作権(c)Microsoft Corporation
Windows NT 6.2のStandard Edition(64ビット)(ビルド9200:)(ハイパーバイザー)

エラーは常に発生し、再起動後も常に同じエラーです。

一晩でデータベースがオンラインに戻り、すべてが再び機能します。私はそれに何もしませんでした、それは働き始めました。言うまでもなく、私は困惑し、疲れています。このトピックが再び発生した場合に備えて、しばらくの間このトピックを開いたままにしたいと思います。

更新:

この問題は19日に再発しましたが、最初に発生してから1週間近くです。今回は、オフラインになった頃のシステムイベントのエラーに気づきました。

sqlservr(1376)読み取り専用アクセス用のファイル「C:\ Windows\system32\LogFiles\Sum\Api.log」を開こうとすると、システムエラー5(0x00000005)で失敗しました:「アクセスが拒否されました。」ファイルを開く操作は、エラー-1032(0xfffffbf8)で失敗します。
3
Asmussen

データベース全体のバックアップを実行しても、トランザクションログは切り捨てられません。トランザクションログを切り捨てるには、トランザクションログのバックアップを実行する必要があります。復旧モデルをシンプルに変更してもエラーが発生する場合は、チェックポイントでクリアできないアクティブなトランザクションがあったことを意味します。

容量計画を自動拡張に依存することはお勧めできません。自動拡張が発生しないようにトランザクションログを十分に大きく設定することをお勧めします。トラブルシューティングの手順でトランザクションログのサイズを手動で大きくしようとした場所も、トランザクションログのバックアップを実行しようとした場所もわかりません。

別のトランザクションログファイルを追加して、エラーが解決され、処理を続行できるかどうかを確認することもできます。トラブルシューティングが完了したら、その追加ファイルを削除します。

ここには多くの可能性があるので、ログサイズを以前よりも大きく設定し、自動拡張設定を1MBより大きく変更し、頻繁な定期的なトランザクションログバックアップを設定して、トランザクションサイズを小さい方に維持することをお勧めします。

トランログバックアップを台無しにしたくない場合は、復旧モデルをシンプルに保ちますが、これは、最後の完全バックアップにしか復元できないことを意味しますが、トランログがいっぱいになる可能性があります。単純復旧モード。

1
stacylaray