web-dev-qa-db-ja.com

データベースを新しいデータベースに復元する(T-SQL)

データベースからのデータベースバックアップがあります。たとえば、SourceDataを別のデータベース、同じスキーマ、ただし名前が異なる(SourceData_1)T-SQLを使用します。 REPLACEオプションを指定しても、なぜ次のエラーが発生するのかわかりません。たとえば、以下のリンクを使用しました。

データベーススクリプトの復元

http://msdn.Microsoft.com/en-us/library/ms190447(v = sql.105).aspx

インターネットで見つけた投稿に基づいて、最初に以下のスクリプトを使用してバックアップファイルの論理名を取得しました。

RESTORE FILELISTONLY
FROM DISK = 'C:\Backups\SourceData_20121227.BAK'

次に、次のスクリプトで論理名を使用しました:

RESTORE DATABASE SourceData_1 
FROM DISK = 'C:\DEV\SourceData_20121227.BAK'
WITH 
   MOVE 'SourceDate' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SourceData_1.mdf', 
   MOVE 'SourceDate_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SourceData_1_log.ldf', 
   REPLACE
GO

以下は私が得ているエラーです:

物理ファイル 'C:\ Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVERを展開しようとしたときに、MODIFY FILEでオペレーティングシステムエラー112(このエラーのテキストを取得できませんでした。理由:15105)が発生しました\ MSSQL\DATA\SourceData_1_log.ldf '。
RESTORE DATABASEが異常終了しています。

ディスク容量を確認したところ、問題ないことを確認できました。復元を実行する前に、ターゲットデータベースが存在している必要があります。そうですか?

この問題を修正する方法の提案はありますか?

ありがとう。

5
Sky

私はそれが不十分なディスク容量と関係があると信じています。ディスク容量不足エラーがスローされている場合、アプリケーション/システムイベントビューアのログを確認できますか?また、元のデータベースのmdfとldfファイルのサイズも計算します。

すでに2台目のサーバーにデータベースを作成している場合は、ファイル拡張が無効になっていないことを確認してください。

試すことができるもう1つのオプションは、mdfファイルを復元サーバーにコピーしてそれが機能するかどうかを確認できる場合は、mdfファイルを添付することです。

1
avakharia