• 締切済み

SQL Server2005の差分バックアップのリストアについて

お世話になっております。 SQL Server2005のバックアップ・リストアに関する質問です。 環境はサーバ1台とクライアントが3台のC/S構成です。 クライアントのうち1台は、サーバが故障した場合に備えて、毎日、サーバと同じ状態にしています。 そのため、現在、以下の手順で、データベースのリストア作業を毎日行っています。 (1)サーバから完全バックアップ (2)バックアップファイルをクライアントへコピー (3)クライアントにリストア (4)サーバからバックアップファイルを削除 しかし、データベースのサイズも大きくなり、(1)~(3)の作業に、かなりの時間を要するようになりました。 そこで、スピードアップを図るため、 ・差分バックアップ ・トランザクションログバックアップ いずれかを使用したいと考えています。 試しに、以下の手順でバックアップ→リストアを行うと、エラーが発生します。 【エラーが発生する手順】 (1)週末、サーバから完全バックアップ (2)バックアップファイルをクライアントへコピー (3)クライアントに復元 (4)サーバから完全バックアップファイルを削除 (5)週始め~差分バックアップ (6)バックアップファイルをクライアントへコピー (7)クライアントに復元 →「ロールフォーワードできる状態のファイルがないので、  ログまたは差分バックアップは復元できません。」のエラー発生 バックアップファイルは、サーバにもクライアントにも残さず削除することが要求されているため、必ず(4)の完全バックアップファイルを削除しています。 一度、完全バックアップをリストアしているので、差分バックアップファイルが存在すれば、それをリストアできるように思っていました。 完全バックアップファイルが存在しなければ、差分バックアップをリストアすることはできないのでしょうか? ヘルプを読んでみると、何となく、完全バックアップ+差分バックアップがセットで存在しなければリストアできないように認識しましたが、この認識は正しいでしょうか? もし、完全バックアップファイルを削除すると、差分バックアップをリストアできないのであれば、バックアップファイルを残すことなく、差分のみをリストアする上手い方法がないでしょうか? 何かご存知の方がいらっしゃいましたら、ご教示よろしくお願いいたします。

みんなの回答

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

>完全バックアップファイルが存在しなければ、差分バックアップをリストアすることはできないのでしょうか? はい。できません。 差分バックアップは、その差分バックアップに含まれるデータの最新の完全バックアップに基づいて行われるものです。 そのため、完全バックアップが消えてしまっては、比較の元がないために、エラーになり、復元はできません。 詳しくは、マイクロソフトのサイトにも書いてありますので ご覧下さい。 ■差分バックアップ http://msdn2.microsoft.com/ja-jp/library/ms175526.aspx >もし、完全バックアップファイルを削除すると、差分バックアップをリストアできないのであれば、バックアップファイルを残すことなく、差分のみをリストアする上手い方法がないでしょうか? 差分バックアップではできないので、部分バックアップを 使って見ては、如何でしょうか? 部分バックアップは、SQL Server2005からサポートされている ものです。 ■部分バックアップ http://msdn2.microsoft.com/ja-jp/library/ms190218.aspx ただし、ストアドやテーブル等のオブジェクトの単純比較というレベル の差分であれば、「SQL Server Compare」という フリーソフトで管理することは可能です。 ■SQL Server Compare http://www.yessoft.com/dnn/ #それでも、テーブル内に格納されているデータに対する差分は、  このツールでも無理です。  その場合は、完全バックアップ + 差分バックアップか、部分バックアップのどちらかを取らない限り無理です。 ご参考になれば幸いです。

t-ichiban
質問者

お礼

kero_mio様 とても詳しく、わかりやすく、ご丁寧な回答をいただき、本当にありがとうございましたm(_ _)m とても貴重な情報となりました。 バックアップの考え方についても、理解が深まりました。 また、部分バックアップで行けるかもしれないので、もう少し、よく調べてみます。 本当にありがとうございました!

