タグ付けされた質問 「transaction-log」

トランザクションログは、クラッシュまたはハードウェア障害に対するACIDプロパティを保証するためにデータベース管理システムによって実行された変更のリスト/履歴です。

2
これら2つのSQL Serverロールバックはどのように異なりますか?
SQL Server 2008 R2では、これら2つのロールバックの違いは次のとおりです。 ALTER数分間ステートメントを実行し、「実行のキャンセル」を押します。完全にロールバックするには数分かかります。 同じALTERステートメントを実行しますが、これはLDFファイルが正常に完了するのに十分な大きさでないことを確認します。いったんLDF制限が満たされるとNO「自動拡張」が許されない、クエリの実行はすぐに停止します(またはロールバックが起こる)、このエラーメッセージが表示されて: The statement has been terminated. Msg 9002, Level 17, State 4, Line 1 The transaction log for database 'SampleDB' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases 次の点で、これら2つの違いは何ですか? 2番目の「ロールバック」が瞬時に行われるのはなぜですか?ロールバックと呼べるかどうかは完全にはわかりません。私の推測では、トランザクションログは実行の進行とともに書き込まれ、タスクを完全に完了するための十分なスペースがないことがわかると、コミットせずに「終了」メッセージで停止します。 最初のロールバックに非常に長い時間がかかるとどうなりますか(ロールバックはシングルスレッドです)。 2.1。SQL Serverは戻って、LDFファイルに作成されたエントリを元に戻しますか? 2.2。LDFファイルサイズは(からのロールバックの終わりに小さくなりますDBCC …

6
トランザクションログは縮小せず、DBは複製していると考えます
Kaspersky Security Centerを実行しているSQL Server 2008 R2 Expressデータベースがあり、どのような状況でインストールが行われたのかわかりませんが、データベースはレプリケートされており、トランザクションログからスペースを解放しないと考えているようです。例えば: USE master; SELECT name, log_reuse_wait, log_reuse_wait_desc, is_cdc_enabled FROM sys.databases WHERE name = 'KAV'; SELECT DATABASEPROPERTYEX('KAV', 'IsPublished'); 戻り値: name | log_reuse_wait | log_reuse_wait_desc | is_cdc_enabled -----|----------------|---------------------|--------------- KAV | 6 | REPLICATION | 0 DATABASEPROPERTYEX('KAV', 'IsPublished') ---------------------------------------- 0 [not published] またReplication、SSMS のセクションには何もリストされていません。 これまでに、Googleの結果から収集したいくつかのステートメントを試しました。 USE KAV; …

1
20〜60秒ごとに起動するDBCC CHECKDB
実稼働環境への展開に急速に近づいている開発環境があり、ログで約20秒ごとにメッセージが表示されることに気付きました。 Starting up database 'dbname' CHECKDB for database 'dbname' finished without errors これに気づいたのは、これをテストしているエンドユーザーに問題があり、Windowsイベントログ(アプリケーションログ)でエラーに気付いたためです。 The log for database 'dbname' is not available. Check event log for related messages. ちなみに、関連するメッセージは見つかりませんでしたが、オフライン/オンラインサイクルで解決しました。 私が考えることができる唯一のことは、このアプリケーションが1msごとにデータを収集することですが、このデータのすべてがデータベースに挿入されるわけではありません。開発サーバーであるため、ログとデータが同じドライブ上にあるように構成されました。これら2つの情報を念頭に置いて、私はこれがIOの問題であり、サーバーがそのストレージ(SAN)への接続の損失から回復しようとしていることに傾倒しています。しかし、これでもすべてのデータベースが失われるわけではないため、これだけでは意味がありません。他に何がこれを引き起こしているのでしょうか? プラットフォーム:Windows Server 2008 R2(標準)上のSQL Server 2008 R2(Ent。)

4
SQL Server FILESTREAMを使用する場合の(部分的な)バックアップを小さく保つ
FILESTREAMバックアップが不要な1TB近くのデータを含むデータベースがあります(データが削除された場合、数時間で自動的に再作成されるため、重要ではありません)。ほとんどのデータは数日ごとに変更されるため、差分バックアップではサイズを抑えることはできません。 私は、私はリカバリモードを設定することにより、必要な方法で作業のバックアップを持っていたFull別の作成、FILEGROUPためにFILESTREAMのみ「プライマリ」のバックアップを取って、FILEGROUP。これが原因で発生した問題は、ログファイル(バックアップされる)にFILESTREAMデータが含まれるために不必要に大きくなることでした。 SIMPLEリカバリモードは特定FILEGROUPのsのバックアップを実行する私の能力を奪うので、私もそれがオプションになるとは思わない。 私の考えは、FILESTREAMデータを別のデータベースに移動するだけですが、今では参照整合性を失い、他の多くの問題も確実に継承しています。 Simpleリカバリモードで部分的なバックアップを作成する方法はありますか(FILESTREAMテーブルを読み取り専用に設定せずに)?そうでない場合、私の問題に対する他の健全な解決策はありますか?



1
ALTER TABLE…DROP COLUMNは本当にメタデータのみの操作ですか?
ALTER TABLE ... DROP COLUMNはメタデータのみの操作であることを示すソースがいくつか見つかりました。 ソース どうすればいいの?DROP COLUMN中のデータは、基になる非クラスター化インデックスおよびクラスター化インデックス/ヒープから削除する必要はありませんか? さらに、Microsoft Docsは、それが完全にログに記録された操作であることを示唆しているのはなぜですか? テーブルに加えられた変更はログに記録され、完全に回復可能です。列の削除や、SQL Serverの一部のエディションでは、デフォルト値でNOT NULL列を追加するなど、大きなテーブルのすべての行に影響を与える変更は、完了して多くのログレコードを生成するのに長い時間がかかる場合があります。これらのALTER TABLEステートメントは、多くの行に影響するINSERT、UPDATE、またはDELETEステートメントと同じように注意して実行してください。 副次的な質問として:データが基になるページから削除されない場合、エンジンはどのようにドロップされた列を追跡しますか?

2
SQL Serverトランザクションログバックアップ:最後の既知のログバックアップの後にテールログが続くかどうかをテストする
SQL Serverを完全復旧モードで使用しています。完全バックアップと一連のログバックアップを前提として、最後の完全バックアップから現在の末尾ログまでのログチェーンが完了しているかどうかを確認できるようにしたいと考えています。(これらのバックアップを実際に復元することなく、ここでの目的はバックアップの一貫性をテストすることです。) 既存のバックアップでこれを行う方法はすでに知っています。RESTOREHEADERONLYを使用して、すべてのファイルのFirstLSNとLastLSNを取得します。これらのファイルは、互換性があるかどうかを判断するために、連続ファイルで比較できます。 ただし、最後のログバックアップの後にテールログが続くかどうかを確認する方法がわかりません。 テールログのFirstLSNがある場合、それを最後のログバックアップのLastLSNと比較できます。しかし、どうすれば末尾ログのFirstLSNを取得できますか? SQL Server 2005以降(理想的にはt-sqlを使用)で機能するソリューションが必要です。これまでのところ、私はグーグルを検索して役に立たなかった。ところで 私は最初にこれをstackoverflowに投稿しました。トピックから外れているため、ここに移行しました。 編集 小さな例(SQL Server 2005、9.0.5057)で提供された2つのソリューションを試しました。 BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak' -- fire some update queries BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak' -- fire both queries from the provided answers: -- Martin Smith's answer yields: 838886656088920652852608 -- Shawn …

1
LOG_BACKUP log_reuse_wait_descを使用したSQL Server 2012シンプルリカバリモデル
私は私自身の調査をやっている間に、データベース、なぜ、誰もが知っているんSIMPLE復旧モデルを持っているLOG_BACKUPためにlog_reuse_wait_desc? SQL Server 2012 SP1。数週間前に作成されたデータベース。レプリケーションもミラーリングもログ配布もありません。 私たちは、データベースのバックアップを行なったし、それは示して、別のインスタンスに復元SIMPLEし、NOTHING中にlog_reuse_wait他のインスタンスに。しかし、別のインスタンスへの復元は、復元操作がトランザクションをロールフォワード/ロールバックするときに問題を再現する良い方法だとは思いません。

2
SQL Server 2008 R2トランザクションログを使用したCOPY_ONLY完全バックアップの復元
調査を行った後、この質問に対する答えを見つけることができないようです。 背景次の3つの要件に適合するバックアップ計画をセットアップしようとしています。 バックアップの信頼性、夜間の完全バックアップ から復元できるトランザクションログのバックアップ 使用されるディスク容量が少ない 監査ツールでは、バックアップにローカルでアクセスできる必要があります したがって、これらのニーズに合わせるために、フルバックアップを毎週、差分を毎日、トランザクションを毎時と考えています。その後、毎晩、オフサイトに出荷できるcopy_onlyバックアップが実行されます。このバックアップは、ログチェーンが壊れないように行われ、ローカルのディスクスペースを大量に消費することなく、信頼性の高い夜間フルバックアップをオフサイトで実行できます。 質問copy_onlyバックアップから復元し、後でトランザクションログを復元することは可能ですか。 例を挙げて、私が何を話しているのかを理解してください。 以下のリストを使用して、FullbackupCOPY_ONLYC.bakに続いてTransactionbackupG.trn、TransactionbackupH.trn、最後にTransactionbackupI.trnを復元できるかどうか疑問に思っています。 > ---List of Backups--- FullbackupA.bak 01/01/2013 00:00:00 > DifferntialbackupA.bak 02/01/2013 00:00:00 FullbackupCOPY_ONLYA.bak 02/01/2013 00:00:00 > TransactionbackupA.trn 02/01/2013 01:00:00 > TransactionbackupB.trn 02/01/2013 02:00:00 > TransactionbackupC.trn 02/01/2013 03:00:00 > DifferntialbackupB.bak 03/01/2013 00:00:00 FullbackupCOPY_ONLYB.bak 03/01/2013 00:00:00 > TransactionbackupD.trn 03/01/2013 01:00:00 > TransactionbackupE.trn 03/01/2013 …

2
トランザクションログファイルの内容の詳細
トランザクションログ(略してLDFと呼ぶ)の内容について質問があります。完全復旧モデルのデータベースを想定しています。 私は、LDFファイルに(ログ)データベースへのすべての操作(つまり、完全復旧モード)が含まれていることを読みました。ロギング中とどう違うのBEGIN TRAN; COMMAND(s); COMMITですか?どうやらトランザクションはロールバックできますが、標準コマンド(完全復旧モード)はロールバックできないので、私は尋ねています。 トランザクション中にLDFファイルに記録される内容は、通常の完全復旧ロギングの場合とは異なると思います。そうですか?どう違うの?各アクションに「元に戻す」操作が含まれているだけですか? 関連するメモとして、完全復旧LDFファイルを使用して標準クエリを「ロールバック/元に戻す」ための商用ツールがあると聞きました。どうやってやっているの?彼らはLDFの内容を分析し、逆/元に戻す操作を考え出そうとしますか?

3
カーディナリティの推定値が低いと、INSERTは最小限のログから除外されますか?
2番目のINSERTステートメントが最初のステートメントより〜5倍遅いのはなぜですか? 生成されたログデータの量から、2番目のログは最小限のログ記録に適していないと思います。ただし、データ読み込みパフォーマンスガイドのドキュメントには、両方の挿入を最小限に記録できることが示されています。では、最小限のロギングが主要なパフォーマンスの違いである場合、2番目のクエリが最小限のロギングに適格ではないのはなぜですか?状況を改善するために何ができますか? クエリ#1:INSERT ... WITH(TABLOCK)を使用して5MM行を挿入する 5MM行をヒープに挿入する次のクエリを考えてみます。このクエリは、によって報告されるトランザクションログデータで実行1 secondおよび生成64MBされsys.dm_tran_database_transactionsます。 CREATE TABLE dbo.minimalLoggingTest (n INT NOT NULL) GO INSERT INTO dbo.minimalLoggingTest WITH (TABLOCK) (n) SELECT n -- Any table/view/sub-query that correctly estimates that it will generate 5MM rows FROM dbo.fiveMillionNumbers -- Provides greater consistency on my laptop, where other processes are running OPTION …

2
15分ごとにトランザクションログのバックアップを取ると、6時間ごとのログバックアップよりも多くのディスク領域が消費されますか?
私たちの環境では、ネットワークストレージの空き容量が少なくなっています。同時に、トランザクションログのバックアップを、6時間ごとではなく、15分ごとに行うようにしたいと思います。私の質問は、ログのバックアップ間隔を6時間から15分ごとに変更すると、より多くのディスク容量が消費されるのでしょうか。

2
行の可視性はどの程度正確に決定されますか?
最も単純なケースでは、新しい行をテーブルに挿入すると(そしてトランザクションがコミットすると)、後続のすべてのトランザクションから見えるようになります。xmaxこの例では0であることを参照してください。 CREATE TABLE vis ( id serial, is_active boolean ); INSERT INTO vis (is_active) VALUES (FALSE); SELECT ctid, xmin, xmax, * FROM vis; ctid │xmin │ xmax │ id │ is_active ───────┼─────┼──────┼────┼─────────── (0,1) │2699 │ 0 │ 1 │ f これを更新すると(フラグがFALSE誤って設定されたため)、少し変更されます。 UPDATE vis SET is_active = TRUE; SELECT ctid, xmin, …

2
ミラーデータベースでのトランザクションログのメンテナンス
SQL Serverバージョン:2008 R2 Enterprise SP2 SQL Serverのメンテナンスを担当しているときに、間違っていると思われる問題に遭遇しました。それぞれがオフサイトでDRインスタンスにミラーリングされている3つのデータベースを持つ単一の本番インスタンスがあります。 DRインスタンスを調べていると、LDFファイルが巨大で、頻繁に使用されるデータベース用に35GBを超えることがわかりました。 これはおそらく、ミラーデータベースが完全復旧モードになっているためであり、ログはバックアップされたことがないため、ドライブの空き容量がなくなるまでログが増加し続けることを理解しています。 プリンシパルデータベースでログバックアップを実行していますが、ミラーでログバックアップを実行する際の注意点は何ですか。 ログバックアップを実行する前に、ミラーからの少なくとも1つのフルデータベースバックアップを完了する必要があります。その場合、ミラーであるため、使用する必要がある特別なオプションはありますか? 繰り返しますが、これはMIRRORデータベースでのトランザクションログのメンテナンスに関する推奨事項です。 ご意見ありがとうございます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.