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を使ってこれをチェックする別の方法がありますか?
いいえ、手動プロセスではありません。私は自動化された仕事のエラー処理に先立って考えています。何かがうまくいかない場合、私はそれが途絶えたところで拾い読みし、マイナーなつまずいのための私の介入を最小限に抑えることを試みたい。また、私はサードパーティのログ配布を使用していません。 – WillG
次に、あなた自身のトラッキングテーブルをどこかに作成する必要があります。 SQL Serverのログ配布機能を使用しない理由を聞かせてもよろしいですか? – JackOfAll
SQL Serverのログ配布についての理解は、ログをプライマリサーバーからセカンダリサーバーに移動するためのものです。この場合、プライマリサーバを制御することはできません。これは、第三者の管理下にあるオフサイトデータベースです。彼らはSFTPのためのログを入れ、現在、私たちはそれらを取得し、私たちの夜間の復元に使用します。私は夜間の完全なリストアを取り除き、ログが入ってくるスタンバイdbに移動したいと思っています。それを追跡するテーブルを構築することを望んでいましたが(それは私の最初の衝動でした)、それは探しています私はそうしなければならないように。 – WillG