web-dev-qa-db-ja.com

.bakファイルをリモートデータベースに復元する

ローカルマシンにtest.bakファイルがあります。このファイルをリモートマシンのデータベースに復元する必要があります。それ、どうやったら出来るの?

これを試してみると、リモートデータベースはローカルファイルシステムでtest.bakを見つけることができないというエラーをスローします。

クエリ

RESTORE DATABASE TESTPROJECT 
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.ICON3\MSSQL\Backup\test.bak'

エラー

Cannot open backup device 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.ICON3\MSSQL\Backup\test.bak'. Operating system error 2(The system cannot find the file specified.).

どうすればこれを達成できますか? Microsoft SQL Server2008を使用しています。

18
Rockstart

この回答のコンテキストでは、remoteはマシンを指し、localはデータベースサーバーです。


localファイルシステムから復元

バックアップファイルをlocalファイルシステムにコピーし、このコピーから直接復元します。

前提条件

  • サーバー上のtest.bakC:\test.bakにコピーします

構文

RESTORE DATABASE TESTPROJECT FROM DISK = N'C:\test.bak';

remoteファイルシステムから復元

または、 NC構文 を使用してremoteバックアップファイルから復元することもできます。私は通常このオプションを使用しませんが、バックアップファイルと復元されたデータベースの両方のためにlocalファイルシステムに十分なディスクスペースがない場合に役立ちます。

このオプションが成功するかどうかは、データベースサービスアカウントに割り当てられたremoteファイルシステムのアクセス許可、ネットワークの状態など、いくつかの変数によって異なります。

前提条件

  • Remoteマシン名はremotemachineです
  • バックアップはremote'C:\test.bak'にあります
  • データベースサービスアカウントは、remote管理者共有C$にアクセスできます

構文

RESTORE DATABASE TESTPROJECT FROM DISK = N'\\remotemachine\c$\test.bak';
20
Bryan