• ベストアンサー
  • すぐに回答を!

SQL Server 2008を用いたデータベースリカバリについて2点

SQL Server 2008を用いたデータベースリカバリについて2点教えてください。 1.SQL Serverを構成している「システムデータベース」と「ユーザデータベース」ですが、   例えば、「ユーザデータベース」が壊れてリカバリを行うことになった際、   ユーザデータベースだけ戻せばデータベースは復旧できるのでしょうか?   システムデータベースもあわせて戻さないと戻りませんか?   トランザクションログの用いて更新直前にまで戻す必要はありません。 2.データベースをバックアップしている最中に、そのバックアップ対象のデータベースに   更新がかかった場合、バックアップデータはどうなるのでしょうか?   更新内容も反映されるのか?それともバックアップが始まったときのものだけが   バックアップできて更新内容は反映されないのか?   そもそも更新を始めようとすると排他がかかって勝手に更新させないとかあったりするのでしょうか? 調べがつかず困っております。 有識者のご回答をよろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • SQL Server
  • 回答数2
  • 閲覧数1185
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

#1です。 >この部分について、厳密とは言えないものの、取りあえずはオンラインバックアップ中に何らかの更新処理があった場合に、そのバックアップが完了した後、更新分の差分バックアップが自動で走って最新の状態になるという認識でよろしいでしょうか? 基本その理解でいいかと思います。 SQL Serverがコアのバックアップ処理を終了してLSN(ログシーケンス番号)をチェックするタイミングが厳密にいつなのか外からは分からないのですが、実際にバックアップ中に更新してみるとある程度は確認できます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

しばらく回答〆切にするのを忘れていました。 改めて御礼申し上げます。 助かりました。 ありがとうございました。

その他の回答 (1)

  • 回答No.1

1.ユーザデータベースの復旧は、対象データベースのリストアだけで完了し、システムデータベースをリストアする必要はありません。 2.オンラインバックアップ中でも、INSERT/UPDATE/DELETEなどは通常問題なく更新できます。 (データベースレベルの一部の特殊なオペレーションを除く。詳細は以下の「バックアップ中の同時実行の制限事項」参照)  http://technet.microsoft.com/ja-jp/library/ms175477(SQL.90).aspx  オンラインバックアップでは、SQL Serverがバックアップ開始時とバックアップ終了時にログへの書き込み状況をチェックすることにより、バックアップ中の更新もバックアップに含めるようにしますが、そのような仕組みであるため、オンラインでのフルバックアップは、特定時点での更新状態を厳密に保存したものではありません。 このあたりについて、詳細な内容が知りたい場合は「インサイドSQL Server 2005 ストレージエンジン編」という書籍をご覧ください。 (バックアップのメカニズムについては2005/2008で差はありません)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

親切なご回答ありがとうございます。 回答内容について、1点質問があるのですが >オンラインバックアップでは、SQL Serverがバックアップ開始時とバックアップ終了時にログへの書き>込み状況をチェックすることにより、バックアップ中の更新もバックアップに含めるようにしますが、そ>のような仕組みであるため、オンラインでのフルバックアップは、特定時点での更新状態を厳密に保存し>たものではありません。 この部分について、厳密とは言えないものの、取りあえずはオンラインバックアップ中に 何らかの更新処理があった場合に、そのバックアップが完了した後、更新分の差分バックアップが 自動で走って最新の状態になるという認識でよろしいでしょうか?

