在 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章

sql 为从备份还原的数据库创建新代理

SQL Server 2008怎么自动备份数据库

SQL Server Alwayson创建代理作业注意事项

SQL Server 数据库定时自动备份

使用SQL Server维护计划实现数据库定时自动备份

sql server差异备份