問題タブ [transaction-log]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
10536 参照

sql-server - TSQL: トランザクション ログのサイズを取得するにはどうすればよいですか?

トランザクション ログの現在のサイズを取得するにはどうすればよいですか? サイズ制限を取得するにはどうすればよいですか?

トランザクション ログをバックアップする必要がある頻度を判断できるように、これを監視したいと考えています。

大規模な操作を実行すると、通常、トランザクション ログに問題が発生します。

0 投票する
2 に答える
2211 参照

sql-server-2005 - SQLServer2005のトランザクションログが大きすぎます

SQLServer2005を実行しています。

私のdbバックアップスキームは次のとおりです。
リカバリモデル:完全
バックアップタイプ:完全
バックアップコンポーネント:データベース
バックアップセットの有効期限が切れます:0日後
メディアの上書き:既存のメディアセットにバックアップし、既存のバックアップセットに追加します

dbは250GBドライブ(実際には232GB)に書き込んでいます。

_Data.mdfファイルが55GBを超え、_Log.ldfが148GBを超えています。

今日、ドライブがいっぱいになる状況に遭遇しました。ab_Full.bakファイルとab_Log.bakファイルを別のドライブに移動してスペースを確保しました(約45GB)。5時間後、空き容量は37GBになります。

私はSQLサーバーの管理に不慣れです。そのため、バックアップについていくつかの基本的な質問があります。

将来この問題を防ぐために、トランザクションログサイズの管理を開始するためにデータベースを更新する必要があることはわかっています。したがって、十分な空き容量があると仮定すると、次のように
なります。1.データベースを右クリックして[バックアップ]を選択します
2.[バックアップの種類]を[トランザクションログ]に設定し
ます3.[バックアップセットの有効期限が切れます]を30日後に変更し
ます4.[OK]をクリックします'

私の理解では、これにより「クローズされた」トランザクションがトランザクションログからバックアップに移動され、トランザクションログが切り捨てられます。

この計画は正しいですか?その後、ログファイルのサイズを手動で変更する必要がありますか?

御時間ありがとうございます。

0 投票する
1 に答える
375 参照

sql-server - SSMSはどのようにしてトランザクションログの使用状況を取得しますか?

データベース、レポート...ディスク使用量を右クリックすると、レポートが表示されます。権限が制限されているため、「トランザクションログスペースの使用状況」を示す上部のみを取得します。この番号だけで役立つ場合があります。

ただし、後でDBCC showfilestatsを実行するためのアクセス許可がないというエラーメッセージが表示され、sys.dm_os_performance_countersまたはDBCC SQLPERF('logspace')にもアクセスできません。

そのトップナンバーを取得できれば、それは役に立ちます。残念ながら、もちろんプロファイラーを実行することはできないので、そのデータを取得するためにプロファイラーが発行しているコマンドやクエリがわかりません...

0 投票する
1 に答える
2276 参照

sql-server-2005 - SQL Server 2005 のトランザクション ログが常に大きすぎる

私は他の投稿を読み、何時間もの調査を行ってきましたが、それでも賢明ではありません. データ ファイルに 65 ギガ、ログ ファイルに現在 230 ギガのデータベースがあります。より効率的になるようにデータベースを再設計しようとしていますが、スキーマを変更すると、ログ ファイルが大きくなりすぎて、ディスク領域が不足していると Windows が警告します。

ファイルを縮小しようとしましたが、最低でも 220 ギガです。DBCC OPENTRAN を使用すると、アクティブなトランザクションがないことがわかります。select * FROM sys.dm_tran_database_transactions を使用すると、興味深いことが何も起こっていないことがわかります。

私が読んだことの私の解釈は、アクティブなトランザクションがある場合にのみログ ファイルが大きくなり、すべてのトランザクションがコミットされると、ファイルは理論的には非常に小さいものに縮小できるはずだということです。正しい?

truncate_only に続いて dbcc shrinkfile (dbname, 2) を使用してログのバックアップを試みました

このファイルをより管理しやすいものに圧縮するにはどうすればよいですか?

0 投票する
2 に答える
4416 参照

sql-server-2008 - SQL - データベース ログ ファイルの圧縮

データベース ログ ファイルを圧縮しようとしています。私は実行しようとしました:

エラーメッセージが表示されます:

メッセージ 155、レベル 15、状態 1、行 3 'truncate_only' は、認識される BACKUP オプションではありません。

何か不足していますか?

0 投票する
5 に答える
11730 参照

sql-server - DBCC 縮小ファイルでエラーが発生する

