MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[1368]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(1368番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
システムデータベースの復旧方法について

Date: Wed, 27 Oct 2004 11:01:49 +0900
From: "Akira Horikawa" <who@example.ne.jp>


堀川です、おはようございます


昨日、

第6回 : システムデータベースのバックアップとデータベースサーバーの再構築
http://www.sqlpassj.org/tokushu/backup/

上記の原稿を書いておりました。近日中に公開されます。

ページ数の都合で割愛したことがありますので、それをメモしたものを書きます。


SQL Server 2000 データベースサーバーのシステムデータベースが壊れたときの
復旧方法についてです。
ここでは、最悪のシナリオからの復元手順です。


【想定被害状況】
SQL Server 2000 のプログラムを収録したDISKは損害を受けなかったが
システムデータベースを収録したフォルダが全壊してしまった


【一般的な復旧方法】
 rebuildmコマンドを使ったシステムデータベースを全部再構築する方法が
あります。
 rebuildmでは、master,model,msdb,pubs,northwndの物理ファイルが
必要です。


【ここでの方法(実質的な内容はrebuildmとあまり変わらないかも?)】
 実行できる条件:
   masterデータベースの物理ファイル(master.mdf と mastlog.ldf)
    と
       modelデータベースの物理ファイル (model.mdf と modellog.ldf )
のコピーが手元にある場合に実行できる。

 modelデータベースは、その辺で動いている SQL Server 2000 や
CD-ROM等から物理ファイルを入手すればよい。

  また、msdbの物理ファイルまたはバックアップファイルも必要です。
madbは、通常、バックアップファイルからリストアするのがよい。
この点が、rebuildmとの違いがあります。rebuildmは物理ファイルから
の復元となっている。


手順−1:
 masterデータベースの物理ファイルとmodelデータベースの物理ファイルを
既定のフォルダ(C:\Program Files\Microsoft SQL Server\MSSQL\Data)に
コピーする。
 この物理ファイルは、システムデータベースが全壊する前の、出来る限り
直近に近いものがよい。
 但し、システムデータベースのバックアップ(Backup Database文)を実行
しているときは、サーバーが動き出した後でそれをリストアすることができる。


手順−2:
 SQL Serverのデータベースサービスを sqlservr.exe によって開始する。
但し、次のオプションスイッチを付ける。
       sqlservr -c -m  -T3608
トレースフラグT3608は、Books Onlineにはどこにも掲載されていないが、
マイクロソフトのサポートページなどから、このフラグは、masterデータベース
だけを確認して他のデータベースは組み込まずに(だから壊れた状態でもよい)
最低限の状態でデータベースサーバーを起動するスイッチとなる。


手順−3:
 もう1つ別のコマンドプロンプトを立ち上げて
       osql -E -Q"USE model"
または
       osql -U sa -P pass -Q"USE model"
を実行します。
 これにより、modelデータベースがシステムに組み込まれます。
このとき、modelデータベースの物理ファイルが、壊れる前と同じディレクトリ位置
に存在することが条件となる。


手順−4:
 次に
       osql -E -Q"USE tempdb"
または
       osql -U sa -P pass -Q"USE tempdb"
を実行します。
 これにより、modelデータベースを雛形としたtempdbデータベースが新しく
自動的に作成されます。
 作成される位置は、tempdbデータベースが壊れる前と同じディレクトリ位置
です。


以上の操作によって、master,model,tempdbが復元されました。



手順−5:
 手順ー2で起動したデータベースサービスをキーボードからCtrl-Cで中断して、
       sqlservr -c
と入力して、データベースサーバーを再起動し直します。


手順ー6
 msdbデータベースを復元します。直近のバックアップから復元操作を行ないます
  osql -E -Q"restore database msdb from disk='d:\backup\msdb.bak' with
replace"


以上により、システムデータベース関係の復旧ができます。


この方法では、
(1)masterデータベースの物理ファイルが必ず必要
(2)msdbデータベースのバックアップファイルが必要
(3)壊れる前と復旧後のディレクトリ環境が同一であること
が、必要条件です。



------------------------------------
(株)日本技術ソフト開発
        堀川 明  (Akira Horikawa)
    10月27日(水曜日) 11時01分記
        mailto:who@example.ne.jp
        http://www.horikawa.ne.jp/msde/





[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。