3

ダイアグラムと外部キーを使用してデータベース全体をサーバー上の既存のデータベースに復元しようとしています。それを新しいデータベースに置き換えたいのですが、次のスクリプトを試してみましたが成功しませんでした

drop database  DuxburyCaravans    
go
RESTORE DATABASE stonestore
  FROM DISK = 'C:\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\DuxburyCaravans.BAK'
  WITH MOVE 'DuxburyCaravans' TO 'D:\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DuxburyCaravans.mdf',
  MOVE 'DuxburyCaravans_log' TO 'D:\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DuxburyCaravans.LDF'

しかし、エラーが発生します:

メッセージ 3702、レベル 16、状態 3、行 3
データベース「DuxburyCaravans」は現在使用中のため削除できません。
メッセージ 3201、レベル 16、状態 2、行 1
バックアップ デバイス 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\DuxburyCaravans.BAK' を開けません。オペレーティング システム エラー 3 (このエラーのテキストを取得できませんでした。理由: 15105)。
メッセージ 3013、レベル 16、状態 1、行 1
RESTORE DATABASE が異常終了しています。

4

3 に答える 3

11

実際のRESTOREサーバー マシンでのみ動作します。これは自分の PC ですか、それとも別のマシンですか??

別のマシンの場合:ローカル ハードディスクからリモート サーバーにデータベースを復元することはできません*.bak。サーバーがアクセスできるドライブにファイルを配置する必要があります。へのマッピング (およびアクセス)。

于 2011-05-13T15:19:47.473 に答える
2

エラーは、データベースDuxburyCaravansが使用中であることを示しています。SINGLE_USERモードに変更することで、SQLの既存の接続を閉じることができます

ALTER DATABASE [DuxburyCaravans] SET SINGLE_USER With ROLLBACK IMMEDIATE
RESTORE DATABASE [DuxburyCaravans] FROM DISK = N'C:\Path\To\Backup.bak'
ALTER DATABASE [DuxburyCaravans] SET MULTI_USER
于 2011-05-13T13:49:59.010 に答える
1

最初に次のいずれかを行う必要があります。

  • 復元しようとしているデータベースへのすべての接続を閉じるか、または
  • MS SQL Management Studio を使用して、リモート サーバーに接続します。ルート サーバー ノードを右クリックし、 [ Activity Monitor ] を選択します。Processesを展開し、データベースを使用している各プロセスを右クリックして、Killを選択します。もちろん、これは慎重に行ってください。

すべての接続が閉じられたので、データベースを復元できます。

于 2011-05-13T13:40:54.713 に答える