シナリオのマシンのSQL Serverデータベースのバックアップを復元します。私は1台のマシン 別
abc.bak
)を持っている
- 私はいくつかのパスに別のマシンにそれをコピーしたのは、
G:\SQLDB\backup\master_copy.bak
- をしましょう私は、次のT-SQLを試して復元するために使用しましたが、エラーが発生します。
T-SQLを使用:
RESTORE DATABASE New_DB
FROM DISK = 'G:\SQLDB\backup\master_copy.bak'
WITH
MOVE 'coop_test_dat' TO 'G:\SQLDB\livedb\new_db_data.mdf',
MOVE 'coop_test_log' TO 'G:\SQLDB\livedb\new_db_log.ldf',
REPLACE
エラーが発生:
5133メッセージ、レベル16、状態1、行1
ファイル「C用 Directory参照:\ SQLDB \ masterdb \ master_blank.mdf "がオペレーティングシステムエラー3で失敗しました(指定されたパスが見つかりません)。メッセージ3156、レベル16、状態3、行1
ファイル 'coop_demo'は 'C:\ SQLDB \ masterdb \ master_blank.mdf'にリストアできません。 WITH MOVEを使用して、ファイルの有効な場所を識別します。
ここで指定されたパスは、新しいマシンに存在しない古いマシンからのものです。
どうすればこの問題を解決できますか?イェルーンが示唆したものを
エラーメッセージは、ファイル 'coop_demo'に関するものです。ファイル 'coop_test_dat'と' coop_test_log'だけを移動しています。 (一般的には、あなたのエラーメッセージはあなたのシナリオにまったく合致していないようですが、あなたの最後には不適切な置き換えが原因である可能性があります。 ](https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql)を実行して、バックアップに含まれるファイルと適切な 'MOVE 'clauses。 –
coop_demoは私の古いマシンの古いdbの名前です。新しいdb名に復元する必要があります:新しいマシンの新しい場所にあるnew_db – KoolKabin
'coop_demo'も*データベースのファイル名です。どうして?エラーメッセージにはそうだと言われています。 –