関連するQ&A

  • SQLサーバのバックアップ

    SQLサーバのバックアップを取りたいのですが、 データベースの保存はうまくいくのですが、 SQLサーバ[セキュリティフォルダ]下の[ログインフォルダ]の ユーザ情報は保存出来ないのでしょうか? また、SQLサーバ自体のバックアップは取れるのでしょうか? どなたかご教授いただけますか?

  • SQLサーバのデータベース名表示について

    SQLサーバ初心者です。 わからないことがあり、ご存知の方いらっしゃいましたらご教示ください。 SQLサーバ2008 を使用しています。 SQLサーバのデータベース名の一覧を取得する方法として、 sys.databasesをselectしたり、sp_databasesを使用してDB名を取得できることは確認できたのですが、 master/msdbなどのシステムデータベース以外の自分で作成したユーザーデータベースのみリストする方法があればご教示いただけないでしょうか?

  • SQL Server 2000のマシンリプレース

    SQL Server 2000のマシンリプレースを予定しております。 OS:Windows 2000→Windows 2003 DBMS:SQL Server 2000 →SQL Server 2000 サポート期間の問題は百も承知ですがこのような構成でのリプレースとなってしまいました。 リプレースにあたり旧サーバ・新サーバでIPアドレス・ホスト名は異なるものを割り当てます。 そこでDB移行の手順についてお聞きします。 移行にはSQL Server 2000の自習書(バックアップ)を参考に行う予定です。 http://download.microsoft.com/download/F/4/B/F4B18D97-C4ED-4E01-B7DC-5023F195B512/SQL2000DBA-06.doc 過去の質問も活用させていただきました。 http://okwave.jp/qa/q864802.html ■完全バックアップ 1.複製元となるデータベースを右クリックし、[全てのタスク] - [データベースのバックアップ]を選択する。 2.バックアップファイルの出力先とファイル名を指定し、「OK」を押下する。 3.バックアップ完了 ■単純復旧 4.複製先となるデータベースに空のデータベースを作成する。※複製元のデータベースと同じ名前 5.作成したデータベースを右クリックし、[全てのタスク] - [データベースの復元]を選択する。 6.「デバイスから」を選択し、「デバイス選択」を押下する。 7.「追加」を押下して先ほどバックアップしたファイルを指定する。 8.「ファイル名」を選択し、先ほど取ったバックアップファイルを選択し、「OK」を押下する。 9.「オプション」タブを選択し、「既存のデータベース上に強制的に復元」をチェックし、「OK」を押下する。 10.バックアップ完了 ■調整作業 以降は現行サーバを見ながら環境を合わせていきます。 11.[セキュリティ] - [ログイン]を選択し、ログインユーザを作成   「SQLServer認証を選択し、パスワードを入力してください(規定値に目的のデータベースを選択してください)。 12.パスワードの確認画面が表示されますので、パスワードを再入力してください。 13.「データベースアクセス」タブを選択し、権限を与えるデータベースにチェックをつけます。 ----------------- <質問> ●作業に漏れはないか? ●システムデータベースのバックアップ・復元は必要でしょうか? ●トランザクションログのバックアップ・復元は必要でしょうか? ●インデックス・View・ストアドプロシジャも復元できますでしょうか? ●その他漏れや注意点などありますでしょうか? ●バックアップ取得時にサービス提供は継続できますでしょうか?  ※参照のみであり更新処理は発生しない SQL Serve初心者のため初歩的な質問ですが宜しくお願いします。

  • SQL Serverの復旧モデルについて

    SQL Serverの復旧モデルについてご教授願います。 (質問が分かりにくいかもしれませんが、ご容赦ください。。。) 現在、あるシステムで 復旧モデルが「フル」であるDBがあります。 しかし、トランザクションログのバックアップをとっていないため、 ログファイルが肥大化し、当該DBを格納しているディスクドライブ(C)を 逼迫している状況です。 これを機に、復旧モデルを「シンプル」に変更し、 ログファイル肥大化を防ごうという方針で話が進んでいます。 そこで、「シンプル」した場合、以下の点についてを確認したいと思います。  ○障害発生時の復旧は最後にデータをバックップした時点までである。   (データは、毎日フルでバックアップ)    ⇒「シンプル」の場合、ログのサイズが、全体のログファイルの70%に達した場合は      チェックポイントが発生し、ログが切り捨てられるというのを聞いたのですが、      これは「ログが全く残らない」ということでよろしいでしょうか?      たとえば、10/1に最後にデータバックアップができ、      10/2に新たにデータ更新等があったとします。      その過程で、ログ量が全体の70%に達した場合は10/2更新分のログも切り捨てられ      その後障害が発生した際には、10/2更新分のデータは復旧できない      という認識で間違いないでしょうか? 説明足らずな箇所が多大に含まれているかと思いますが ご教授よろしくお願いします。     

  • SQL Serverデータベースの完全なバックアップ

    Microsoft SQL Server 2000を使用しています。 わけあってHDDのフォーマット及びOS(Windows 2000 Server)の再セットアップを行うことになり、この上にあるデータベースのバックアップをとりたいと思っています。 研修用のテスト機なので、SQL Serverを停止することは全く問題ありません。OSを再インストールし、SQL Server 2000 を再インストールした後に同じ状況を復元できないかと考えています。 良い方法をご存知の方、ご教授いただけないでしょうか。

  • SQLサーバーのライセンスについて

    Web上で可動するデータベースを構築中です。 仕組みはWebサーバからASPでデータベースサーバにアクセスし、データを表示するものです。 データベースサーバには、データベースサーバとそのバックアップサーバの2台のサーバがあります。 (つまり、Webサーバ、データベースサーバ、バックアップサーバの3台で構成させています。) データベースのプログラム自体は、外注で業者さんに依頼しているのですが、その業者さんに「SQLサーバのインターネットライセンスを一つ購入して下さい」と言われました。 この「インターネットライセンス」の価格や販売しているところ、どれくらいの期間で入手できるのかを知りたいのですが、まったくわからずにいます。というのはマイクロソフトのSQLサーバのページを見ても「プロセッサライセンス」と「サーバライセンス」の2つしかなく、このどちらかが「インターネットライセンス」なのか、もしくはどちらでもないのか、またライセンス料金はいくらなのか、販売している業者の連絡先はどこなのか、などまったくわからずにいます。 プログラムを開発した業者に聞いてもわからず、また「サポート範囲外」ということもあり取り合ってくれません。 SQLサーバは、バックアップサーバとデータベースサーバの2つに必要らしく、今現在SQLサーバのプロセッサライセンスを一つ持っていて、バックアップサーバにインストール済みです。 どのように質問していいものかもちょっとわからずにいるので、質問の内容が変かもしれません。 素人ですが、どなたかご存知の方、よろしくお願いします。

  • データベースサーバー構築

    質問場所がここで良いか少し不安ですが 主にWebで公開するデータベースのシステムを作ろうとしています 自分のスキルの範囲でやろうとしていますが少し分からないことがあるので 教えてください まず 自分のできること(やっていること)は ・Windows系サーバー(IIS)を使ってVBスクリプト(ASP)で ローカルにあるMDBファイルにアクセスし商品を紹介する動的ページの作成 です。 今後複数ユーザーでデータベースを使うことになるので システムを変えていく必要がでてきて MDBはダメだという事になり色々調べた結果、今後のことも考えWebサーバーとは別に データーベースサーバーを作ってやると言う結論になりました 分からないこと(あやふやな理解になっていること) 1.データベースサーバーとは何か?  これは OSは別として、SQL Server、オラクル、MYSQLといった  RDBMSをインストールしただけのデータベース置き場専用という感じのPCを指すと言うことで良いでしょうか?  例えば Win2000のIISでwebサーバーを作りその中のASPページから  別PCにあるデータベースにアクセスする構成がデータベースサーバーを別に設けると言うことで正しいのかどうかと言うことなのです。 2.データベースは何がよいか?(SQL Serverでよいか?)  本来であれば、webで商品在庫を公開することがメインで更新頻度が少ないデータベース  (300人ぐらいで共有し1万~3万レコードです)です、なおかつ複雑なSQLは発行しません。  ほぼASPからの接続で抽出(ID=** という単純な抽出条件)しか使わない、あとは並び替え位なので  MYSQLが向いているようでしたが、私はLinux系は全く分かりません。  なので メンテナンスの面や勉強する時間の節約からすれば  Windowsで動くSQL Serverが良いと思うのですが(MYSQLもWindowsで  動くけど得意とする高速性はLinux系でないと発揮しないみたいなのでやめようと思っています)  上記のような条件と使い方の場合、そんなに処理時間やマシンの負荷に両者間では大差があるのでしょうか?  MDBの時でもあまり不具合を感じなかったので、それよりは格段にSQL Serverは早いし負荷が少ないと聞いていますので  大丈夫かなと思っています。 3.SQL ServerをインストールするPCは何が最適か?  先も述べたようにデータベース専用として使う予定ですが  Win2000でよいのでしょうか?(XPより2000の方が安定がよいと思うので) それともWin2003Serverに  インストールできるならその方がよいでしょうか?  とにかく安定度が一番なのですが、そもそもWin2003Serverに  インストールできるのでしょうか?(もうすぐ2008?がでるからそれにしようかとも検討中です) 4.最終的に自分の思っていることと実体の構成(理解)は理解は以下のような感じで正しいのでしょうか?    複数でデータベースを共有するため、MDBでなくネットワークに強い (共有データベースで壊れにくい?壊れない?)データベースに変えるため、windowsで動くSQL Serverを使う  そのSQL ServerはwebサーバーがあるPCとは別のPCにインストールして使う  (データベースサーバーを別に用意する)ことでwebサーバーの負荷も減らし、データベースも快適に動くようにする 最終的にはWin2003Server×2台で1方はwebサーバー1方はSQL Server をインストールして使うことで上記を実現させる 5.SQL ServerのデータベースはMDBのような最適化というような作業が必要なのでしょうか?  そもそも 似ているようで違う MDBとSQL Serverでその特徴がきちんと理解できていないので  愚問なのかもしれませんが 気になるので教えてください 6.オラクルと違いSQL Serverはレコードの更新や追加の時  その行(レコード)だけロックすると言うことができない?  ようなので、Aさんが自分の商品を更新中にBさんも更新する  と言うようなことが起こった場合(MDBはこれになると壊れると書いているので MDBをやめました)  Aさんの更新が終わるまでBさんは更新できない(更新終了まで待つ)と言うことになるのでしょうか?  また、このとき商品一覧を要求された場合、更新中の情報はどの様になるのでしょうか?(更新終了まで見れない?) なんか 分かりにくい質問になってしまいましたが、お金をかけて 買ったはいいが、理解不足でやりたいことができなかったと言うことは 避けたいので ご教授下さい。 よろしくお願いします。

  • RAID構成時のSQL Server の復旧

    質問させていただきます。 例えば、RAID1が組んであるHDDにSQL Server をインストールして データベースを運用している際、片方のドライブが壊れた場合 復旧するにはSQL Server の再インストールから行うのでしょうか? それとも、SQL Server そのものもミラーリングされていて、 データベースを操作するアプリケーション側で接続先を変更すれば すぐに復旧できるのでしょうか? その場合、データベースは壊れる直前まで情報は更新されているのでしょうか? 宜しくお願い致します。

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

    【環境】 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個をアタッチする。

  • SQL Server2005のバックアップ

    SQL Server2005をサービスを停止せずにデータベース、ビュー、プロシジャ等を全て外付けデイスクに1ファイルとしてバックアップを撮りたいのですがリカバリーを考慮してできるだけ簡単な方法ございまうでしょうか。(できればバッチファイルにして夜間ジョブに登録したいと思います)。また可能であればリカバリ方法も教えていただきたいと思います。