在 SQL 代理中备份 SQL 数据库
Posted
技术标签:
【中文标题】在 SQL 代理中备份 SQL 数据库【英文标题】:Backing Up SQL Database In SQL Agent 【发布时间】: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)
如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600.1+((KJ_RTM).100402-1539+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476
附加信息:
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)
如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600.1+((KJ_RTM).100402-1539+)&LinkId=20476
按钮:
好的
提前感谢您的帮助!
【问题讨论】:
那么,您工作中的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 管理器?这可以通过右键单击数据库并单击恢复来工作吗?再次感谢您的帮助。
【参考方案1】:
我必须先从文件夹中删除 .mdf .ldf 和 .ndf 数据库文件,然后才能恢复备份。之后备份恢复得很好。
【讨论】:
@HelloW 我很高兴听到它以上是关于在 SQL 代理中备份 SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章