別マシンへのデータベース移動時の注意点
別マシンへデータベースを移動する場合はオフラインバックアップを持って行ってアタッチしたり、BACKUPステートメントで取得したバックアップを移動先でRESTOREステートメントでリストアするなどの方法が使える。
復元場所を変更する MOVE .. TO
RESTOREステートメントは、そのままではもともとあった場所にデータファイルを復元しようとするが、マシンが替わってドライブ自体が存在しなかったりするとエラーになる。
そこで、「MOVE .. TO」オプションを使って「データファイル」と「ログファイル」の場所を指定してRESTOREする。
GUIでの復元
1と2のファイル指定ダイアログの扱いが判りづらい。
おそらく、バックアップファイルに複数のバックアップが存在し、すべてを同じフォルダにリストアするときは1を、それぞれを個別の場所にリストアするときは2を使えば良さそう。
また、ファイル名の変更が必要な場合も2で行う。
データベース移動時の注意点
データベースの移動で複製できるのは、あくまでもデータベース内のオブジェクトのみ。
ログインアカウントの複製
Webアプリでは個々にDBへのアカウントを使うこともないと思うので、あまり複製のニーズは無いのかもと思ったり・・・。
移動先で不明なデータベースユーザーとなってしまった場合は以下のコマンドでリストアップできる。
ログインアカウントの転送
ドメインユーザーのログインアカウントが多数あって手動登録が面倒な場合は以下のいずれかのツールを使ってログインアカウントを転送する。
- 「データベースコピーウィザード」
- 「ログイン転送タスク」
- 「SQL Server オブジェクトの転送タスク」
同じパスワード/SIDのログインアカウントの作成
sp_help_revlogin という名前のストアド プロシージャで、マイクロソフトのサポート技術情報(KB:Knowledge Base)の文書番号 918992 で提供されている。
SQL Server 2005 のインスタンス間でログインおよびパスワードを転送する方法
システムデータベースのオンラインバックアップ/復元
バックアップ
「master」データベースのバックアップは通常のデータベースと同様のコマンドでバックアップすることができる。
BACKUP DATABASE master |
復元
<システムデータベースの復元手順>
システムデータベースはそれぞれ以下の順番での復元が必要になる。
msdbとdistributionデータベースを復元するまでは、「SQL Server Agent」サービスなど、SQL Server 関連の他のサービスを全て停止しておく必要がある。
modelデータベース復元後は、SQL Server サービスを再起動してSQL Server関連の他のサービスを起動する。tempdbは自動的に再構築されるので復元は不要。
masterデータベースのリストア手順
- 「SQL Server 構成マネージャ」から、SQL Server サービスを停止する
- コマンドプロンプトを起動して以下のコマンドを入力(SQL Server をシングルユーザーモードで起動)
cd C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn
sqlservr –m
- もうひとつコマンドプロンプトを起動して、sqlcmdユーティリティからRESTOREステートメントを実行してmasterデータベースを復元する
- 復元が成功した場合は、手順2のコマンドプロンプトから起動したSQL Serverが、自動的にシャットダウンされる。
- 最後に、SQL Server 構成マネージャから、SQL Server サービスを開始する
コンピュータ名が異なる別のマシンへのシステムデータベースの復元
基本的には行わない。
マシン名が同じで同じドライブ構成、同じドメイン構成にしておくのが無難。
0 件のコメント:
コメントを投稿