当前位置: 代码迷 >> Sql Server >> 自动备份有关问题
  详细解决方案

自动备份有关问题

热度:59   发布时间:2016-04-27 11:10:54.0
自动备份问题
sql2005 维护计划自动备份出来的数据名字没有加上备份日期啊 如bak 我记得以前是bak20120909。。。bak20120910.。等等而且75M的数据库备份出来有300多M 是哪里设置错了 我用维护计划向导做的自动备份

------解决方案--------------------
用那个不会出问题的。会自动添加日期的。除非你指定了名称。另外你75M是只包括数据文件?因为日志文件也会备份的。
这是我在公司服务器弄的备份脚本,仅供参考,不要全抄。
SQL code
/* 注意:由于用GUI备份会导致备份链中断,而作业无法实现“仅复制备份”,所以使用脚本备份 create by huangzj 20120510 */  --定义备份时间,精确到秒 DECLARE @date NVARCHAR(64) SELECT  @date = SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 1, 4) + '_'         + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 6, 2) + '_'         + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 9, 2) + '_'         + CONVERT(CHAR(2), DATEPART(hh, GETDATE()))         + CONVERT(CHAR(2), DATEPART(mi, GETDATE()))         + CONVERT(CHAR(2), DATEPART(ss, GETDATE())) --定义要备份的数据库名 DECLARE @db NVARCHAR(20) SET @db = '' + 'HK_ERP_BaTa' + '' --定义备份文件的全名 DECLARE @bakname NVARCHAR(128) SELECT  @bakname = @db + '_' + @date --定义备份存放路径 DECLARE @disk NVARCHAR(256) SELECT  @disk = N'DataBak' + @bakname + '.bak' --定义备份描述 DECLARE @name NVARCHAR(128) SELECT  @name = @db + '-完整 数据库 备份' --定义错误信息 DECLARE @error NVARCHAR(128) SELECT  @error = '验证失败。找不到数据库“' + @db + '”的备份信息。'  BACKUP DATABASE @db TO  DISK = @disk WITH  COPY_ONLY, NOFORMAT, NOINIT,   NAME [email protected], SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM ; DECLARE @backupSetId AS INT SELECT  @backupSetId = position FROM    msdb..backupset WHERE   database_name = @db         AND backup_set_id = ( SELECT    MAX(backup_set_id)                               FROM      msdb..backupset                               WHERE     database_name = @db                             ) IF @backupSetId IS NULL      BEGIN         RAISERROR(@error, 16, 1)     END RESTORE VERIFYONLY FROM  DISK = @disk WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND GO
  相关解决方案