ログ配布-スタンバイを使用した復元-SQL Server 2012で壊れ続ける


10

RESTORE WITH STANDBYレポート目的でデータベースを読み取り専用モードで復元するために、ログ配布とSQL Server 2012を使用しています。ただし、ログ配布の設定は、1つまたは2つのログバックアップの復元が完了した後も壊れ続けます。ログ配布は、それがとして実行されている場合にのみ機能しRESTORE WITH STANDBYます。RESTORE WITH NORECOVERY問題はありません。

これに関する私の唯一の直感は、プライマリデータベースはそれほど動的ではないということです。したがって、トランザクションがない場合、これはRESTOREプロセスに問題を引き起こす可能性がありますか?

アイデア、既知の修正?

2つのテーブルを頻繁に更新する定期的なジョブを実行することで、数日間は機能していました。ジョブがログ配布セットアップの実行を停止するとすぐに失敗し、.trnファイルを処理できませんでした。私はログ配布をリセットし、小さな更新を行って実行が継続するかどうかを確認しようとしました。テーブルの1つのレコードの1つの列の値を、失敗した場合でも変更しました。

ご回答いただきありがとうございます。

PS:ログからの抜粋

2013年2月25日13:00:00、LSRestore_DBDB01-A_BulldogDB、In Progress、1、DBREPORTS、LSRestore_DBDB01-A_BulldogDB、Log shipping restore log job step。,, 2013-02-25 13:00:12.31 ***エラー:ログバックアップファイル '\\ dbsan01 \ DBBackups \ LSBackup_BulldogDB \ BulldogDB_20130225180000.trn'をセカンダリデータベース 'BulldogDB'に適用できませんでした。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.31 ***エラー:データベース 'BulldogDB'のログの処理中にエラーが発生しました。可能であれば、バックアップから復元します。バックアップが利用できない場合は、ログを再構築する必要があるかもしれません。
リカバリ中にエラーが発生し、データベース 'BulldogDB'(8:0)を再起動できませんでした。回復エラーを診断して修正するか、既知の正常なバックアップから復元します。エラーが修正されない、または予期されない場合は、テクニカルサポートに連絡してください。
RESTORE LOGが異常終了しています。
ファイル1のデータベース「BulldogDB」ファイル「BulldogDB」の0ページを処理しました
ファイル1でデータベース「BulldogDB」ファイル「BulldogDB_log」の1ページを処理しました(.Net SqlClientデータプロバイダー)***
2013-02-25 13:00:12.32 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.32 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.32ファイルを確認できなかったため、セカンダリデータベース 'BulldogDB'のログバックアップファイル '\\ dbsan01 \ DBBackups \ LSBackup_BulldogDB \ BulldogDB_20130225180000.trn'をスキップします。
2013-02-25 13:00:12.32 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.32 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.33 ***エラー:データベースアクセスモードの復元中にエラーが発生しました。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 ***エラー:ExecuteScalarには、オープンで使用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.33 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.33 ***エラー:データベースアクセスモードの復元中にエラーが発生しました。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 ***エラー:ExecuteScalarには、オープンで使用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.33 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***
2013-02-25 13:00:12.33古いログバックアップファイルを削除しています。プライマリデータベース: 'BulldogDB'
2013-02-25 13:00:12.33 ***エラー:履歴/エラーメッセージをログに記録できませんでした(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 ***エラー:ExecuteNonQueryには、開いて利用可能な接続が必要です。接続の現在の状態は閉じています。(System.Data)***、00:00:12,0,0 ,,,, 0

これは、LS_Restoreジョブがトランザクションログバックアップを適用できないことに起因します。すべてのエラーログ情報がデータベースから削除されるように、ログ配布をリセットしました。どこかに保存してもらい、見つけたら投稿します。ありがとう。
メンデル、

私たちは、ファイルができなかったためにスキップ」のようなものは、セカンダリデータベース『DB』のため.TRN ...バックアップログファイルを取得する検証あなたは、具体的破損をチェックする方法を私は知りません。。
メンデル

回答:


4

セカンダリデータベースがNORECOVERYのときにログバックアップを復元でき、READ-ONLY / STANDBYのときにのみ失敗する場合、ログバックアップ自体は問題なく、破損していないと思います。

レポートコンポーネントがデータベースへのオープン接続を持っている可能性があります。そのため、ログファイルを復元するときに、オープン接続のためにデータベースへの排他的接続を取得できません。ログ配布を設定するときに、接続を切断してログバックアップを復元できるようにするオプションがあります。


1
これは正しいです。これを回避するには、ログ配布ジョブをスタンバイで復元しないでください。スタンバイで復元するジョブに2番目のステップを追加します。STANDBY = N'standbyfile 'を指定したRESTORE DATABASE [データベース]。別のオプションは、リストアのための20分の遅延を追加してみ、トランザクションログのバックアップが終了していないということでしょう
Spörri

1

スタンバイセカンダリリストアでは、ジョブの開始時にのみユーザーを切断します。開始後、ユーザーは接続できます...これにより、「排他的なアクセス」に関するエラーで復元プロセスが停止します。復元中にスタンバイデータベースに接続しようとするサービスを受けました。そのため、1-10 / 100でファイルを復元した後、復元プロセスが中断しました。

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