【发布时间】:2013-06-19 01:50:57
【问题描述】:
我创建了一个作业来备份我的 SQL 数据库,只是我不确定它是否正常工作。在 SQL Server 7 中,当它进行备份时,您将获得 mdf 和日志文件。备份的文件没有扩展名。
将数据库 [TIMECLOCK] 备份到磁盘 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.CIPHERPOS\MSSQL\Backup\TCBU' WITH NOFORMAT, NOINIT, NAME = N'TIMECLOCK', SKIP, NOREWIND, NOUNLOAD , 统计 = 10 去 将 @backupSetId 声明为 int select @backupSetId = 从 msdb..backupset where database_name=N'TIMECLOCK' 和 backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'TIMECLOCK' 中选择 max(backup_set_id)) if @backupSetId 为 null 开始 raiserror(N'验证失败。找不到数据库“TIMECLOCK”的备份信息。', 16, 1) end 仅从磁盘还原验证 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.CIPHERPOS\MSSQL\Backup\TCBU' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 去吧
标题:Microsoft SQL Server Management Studio
服务器“POSWIN2K8\CIPHERPOS”的恢复失败。 (Microsoft.SqlServer.SmoExtended)
附加信息:
System.Data.SqlClient.SqlError:无法通过现有的“C:\Program Files\Microsoft SQL Server\MSSQL10_50.CIPHERPOS\MSSQL\DATA\TIMECLOCK.mdf”恢复文件“TIMECLOCK”。使用 WITH REPLACE 重新发出 RESTORE 语句以覆盖预先存在的文件,或使用 WITH MOVE 来标识备用位置。 (Microsoft.SqlServer.Smo)
按钮:
好的
提前感谢您的帮助!
【问题讨论】:
-
那么,您工作中的
BACKUP DATABASE命令是什么样的?您必须告诉它文件名(包括扩展名)。在 SQL Server 7.0 中,听起来您并没有进行真正的备份,只是备份了 .mdf 和 .ldf 文件——这不是正确的备份。 -
另外,SQL Server 并不真正关心您使用什么扩展。
BACKUP DATABASE msdb TO DISK = 'C:\users\msdb.floobernuggets' WITH COPY_ONLY;可以正常工作,恢复它也一样。但是,最好使用.BAK进行完整备份,使用.TRN进行日志备份。 -
我将使用命令编辑我的帖子
-
所以将
TCBU'更改为TCBU.bak'。您当前的命令告诉它保存为一个名为TCBU的文件,没有扩展名,因为您没有包含扩展名。 -
@AaronBertrand 将以及如何将 TCBU.bak 恢复到 SQL 管理器?这可以通过右键单击数据库并单击恢复来工作吗?再次感谢您的帮助。
标签: sql-server-2008-r2 sql-agent-job