関連するQ&A

  • 差分バックアップ時、削除ファイルはどう扱われますか?

    仕事場のファイルサーバーのバックアップ方法を見直そうと考えております。いろいろ調べて、差分と増分の違いあたりまではわかったので、フルバックアップと差分バックアップの組み合わせで対処しようと考えています。 その際、ひとつだけ疑問が湧いてまいりました。 「フルバックアップ時に存在したファイルを変更後に削除し、差分バックアップをとった場合、削除直前の状態でリストアできるでしょうか?」 差分バックアップは最新のもののみ残すことを考えています。 1日目・・・フルバックアップ 2日目・・・ファイル変更、差分バックアップ 3日目・・・ファイル削除、差分バックアップ 4日目・・・リストア この時、3日目の削除前の状態(2日目のファイル変更時の状態)でリストア可能でしょうか? フルバックアップ時まで戻らなければならないのでしょうか? 宜しく御教示下さい。

  • Backup exec 差分からのリストア

    Backup exec で、週次のフルバックアップと日次の差分バックアップを取得しています。 これまで、私の認識では、 例えば6/20のデータへ戻したければ、リストアの新規ジョブから、「リソース別」から「6/20のスナップショット」から特定のフォルダを選択し、リストアを実行すれば、 フルバックアップ+6/20までの差分バックアップを適応して、6/20の状態にデータを復元してくれると考えていました。 しかし、先ほど実行したところ、6/20の差分バックアップ分のデータ(8MB程度)しか復元されませんでした。 最後のフルバックアップの同じフォルダのデータは60MBあります。 つまり、6/20の状態に戻せば、60MB前後のデータ容量になるはずで、8MBというのはおかしいです。 差分バックアップを取得している場合、自分でルフバックアップからリストアして、その後差分バックアップからリストア。と2段階でリストア作業を実施しなければダメなのでしょうか?

  • バックアップ、リストアについて

    お世話になります。 Solaris10でSVMによるミラー構成時のテープへのバックアップ(ufsdump)、リストア(ufsrestore)について教えて下さい。 ディスク2本故障時のリストアも考慮して、バックアップとリストアの手順を考えているのですが、 1.ミラー構成のままバックアップを取得する場合、状態データベース領域もバックアップする必要があるのでしょうか? 2.リストア時、CDブートしてパーティション作成後に片方のディスクにufsrestoreする(必要なら状態データベース領域もリストア)ことになると思うのですが、リストア後にルート(/)以下で編集・削除・追加する必要があるファイルなどがあれば教えてください。 上記点以外でもアドバイス等ご教授頂ければ幸いです。 何卒よろしくお願いします。

  • バックアップと別サーバーへのリストアについて

    サーバーAにてバックアップしたものをサーバーBへとリストアしようとしています。 (Aがメインで、毎日Bを同じ状態に保っていたい) DBのサイズがかなり大きくなってしまっている為、週一で完全&通常は差分のみと考えています。 完全についてはREPLACEオプションにてリストアできるのですが、差分がリストアできなくて困っております。 リストアする方法でなくても、AとBを同じ状態に保つ方法があれば教えてください。 OS:WIN2003Server DB:SQLServer2005

  • HD革命 差分バックアップについて

    結局、差分バックアップのファイルをけすと復元できないのか、できるのかどちらなのでしょう。 ○○ 様 「HD革命/BackUp Easy」で行う差分バックアップは同期ではありません。 あくまで差分バックアップが実行された時点の状態を保存しています。 「HD 革命 / BackUp Easy」 にてバックアップを行いますと、初回は以下のファイルが作成されます。 ファイル名.hdf(バックアップファイル) ファイル名.hdm(管理ファイル) ファイル/フォルダ単位のバックアップのため、バックアップを行う際にファイルの保存場所などを管理ファイルに記録しております。 差分バックアップを行う場合、以上で作成された元となるバックアップファイルと管理ファイルを参照し、差分のバックアップを行います。 差分バックアップを実行するたびに、過去のバックアップファイルと、それに対応する 差分分をあわせて、最新状態がバックアップされます。 各世代では、今の状態と、元となったバックアップファイルの最初のバックアップ時の状態との違い部分のみをバックアップしています。 それ以前の世代での変更内容などは含んでいません。 ただし、差分バックアップの行われた履歴を管理しているため、 管理ファイルや、途中のバックアップファイルがひとつでも失われた場合、 復元が行えなくなります。 □□さまの説明だと、 削除されたデータは、削除されたという情報がバックアップされ、差分データから復元する際には復元されない> という事になろうかと思うのですが、 つまりこれは同期をしているということでしょうか。ここでの同期とはコピー元とコピー先を一致させる処理という意味です。 もし、HD革命の差分バックアップが同期的な機能だとしたら、 先述の通り、差分バックアップでは、各世代では、元となったバックアップファイル(hdfファイル)と、過去の差分バックアップファイルとの状態を比較しています。 そのため、差分バックアップファイルは、差分バックアップごとに増えていく ことになりますが、1つでも削除されたり、破損してしまいますと、次回の差分 バックアップや復元が実行できなくなってしまいます。 というくだりが理解できかねます。 同期をするのであれば、今までの差分バックアップファイルが消えても初回のバックアップファイルさえあれば復元できるのでは?と思えます。 もしくは、今まで差分バックアップファイルを利用して、同期をしていると考えればよろしいのでしょうか? ○○ 様  B時点では、bのファイルを削除した状態の差分バックアップに なるので、この時点(世代)のバックアップファイルを復元しても bはありません。 bのファイルを戻したい場合は、A時点のバックアップファイルを 復元する必要があります。 「HD革命/BackUp Easy」の差分バックアップでは、元となる バックアップファイル(hdfファイル)と管理ファイル(hdmファイル)を 参照し、差分のバックアップを行います。 差分バックアップを実行するたびに、過去のバックアップファイルと、 それに対応する差分分をあわせて、最新状態がバックアップされ新しい 差分バックアップファイルが作成されます。 ひとつのバックアップファイルを、1つの世代、として管理します。 復元を行う際には、任意の世代を選択することができますが、その世代で バックアップした時の状態のみが復元されることになります。 差分バックアップファイルは、差分バックアップごとに増えていく ことになりますが、1つでも削除されたり、破損してしまいますと、次回の差分 バックアップや復元が実行できなくなってしまいます。 また、hdf(バックアップファイル(hdf)、管理ファイル(hdm)、差分 バックアップファイル(hdi)は、すべて同じフォルダ内に保存されていることが 必要ですので、ご注意ください。 差分バックアップは、増えた分だけバックアップすると認識しておるのですが、バックアップを取った後に削除したファイルやフォルダはその後差分バックアップをした際、削除したファイルもバックアップされるのでしょうか。 例えば、      A時点 ⇒  B時点  ⇒  ?? a,b,c a,c      A時点でa,b,cファイルのバックアップを取り、B時点でbのファイルを消し、差分バックアップをとると、その後はa,b,cのファイルが残っているのか、bが消え、a.cが残っているのかどちらなのでしょうか。  いいかえると、B時点でのファイルを復元するとbが残っているのかということです。もし残らないとすれば以前バックアップしたファイルも全て残しておかなければ削除したファイルは元に戻らないという事になるのでしょうか

  • データベースのバックアップリストアの仕組みについて

    【環境】 SQL Server 2008 R2 Express Edition (x64) データベースの勉強をしています。 データベースの場合、データベースを管理しているのはOSではなく、DBMSのため、ユーザーデータベースを戻しただけでは、戻らないとに認識しています。 EXCELのファイルのバックアップ/リストアは、単にEXCELファイルをバックアップしてリストアすればいいのは分かりますが、データベースの場合のバックアップ/リストアについての仕組みについてよく理解できていません。 理解する上で、いろんなパターンのバックアップ/リストアを試そうと思っており、以下の件につきましてご教示を頂けますようお願い致します。 (1) 障害が発生した場合を想定してのデータベースのバックアップですが、ユーザーデータベースだけではなく、masterデータベースのバックアップも必要という認識であっておりますでしょうか。 masterデータベースにはユーザーデータベースの場所、ユーザー情報、ユーザーのロール情報が含まれているため、バックアップしたユーザーデータベースだけリストアしても復旧できないということでよいでしょうか。 masterデータベースが損傷していなければ、バックアップしたユーザーデータベースだけリストアすれば、復旧できる。 (2) ユーザーデータベースが10個あり、そのうち特定なユーザーデータベース1個のバックアップおよびリストアテストをする手順については、下記でよろしいでしょうか。 テスト後は、次のテストパターンを学習するため、元の状態に戻したいと考えています。 <手順> 1.システムデータベース、必要なユーザーデータベース1個をのバックアップを行う。 2.ユーザーデータベース10個をデタッチする。 3.システムデータベースをデタッチする。 4.デタッチしたシステムおよびユーザーデータベースを別の場所に退避する。 5.システムデータベース、特定のユーザーデータベース1個をリストアする。 6.リストアしたユーザーデータベースが問題ないことを確認する。 7.リストアしたユーザーデータベース1個をデタッチする。 8.リストアしたシステムデータベースをデタッチする。 9.退避したシステムデータベース、ユーザーデータベースを元の場所に戻す。 10.システムデータベースをアタッチする。 11.ユーザーデータベース10個をアタッチする。

  • バックアップとリストアについて

    Mysqlのデータバックアップを mysqldump -u root -x --all-databases > dump.sql のように行っております。 私の場合、すべてのデータベースをバックアップしたいので、allにしてます。 リストアの際には mysql -u root -p < dump.sql としております。 しかし、データベースが復元されません。 allとしてバックアップを行ったのに、データベースが全く復元されません。 何か特別な方法があるのでしょうか?

    • ベストアンサー
    • MySQL
  • ファイルサーバー用差分バックアップソフトを教えて

    ファイルサーバー用差分バックアップソフトを探しています。やりたいことは、このソフトをWindows7にインストールして、Server2012のファイルをフォルダ階層ごと指定のフォルダにバックアップすることと、その差分を曜日ごとに分けた別のフォルダに階層を維持しながらコピーすることです。ハンドリングしやすいように、ファイルは圧縮なしのそのままま状態でコピーできることが希望です。フリーソフトではなく問い合わせ可能な有償ソフトでお勧めを教えてください。よろしくお願いします。

  • DATのバックアップの差分について。

    DATのバックアップで全件・差分と有ります。 全件は全てだと思うのでリストア時もイメージできるのですが, 差分の場合,更新のあった物というイメージとなりリストアを 行う場合の手順等はどの様になるのでしょうか? ※機械・ソフトのマニュアルがないので質問させて貰っています。  ソフトは"Seagate Backup Exec"です。

  • SQLサーバのバックアップファイルをMSDEで復元するには?

    タイトルのそのままなのですが、 SQLサーバにて作ったバックアップファイル(.BAK)を、 別のPCにインストールしてある、MSDEにリストアしたいのです。 (ユーザやパスワードの設定は同じです。) 実際にやってみたところ、リストアまではいけるのですが、 復元した後、ユーザでログインできないのです。 「ユーザーの既定データベースを開けません。ログインに失敗しました。」 というメッセージが出て、ログインできないんです。 ユーザーの権限などがうまく復元できてないのかなぁと思うのですが、 どうしたらいいのか、困っています。 どうぞ、ご教授よろしくお願いしますm(_ _)m