web-dev-qa-db-ja.com

fn_dump_dblogを使用してトランザクションログバックアップファイルを読み取れないのはなぜですか?

Sqlskills.comの このブログ を、ポイントインタイムリカバリのトランザクションログバックアップで関連するLSNを見つける練習のガイドとして使用しています。

トランザクションログをバックアップした後、次のコマンドでそれを読み込もうとします。

SELECT COUNT(*) FROM fn_dump_dblog (
NULL, NULL, 'DISK', 1, 'D:\TEMP\test_tlog2.bak',
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);

次のエラーが発生します。

メッセージ615、レベル21、状態1、行1データベースID 0、名前 '0'が見つかりませんでした。データベースがオフラインになっている可能性があります。数分待ってから再試行してください。

データベースIDは0ではなく、オフラインではありません。欠落しているパラメーターや関数の変更はありません。データベースを照会して、contentsオプションを使用してSSMSバックアップ内からtlogバックアップファイルを表示できます。正しいメディアセット1が表示されます。

Microsoft SQL Server 2008 R2(SP2)-10.50.4263.0(X64)Aug 23 2012 15:56:56 Copyright(c)Microsoft Corporation Enterprise Edition(64-bit)on Windows NT 6.1(Build 7601:Service Pack 1)(Hypervisor )

基本的な何かが欠けていますか?

6
Alan Whited

@Alan監査を無効にして、一度確認してください。

そのサーバーはデータベースにAUDITを持っています。監査が有効になっている場合、そのエラーが発生します。監査を無効にすると、クエリは正常に実行されます。

2
Karthick

説明されているように手順を試すことができます ここ 。一方、SQL Server監査ツール ApexSQL Log は、GUIを介して、T-SQLを使用せずに関連するLSNを見つけるのに役立ちます。

免責事項:私はApexSQLで製品サポートエンジニアとして働いています

1
Ivan Stankovic