« oracle「windowsXP+oracle8.1.7」 | Main | javascript「有効かどうか識別する」 »

2006.05.10

sqlserver「DBコピー」

ユーザ環境から開発環境へ、違ったテストの為のコピー、
システム開発のような仕事をしていると、DB環境をコピーしなければな
らない場合が多々あります。

こう言う作業は理屈から言うとすぐ終わるはずなのですが、結構どこか
でひっかかってしまい手間と時間のコストを浪費するものです。
原因はさまざまで、OSの違いかもしれないし、DBバージョンの違いかも
しれないし、フォルダ構成の違いによるものかもしれないし、インストー
ルされているソフトのせいかもしれないし・・
あげたらキリがありません。

こう言う場面で浪費する時間は無駄以外のなにものでもないので、
SQLServerのDBのコピー手順と注意点を簡潔にまとめておきます。
SQLServerの場合はオラクルなんかと比べるとこの作業は楽です。
簡単に言うとデータベースのバックアップをとり、そのバックアップファ
イルを他の環境へ持っていき復元します。

やり方メモ:
1.コピー元の環境でSQL Enterprise Managerを起動しDBに接続します。
2.対象のDBを選択し、右クリック→すべてのタスク→データベースの
バックアップを選択します。
3.出力先の「追加」ボタンで出力するフォルダを選択します。
4.OKボタンでバックアップが開始されます。
5.ファイルをコピー先へ持ち込み、サーバの適当なフォルダにでもファ
イルを一時保存します。
6.コピー先の環境でSQL Enterprise Managerを起動しDBに接続します。
7.DBが未作成であれば新規作成します。
8.復元するDBを選択し右クリック→すべてのタスク→データベースの
復元を選択します。
9.「復元:デバイスから」をチェックします。
10.デバイス選択ボタンでバックアップファイルを置いたフォルダに
アクセスしファイルを選択します。
11.オプションタブで「既存のデータベース上に強制的に復元」をチェッ
クします。
12.そして論理ファイル名と物理ファイル名が表示されているグリッ
ド部の物理ファイル名とそのパスをよくチェックして下さい。
ここがコピー元環境と違っているにもかかわらず、そのまま実行すると、

デバイス アクティブ化エラー ・・・ WITH MOVEオプションを使用しま
す・・・ RESTORE DATABASEが異常終了しました。

とエラーになります。

ミソは9でファイルからの復元が可能となる事、12に注意する事です。
ここをおさえておけばすんなり復元できるかと思います。

補足:
その他にデタッチ&アタッチによる方法もありますが、こちらは一時的
にDBが使用できなくなるので、DBの使用者がいれば迷惑がかかります。
DBを丸ごと別のPCに移す場合等はこちらの方法が楽です。

また、コピー元PCとコピー先PCが同LAN内にある場合は、データのエクス
ポート&インポートでも実現可能です。

|

« oracle「windowsXP+oracle8.1.7」 | Main | javascript「有効かどうか識別する」 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/55878/10003133

Listed below are links to weblogs that reference sqlserver「DBコピー」:

« oracle「windowsXP+oracle8.1.7」 | Main | javascript「有効かどうか識別する」 »