9

そのため、SQL Server 2000 で「データベースのログ ファイルがいっぱいです。データベースのトランザクション ログをバックアップして、ログ領域を解放してください。」というエラーが表示されます。

他のサイトで言及されているように、ログを削除せずにこれを修正するにはどうすればよいですか?

追加情報: AutoGrowth を有効にすると、10% の拡張が有効になり、40MB に制限されます。

4

12 に答える 12

18

それを空にするには:

backup log <dbname> with truncate_only  

どこかに保存するには:

backup log <dbname> to disk='c:\somefile.bak'

トランザクション履歴が本当に必要ない場合は、データベースの復旧モードをシンプルに設定してみてください。

于 2008-09-16T14:41:26.843 に答える
4

Scott さん、ご想像のとおり、データを気にするのであれば、ログを切り捨てるのはよくありません。

次の無料のビデオは、何が起こっているかを正確に確認するのに役立ち、ログを切り捨てずに問題を修正する方法を示します。(これらのビデオでは、なぜこれが危険なハッキングなのか、別の解決策を探すのが正しい理由についても説明しています。)

これらのビデオを一緒に見ると、何が起こっているのかを正確に理解するのに役立ち、SIMPLE リカバリに切り替えるか、実際にバックアップ ルーチンを変更するかを検討することができます。また、ログ ファイルのサイズと増大を管理しながら可用性を確保するためにバックアップを設定する方法を正確に示す「ハウツー」ビデオもいくつかあります。

于 2008-09-16T16:53:21.287 に答える
2

必要に応じてデータベース ログを定期的にバックアップするか、将来的にログ配布などの楽しい作業を行うか、データベースをシンプル モードに設定してデータ ファイルを圧縮します。

.ldf ファイルをコピー、名前変更、または削除しないでください。データベースが壊れます。これから回復した後、データが矛盾した状態になり、無効になる場合があります。

于 2008-09-16T20:50:06.817 に答える
2

データベースがオンラインの場合、ログ ファイルの名前変更や移動は機能しないと思います。

最も簡単な方法は、データベースのプロパティを開いて単純復旧モデルに切り替えることです。次にデータベースを縮小してから、戻ってDBを完全復旧モデル(または必要なモデル)に設定します。

ログ モードを変更すると、SQL Server はデータベースにチェックポイントを設定します。その後、データベースを圧縮すると余分な領域が解放されます。

于 2008-09-16T14:37:25.060 に答える
1

過去にこのエラーに直面した私の友人は、次のことを推奨しています。

試す

  • DBをバックアップしています。メンテナンス プランには、これらのファイルの切り捨てが含まれます。
  • また、DB の「リカバリ モード」を(たとえばフルではなく)シンプルに変更してみてください。

原因: ログに記録されているイベントが原因で、トランザクション ログが肥大化しています (多数のトランザクションが失敗してロールバックされている可能性があります。または、サーバー上のトランザクションが突然ピークに達している可能性があります)。

于 2008-09-16T14:58:12.750 に答える
1

関連する SO の質問を確認することをお勧めします。

于 2008-09-16T16:08:32.127 に答える
0

データベースの完全バックアップを取得するとすぐに、データベースが単純復旧モデルを使用していない場合、SQL Server はデータベースで実行されたすべてのトランザクションの完全な記録を保持します。これにより、データ ファイルが失われる壊滅的な障害が発生した場合に、ログをバックアップすることで障害点まで復元できます。また、古いデータ バックアップを復元したら、ログを復元して失われたデータを再生できます。トランザクション。

この蓄積を防ぐには、トランザクション ログをバックアップする必要があります。または、BACKUP LOG の TRUNCATE_ONLY または NO_LOG オプションを使用して、現時点でチェーンを切断できます。

この機能が必要ない場合は、復旧モデルをシンプルに設定してください。

于 2008-09-16T15:14:26.860 に答える
0

トランザクション ログのコピーを取得し、ログ ファイルを切り捨てることができます。これは、エラー メッセージが示唆する内容です。

ディスク容量がいっぱいで、ログをネットワーク経由で別のマシンにコピーできない場合は、USB 経由でドライブを接続し、その方法でコピーします。

于 2008-09-16T14:37:09.710 に答える
0

質問に答えがあります。ログをバックアップすると、圧縮されます。データベースを定期的にバックアップする保守計画を立て、「トランザクション ログをバックアップする」を選択することを忘れないでください。そうすれば小さく保てます。

于 2008-09-16T14:38:12.500 に答える
0

親愛なる友人、DBA がログ ファイルを頻繁にチェックすることは非常に重要です。いつかそれにあまり注意を払わないと、このエラーが発生するからです。

この目的のために、ログ ファイルがそのようなエラーに直面しないように、定期的にバックアップを取る必要があります。

それ以外は、上記の提案はまったく正しいです。

于 2012-06-11T11:38:34.897 に答える
0

本番環境以外で使用する場合

dump tran <db_name> with no_log;

これが完了したら、ログ ファイルを圧縮してディスク領域を解放します。最後に、データベース リカバリ モードをシンプルに切り替えます。

于 2008-09-16T14:47:30.840 に答える
-1

名前を変更します。例:
old-log-16-09-08.log

その後、SQL サーバーは新しい空のサーバーを使用できます。

于 2008-09-16T14:34:25.597 に答える