2016-04-27 2 views
0

SQL Server 2012で実行されているレポート用にオフサイト運用データベースのコピーがあります。トランザクションログを使用して毎時更新を開始したいのですがそのオフサイトの本番データベース。に問題が発生した場合に- NORECOVERデータベースに適用されているトランザクションログの特定

大した、物事を始めると、彼らがでてくるようトランザクションログ(NORECOVERY/W)を適用する(NORECOVERY/w)の完全バックアップを復元します。

しかし、 (またはログファイルを取得すると)いくつかのトランザクションログファイルが適用されてしまう可能性があります。それが起きたときに、どのファイルをTSQLスクリプトで開始するのか

私はこのような復元履歴テーブルで探してみました

:NORECOVERYフラグはレコードがそのテーブルに追加されていないを意味しているため

select distinct 
    h.destination_database_name, 
    h.restore_date, 
    s.server_name, 
    m.physical_device_name as backup_device, 
    f.physical_name 
from 
    msdb..restorehistory h 
inner join 
    msdb..backupfile f on h.backup_set_id = f.backup_set_id 
inner join 
    msdb..backupset s on f.backup_set_id = s.backup_set_id 
inner join 
    msdb..backupmediafamily m on s.media_set_id = m.media_set_id 
where 
    h.destination_database_name = 'mydb' 
    and h.restore_date > (GETDATE() -0.5) 
order by 
    h.restore_date 

しかしrestorehistoryをチェックは良いではありません。では、NORECOVERYデータベースで動作するT-SQLを使ってこれをチェックする別の方法がありますか?

答えて

0

これはまれな手動操作であると仮定すると、エラーログをスキャンする最も簡単な方法です。

SQL Serverの組み込みログ配布(および一部のサードパーティの実装)には、これを簡単にするためのテーブル、ビュー、ユーザーインターフェイスがあります。

+0

いいえ、手動プロセスではありません。私は自動化された仕事のエラー処理に先立って考えています。何かがうまくいかない場合、私はそれが途絶えたところで拾い読みし、マイナーなつまずいのための私の介入を最小限に抑えることを試みたい。また、私はサードパーティのログ配布を使用していません。 – WillG

+0

次に、あなた自身のトラッキングテーブルをどこかに作成する必要があります。 SQL Serverのログ配布機能を使用しない理由を聞かせてもよろしいですか? – JackOfAll

+0

SQL Serverのログ配布についての理解は、ログをプライマリサーバーからセカンダリサーバーに移動するためのものです。この場合、プライマリサーバを制御することはできません。これは、第三者の管理下にあるオフサイトデータベースです。彼らはSFTPのためのログを入れ、現在、私たちはそれらを取得し、私たちの夜間の復元に使用します。私は夜間の完全なリストアを取り除き、ログが入ってくるスタンバイdbに移動したいと思っています。それを追跡するテーブルを構築することを望んでいましたが(それは私の最初の衝動でした)、それは探しています私はそうしなければならないように。 – WillG

関連する問題