を使用してログ ファイルを圧縮しようとしていますDBCC SHRINKFILE(db_2.ldf)が、これはログ ファイルの名前です。

毎回エラーが発生します:

8985、レベル 16、状態 1、行 1 sys.database_files でデータベース db のファイル 'FIelD' が見つかりませんでした。ファイルが存在しないか、削除されました。

それを修正するために私ができることを教えてください。

0 投票する
1 に答える
1768 参照

sql-server - 破損したSQLServerデータベースからトランザクションログを回復しています

シンプルモードで毎週バックアップされるデータベースがあります。昨日、crcエラーでmdfファイルが破損し、保存できませんでした。先週からバックアップを復元しましたが、バックアップ時から復元時までの間にギャップがあります。そのデータベースのldfファイルがあるので、そのトランザクションログを「再生」してギャップを埋める方法はありますか?

復元されたmdfファイルにldfファイルを再添付しようとしましたが、SQLServerではそれができません。(データベースを再接続すると、別の名前の新しいldfファイルが作成されるだけです。)

どんなアイデアでも役に立ちます。これは失うデータがたくさんあり、重要なデータではありませんが、元に戻したいと思います(また、その方法を学ぶだけでなく、学ぶこともできます)。

0 投票する
1 に答える
2415 参照

sql - SQLServer2005-復元されたトランザクションログファイルを確認する方法

SQL Server 2005でSQLを使用して復元されたトランザクションログバックアップファイルを確認するにはどうすればよいですか?

0 投票する
3 に答える
16103 参照

db2 - DB2トランザクションログがいっぱいです。それをフラッシュ/クリアする方法は?

DB2のチューニングについて受講しているコースに関する実験に取り組んでいます。実験にはAmazon(aws)のEC2を使用しています。

ただし、私の問題は、DB2で行圧縮に対して非圧縮をテストする必要があることです。そのために、これらの実験を実行するbshファイルを作成しました。しかし、圧縮部分に到達すると、「<strong>トランザクションログがいっぱいです」というエラーが表示されます。挿入をいくら低く設定しても、トランザクションログについて不平を言っています。

私は1日Googleをスカウトして、ログをフラッシュ/クリアする方法、または単にログを取得する方法を見つけようとしています。必要ありません。サイズを大きくしようとしましたが、何も役に立ちませんでした。

どうか、誰かがこの苛立たしい問題を解決するための答えを持っていることを願っています

ありがとう-メスティカ

0 投票する
2 に答える
1707 参照

sql-server - SQL Server:チャンク削除はまだトランザクションログをいっぱいにします。失敗すると、すべての削除がロールバックされます-なぜですか?

これが私のシナリオです。Log4Netからのレコードを(MSMQ経由で)保持するテーブルを持つデータベースがあり、それをLoggingと呼びましょう。dbのリカバリモードはSimpleに設定されています。トランザクションログは気にせず、ロールオーバーできます。

sp_spaceusedのデータを使用して、特定のサイズのしきい値に達したかどうかを判断するジョブがあります。しきい値を超えた場合、サイズをそのしきい値のxパーセントに下げるために削除する必要のある行数を決定します。(余談ですが、行数と平均サイズの概算を取得するためにexec sp_spaceusedを使用していますが、それが最善の方法であるとは確信していません。しかし、それは別の問題です。 MyLogTableTRUE

次に、基本的にこれを行うsprocへの呼び出しをループすることにより、削除をチャンク化しようとします(たとえば、一度に5000)。

削除する必要があるものを削除するまで。

問題は次のとおりです。削除する行がたくさんある場合、トランザクションログファイルがいっぱいになります。走ることで成長するのを見ることができます

私が困惑しているのは、ジョブが失敗すると、削除されたすべての行がロールバックされることです。言い換えると、すべてのチャンクが(どういうわけか)暗黙のトランザクションでラップされているように見えます。

暗黙のトランザクションを明示的にオフに設定し、各DELETEステートメントをBEGINおよびCOMMIT TRANでラップしようとしましたが、役に立ちませんでした。削除されたチャンクがすべて成功するか、まったく成功しません。

簡単な答えは、ログファイルを、削除する可能性のある最大数のレコードを処理するのに十分な大きさにすることですが、それでも、これが単一のトランザクションとして扱われるのはなぜですか。

簡単なことを見逃してしまったら申し訳ありませんが、ログファイルの増加やリカバリモードなどに関する投稿をたくさん見てきましたが、これがわかりません。

もう1つ、ジョブが失敗すると、ログファイルは約95〜100%の状態でしばらくの間、ドロップバックする前に保持されます。しかし、私が実行した場合

使用率は約5%に戻ります。

TIA。