2

BACKUP および RESTORE コマンドを使用してデータベースのコピーを作成しようとすると、コピーは作成されますが、データが含まれていません。次のコマンドを実行していますが、成功ステータスが返されます。

BACKUP DATABASE [SomeDB]
    TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
BACKUP DATABASE successfully processed 161 pages in 0.021 seconds (62.805 MB/sec).

RESTORE DATABASE [SomeDB_Copy]
    FROM DISK=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
    WITH MOVE N'SomeDB' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.mdf',
    MOVE N'SomeDB_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.ldf'
RESTORE DATABASE successfully processed 162 pages in 0.095 seconds (13.958 MB/sec).

手順がありませんか?私が見つけたすべての例は、この方法を使用しています。 StackOverflow でも。これは SQL Server 2005 上にあります。

アップデート:。データベースを新しいファイルにバックアップし、それを使用して復元したところ、すべて正常に機能しました。元のファイルが破損していたのか、それとも何か奇妙なことが起こっていたのかはわかりません。

4

1 に答える 1

1

このトピックが古いことは承知していますが、マルチファイル バックアップ セットについてのコメントで usr が言ったことを拡張したいと思いました。バックアップ コマンドが 161 ページを処理したが、復元が 162 ページを処理したという事実から、デバイス/ファイルに複数のバックアップがあると思われます。バックアップ コマンドで INIT 句を使用すると、デバイスにバックアップが 1 つだけあることを保証できます。

BACKUP DATABASE [SomeDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak' 
with init;

http://msdn.microsoft.com/en-us/library/ms186865.aspxの Microsoft ドキュメントから:

ディスク デバイスは、BACKUP ステートメントで指定する前に存在している必要はありません。物理デバイスが存在し、INIT オプションが BACKUP ステートメントで指定されていない場合、バックアップはデバイスに追加されます。

RESTORE コマンドで HEADERONLY オプションを使用して、デバイス/ファイルに複数のバックアップがあるかどうかを確認できるはずです。

BACKUP DATABASE [SomeDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak' 
with init;

RESTORE HEADERONLY 
FROM DISK = = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'; 

BACKUP DATABASE [SomeDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak';

RESTORE HEADERONLY 
FROM DISK = = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak';

最初の RESTORE HEADERONLY からの出力はファイルに 1 つのバックアップを示し、2 番目の出力はファイルに 2 つのバックアップがあることを示します。

于 2013-01-02T15:57:32.193 に答える