SSブログ

VSS + Ntbackup による SQL Server のリストア [BACKUP]

Ntbackup のリストア画面です。
F:\SM1DATA1 と F:\SM1LOG1 には SQL Server のデータベースのファイルが含まれています。

その前に、トランザクションログのバックアップを行っておきます。
これが戻せる様なら非常に有用。

SQL Server Management Studio から、ディスクへトランザクションのバックアップを実行します。

バックアップ履歴には、Ntbackup で行ったフルバックアップと、それを元にしたトランザクションログが見てとれます。
ちなみに、このまま SQL Server Management Studio からリストアしようとしてもフルバックアップのメディアへアクセス出来ずリストア出来ません。

Ntbackup から戻すしかありません。

以下、画面には出ないのでイベントログより、リストアの開始です。


リストアの終了です。

Ntbackup でのリストアは終了です。

バックアップの時とは違って、VSSの介入はありません。
つまり、SQL Server としてのリストア処理が実行されません。
普通にファイルが戻るだけです。

ちなみに、リストア時にSQL Server が起動していた場合は↓のダイアログが出て再起動を要請されます。

再起動すると、SQL Server は普通に起動して、普通に使える状態になります。

ただし、トランザクションログのバックアップを採った時の状態ではなく、フルバックアップを採った時の状態になります。
データベースを戻した後の状態がリストアモードではないのでトランザクションログを充てる事は出来ません。

リストア時にSQL Server が停止していた場合、VSSの介入は無いのでリストアは失敗しません。
リストア後にSQL Server を起動すれば、やっぱり普通にフルバックアップの時の状態で起動してしまいます。
データベースをデタッチしてリストアした場合、リストアでデータベースファイルは正常に戻ります。
データベースのファイルが戻った後、アタッチでデータベースを接続して戻します。
これが Ntbackup での正当な戻し方らしい。
当然、リストアモードで戻らないのでトランザクションログを充てる事は出来ません。

Ntbackup では SQL Server のオンラインフルバックアップは採れ、それをリストアする事までは出来ますが、トランザクションログを充てる事までは出来ません。
せめて、リストアモードで戻っていたなら何とかなっただろう。何か方法がないものか?
尤も、その場合は初心者には優しくない。

ちなみに、VSS の SQL Server Writer に関するドキュメントは↓こちらです。
http://www.microsoft.com/japan/technet/prodtechnol/sql/2005/sqlwriter.mspx


nice!(0)  コメント(6)  トラックバック(0) 

nice! 0

コメント 6

小籠包

NTBackupとVSSを使用したバックアップでは、オンラインバックアップは可能だけど、ロールフォワードができないということなのでしょうか。。。
by 小籠包 (2010-01-29 16:01) 

aki-aoki

小籠包 さんコメントありがとうございます。
VSSの仕様としてはリカバリモードでリストアしてその後ログの適用が出来そうなんですが、NTBackup/WindowsServerBackupではリストアの時に制御するロジックが無いようなのでログの適用が出来ないみたいです。
また、バックアップの時に作成されるはずの戻す時の情報もどっかにいってしまっていてデータベースをリカバリモードで戻す事が出来ないみたいです。

NTBackup/WindowsServerBackup もちゃんと作ってくれてればログの適用も出来そうなんですけど…
by aki-aoki (2010-01-29 20:34) 

小籠包

レスありがとう御座います。

SQL ServerにしてもOracleにしてもVSS対応アプリを銘打つ以上、NTBackupや他のVSSリクエスタでのオンラインバックアップ・リストアに完全に対応して欲しいものですが。。。

商用製品のSymantecのBackup ExecシリーズやNetVault等が、DBのオンラインバックアップ機能をオプションとして提供している理由はそこら辺の事情によるものなのでしょうか。
by 小籠包 (2010-02-02 11:00) 

aki-aoki

小籠包 さんコメントありがとうございます。
そいつは逆で、DBオプションがあるので後からでてきたVSSへの対応がおろそかになっているのではないかと思います。
VSSでのバックアップはDBMSよりMSExchangeをメインに考えているみたいです。
by aki-aoki (2010-02-02 21:47) 

小籠包

なるほど、言われてみれば納得ですね。
やっぱりDBのオンラインバックアップをとる場合、OracleならRMAN、SQL ServerであればBAKCUP, RESTOREコマンドを使って取得するのが確実なのですね。

by 小籠包 (2010-02-04 09:28) 

aki-aoki

小籠包 さんコメントありがとうございます。
でも、VSSに対応していないとHyper-Vなどの仮想環境のバックアップがめんどうだしコストもかかる。
動かす業務は選びますが、ロールフォワードは出来なくともVSSでオンラインバックアップ出来るのはありがたい。
…DBMSは仮想化には向いてませんが…

by aki-aoki (2010-02-04 22:18) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。