web-dev-qa-db-ja.com

以前に存在しなかったSQL Server 2005データベースの移動(復元)

私はこれについては準備ができていませんでしたが、リモートサーバーからデータベースを復元しようとした後、データベースが存在しないと復元できませんでした。私がすることは

  1. .bakファイルを作成する(データベースをバックアップする)
  2. 共有フォルダを使用して.bakファイルをリモートサーバーにコピーする
  3. SQL Server Management Studioで復元を実行してデータベースを復元する

エラーになります。私はそれをほとんど偶然に見つけたと思います(または、欲求不満で、データベースの上にそれを復元しただけで、うまくいきました)。

今、質問を入力しているときに、移動はおそらく復元と同じではないことに気づきました。復元するには、データベースがすでに存在している必要がありますか?

システムに存在しないデータベースを復元するために、再び同じ立場にいます。

1。どのような手順に従いますか?

2。リモートサーバーで正常に復元する前に、.bakファイルに権限を設定する必要がありますか?

。または、より良い方法はありますか?

何か不足していますか?データベースを復元(または移動)する際のルールについて教えてください。

編集:ダイアログエラーを追加します。私はちょうどプロセスを繰り返しました。これが以前に取得した正確なエラーであったかどうかはわかりません。元のデータベースの名前を変更しました。次に、SSMSを使用してインポートします。

enter image description here

5
Jackofall

いいえ、復元するために、データベースが既に存在している必要はありません(with replaceコマンドでrestore databaseオプションを設定しないように注意してください)。

次のステートメントは、バックアップから新しいデータベースを作成します。

RESTORE DATABASE [YourNewDbName] 
FROM  DISK = N'C:\YourBackupFile.bak' 
WITH  FILE = 1,  
    MOVE N'YourDataFile' TO N'C:\YourNewDbName.mdf',  
    MOVE N'YourLogFile' TO N'C:\YourNewDbName_1.ldf',  
    NOUNLOAD,  
    STATS = 10
GO

もちろん、それに応じてパラメーターを変更します。ただし、これはYourNewDbNamerestore databaseの前に存在する必要はありません。

6
Thomas Stringer

いいえ、バックアップを復元するためにデータベースがすでに存在している必要はありません。受け取ったエラーはおそらく、どこかからいくつかの復元コマンドをコピーしたためであり、正常に動作するのを妨げるオプションがありました。実際に実行したRESTOREコマンドと実際に受け取ったエラーメッセージを投稿すると、問題の解決に役立ちます。

3
Aaron Bertrand