每当我尝试使用备份和还原命令创建数据库副本时,都会创建副本,但不包含任何数据。我正在运行以下命令,并获得成功状态:
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).我是不是错过了一步?我找到的所有例子都使用这种方法。Even on StackOverflow。这是在Server 2005上。
更新:.我将数据库备份到一个新文件中,并使用该文件进行恢复,一切正常。我不知道我的原始文件是被破坏了,还是其他奇怪的事情发生了。
发布于 2013-01-02 15:57:32
我意识到这个话题已经很老了,但我想详述一下usr在他关于多文件回溯的评论中说的话,虽然我会把它称为多备份设备。事实上,您的备份命令处理了161页,而还原处理了162页,这使我认为设备/文件中有多个备份。可以在backup命令上使用INIT子句来保证设备中只有一个备份:
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语句中指定之前不必存在。如果物理设备存在,并且在BACKUP语句中未指定INIT选项,则备份将追加到设备上。
您应该能够在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';第一个还原HEADERONLY的输出将显示文件中的一个备份,而第二个的输出应该显示文件中有两个备份。
https://stackoverflow.com/questions/13727721
复制相似问题